2023. 6. 5. 15:00ㆍUnity
Tiling & Offset 셰이더로 만들기
Tiling과 Offset 적용을 변수 프로퍼티 추가로 셰이더로 만들 수 있다. [Tiling And Offset]은 유니티 내에 기본 노드가 있어서 추가하여 연결만 해주면 된다.
Tiling & Offset_ScrollSpeed
ScrollSpeed 변수가 추가된 셰이더이다.
Tiling & Offset_ScrollSpeed2
[Tiling And Offset] 노드에서 Offset은 Vector2 타입이라 [Vector 2] 노드를 만들었고 가장 처음 [Time] 노드도 만들었다.
[Fraction] 노드는 Time 값이 전달되는 중간에 소수점 이하의 값만 얻어오기 위해 넣는다. Time 값은 0~1 사이에서 계속 증가하다가 0으로 초기화되는 상황을 반복한다. 따라서 무한히 스크롤 되는 효과를 얻을 수 있다.
Speed 값은 [Fraction] 노드 전에 Time 값과 곱해지는데, 이후에 속도를 곱하면 0~1 값을 벗어나면서 스크롤의 Loop가 깨질 수 있다.
Tiling은 X축 하나만 들어가 있기 때문에 U 방향으로만 타일링이 된다.
ScrollOut
파티클 시스템에 의해 제어되는 셰이더이기 때문에 Time으로 제어하지 않고 Vertex Alpha로 제어한다. Color over Lifetime의 알파 값이 투명 -> 불투명, 즉 0 -> 1 값으로 변해야 한다.
ScrollOutStretch
Stretch 변수로 기울기를 얼마나 낮출지 값을 주고 Vertex Color 값과 합친다. Vertex Color 값은 -1~1로 함수를 바꿨고 -1~0 부분에서는 보이지 않는 부분이다.
같은 Stretch 변수 값으로 누운 기울기의 나머지를 Vertex Color를 [One Minus] 노드를 거친 역과 곱하고 위에 계산한 값과 [Add] 노드에서 합친다. 역을 곱하는 이유는 Vertex Color 탄생인 0일 때 1을 곱하고 Vertex Color 소멸인 1일 때 0을 곱하기위함이다. 나머지 기울기는 파티클 생성시에만 더해지고 사망시에는 더해지만 안되기 때문.
ScrollOutStretchFade
바로 전 ScrollOutStretch의 마지막에 FadeSide 프로세스를 [Multiply] 노드로 곱한 셰이더이다.
참고자료
아티스트를 위한 유니티 URP 셰이더 입문 - YES24
셰이더(Shader)를 HLSL(High Level Shader Language)로 다루고 싶은 아티스트를 위한 입문서다. 아티스트들의 눈높이에 맞추어 기초 그래픽스 이론과 셰이더 개념을 설명하고, 이를 유니티 엔진에서 활용할
www.yes24.com
'Unity' 카테고리의 다른 글
[Unity] URP 셰이더 Z Buffer와 반투명(Translucent) (0) | 2023.06.07 |
---|---|
[Unity] URP 셰이더 Sub Graph, Custom Lighting, Keyword (0) | 2023.06.05 |
[Unity] URP 셰이더 그래프 기본적인 노드와 응용 (Add/Multiply/Divide/Pow/Saturate/Clamp/Abs) (0) | 2023.06.03 |
[Unity] 간단한 URP 셰이더 그래프 만들기 (0) | 2023.06.01 |
[Unity] URP 셰이더 그래프 기초 개념 (0) | 2023.05.26 |