[UE4] 서서히 석화하는 쉐이더를 만드는 +5색 마스크라든지 덤
사전 쓰기
목차
점차 변화하는 함수 마스크
다양한 상황에 대응하기 위해 이번에 여러 함수를 준비했습니다.
1. 전체가 페이드
2. 얼룩무늬(드래곤즈드 ○마리스펙트)
3. 아래에서 올라오는 녀석
4. 그 반대
3. 아래에서 올라오는 녀석 (의외로 ry
노드와 수식은 다음과 같습니다.
얼룩에 관해서는 역시 UV로 하는 편이 좋은 것은···? 생각하지 않아도
mask.hlsl
//mask_gen
float outf=0.0f;
float s_mlt=4.0f;
switch(floor(num)){
case 0: outf=in_alpha;break;
//sin波5つを1~0にしてからpowをかけ0~-1にする
case 1:outf=pow((sin(5*s_mlt*local_.x+6)+sin(7*s_mlt*local_.y+1)+sin(13*s_mlt*local_.z+13)
+sin(11*s_mlt*atan2(local_.z,local_.x)*length(float2(local_.z,local_.x))+3)
+sin(17*s_mlt*atan2(local_.z,local_.y)*length(float2(local_.z,local_.y))+23))/10+0.5,3)
+in_alpha*2-1;break;
//localzとの組み合わせでせり上がるとこ+うねうね
case 2:outf=pow(in_alpha*1.02+(1-local_.z)+sin((atan2(local_.y,local_.x))*90)/50,20);break;
case 3:outf=pow(in_alpha*1.02+local_.z+sin((atan2(local_.y,local_.x))*90)/50,20);break;
}
return outf;
5색 마스크
커스터마이즈 게이용으로 5개소의 칠할 수 있는 마스크
RGBA 1장으로 실장할 수 있는 (아마) 최대 색수
거동
색 A, B, C, D, E가있을 때,
- (0,0,0,0)→색 A100%
- (1,0,0,0)→색 B100%
- (0,0.5,0,0)→색 A50%, 색 C50%
- (0.7,0.3,0,0)→색 B70%, 색 C30%
- (7,3,0,0)→색 B70%, 색 C30%
계산식
무게 A = clamp (1- (R + G + B + A), 1,0);
무게 (B, C, D, E) = (R, G, B, A)/clamp (R + G + B + A, 999,1);
출력 색 = 색 A * 무게 A + 색 B * 무게 B + ...
덤 : 구현 된 UE4 셰이더
htps : // 이 m/ゔぁk/있어 ms/세 d4811350b438104f7d 의 내용을 포함합니다.
4 층 구조로되어 있습니다
A 레이어 : 쉐이더의 요구 사항마다베이스 색상, 파라미터를 준비 (이 쌍을 재질이라고 함) (이번 경우 5 색 마스크가 기본 색상으로)
B층 : 상태 이상 번호와 베이스 컬러를 받아 상태 이상시의 머티리얼을 출력
C층 : A층과 B층을 본 기사의 마스크로 머티리얼 합성
D 레이어 : C 레이어로 합성 된 머티리얼에서 색상 출력
파라미터는 베이스 컬러, 앰비언트 반영도, 스피어 맵, 큐브 맵 반영도의 4점
문제점
UE4의 머티리얼 함수 기능으로 샘플러를 출력할 수 없음
따라서 스피어 맵의 계산은 모델에 적용하는 머티리얼인 A층에서 실시할 필요가 있다
상기를 정리한 것이 이하가 됩니다
구현 샘플
htps : // 라고 해서 r. 코m/ゔぁk_DJ레기온/s타츠s/1195453585904943104
steam에서 플레이 할 수 있으므로 감사합니다 (다이마 2)
Reference
이 문제에 관하여([UE4] 서서히 석화하는 쉐이더를 만드는 +5색 마스크라든지 덤), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/vak/items/5d31f9b587d399258ea2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
htps : // 이 m/ゔぁk/있어 ms/세 d4811350b438104f7d 의 내용을 포함합니다.
4 층 구조로되어 있습니다
A 레이어 : 쉐이더의 요구 사항마다베이스 색상, 파라미터를 준비 (이 쌍을 재질이라고 함) (이번 경우 5 색 마스크가 기본 색상으로)
B층 : 상태 이상 번호와 베이스 컬러를 받아 상태 이상시의 머티리얼을 출력
C층 : A층과 B층을 본 기사의 마스크로 머티리얼 합성
D 레이어 : C 레이어로 합성 된 머티리얼에서 색상 출력
파라미터는 베이스 컬러, 앰비언트 반영도, 스피어 맵, 큐브 맵 반영도의 4점
문제점
UE4의 머티리얼 함수 기능으로 샘플러를 출력할 수 없음
따라서 스피어 맵의 계산은 모델에 적용하는 머티리얼인 A층에서 실시할 필요가 있다
상기를 정리한 것이 이하가 됩니다
구현 샘플
htps : // 라고 해서 r. 코m/ゔぁk_DJ레기온/s타츠s/1195453585904943104
steam에서 플레이 할 수 있으므로 감사합니다 (다이마 2)
Reference
이 문제에 관하여([UE4] 서서히 석화하는 쉐이더를 만드는 +5색 마스크라든지 덤), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/vak/items/5d31f9b587d399258ea2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)