2023. 7. 12. 16:59ㆍUnity
배경이 투명해야 하기 때문에 셰이더 Graph Settings를 [Transparent]로 바꾼다. [Blending Mode] - [Additive]는 배경과 덧셈이 되면서 더 밝아지게 된다. [Render Face]는 양면 렌더링을 위해 [Both]로 설정한다.
V 방향으로만 [Time]에 [Negate] 음수를 곱하여 위로 올라가게 [Add] 노드로 더했고 [Sample Texture 2D]로 텍스쳐에 적용한다. 고정할 텍스쳐와 움직일 텍스쳐의 rgb와 알파를 각각 곱해서 Fragment에 전달한다.
책의 예제에서는 (0.5, 0.5, 0.5)의 값을 갖는 회색 텍스쳐를 UV 값을 [Split]하여 각 U, V 값에 [Add]하는 부분이 있는데, 정확히 U, V 값이 0.5씩 이동되지 않는 결과가 나온다. 이유는 감마 보정 때문이며 이는 텍스쳐 Inspector에서 [sRGB]를 체크 해제하여 해결할 수 있다.
이처럼 데이터로 사용되는 텍스쳐는 반드시 sRGB를 꺼야 정확한 결과가 나온다.
불에 Noise가 들어간 UV 텍스쳐를 넣으면 그 모양대로 일그러지는 것을 볼 수 있다.
일그러짐을 줄이기 위해 UV 텍스쳐를 어둡게 처리할 수 있다.
최종적으로 Noise 텍스쳐를 이용해 불타는 느낌을 만들었다. 책의 예제를 하나씩 따라가면서 생각하면서 만들어보았고, 예제대로 하면 불이 점점 대각선 아래쪽으로 움직이는데, 이것을 해결하기 위해 Float 프로퍼티 하나를 생성해서 Noise의 강도를 조절하고 동시에 U, V 각각의 값에 위치 보정으로 역수([Negate])의 반 값(0.5 [Multiply])을 Transform([Add])하여 위치 조정을 하였다.
참고자료
'Unity' 카테고리의 다른 글
[Unity] URP 셰이더 무료 에셋을 이용한 Lit Shader Graph 정리 (Base Map/Metallic/Smoothness/Ambient Occlusion/Emission) (0) | 2023.07.13 |
---|---|
[Unity] URP 셰이더 Vertex Color와 응용 (0) | 2023.07.12 |
[Unity] URP 셰이더 Lerp 노드 응용 (0) | 2023.07.12 |
[Unity] URP 셰이더 흑백 만들기 (Saturation) (0) | 2023.07.11 |
[Unity] URP 셰이더 Gamma Correction (0) | 2023.07.11 |