일단 파티클을 만들었습니다. Lifespan은 1~ 5 입니다.
셰이더는 이렇게 . 매우 단순하죠
이제 파티클 옵션에서 커스텀 데이터를 켜줍니다.
float4 짜리 두 개를 켤 수 있지만 하나만 켜주죠 일단.
그 다음 커스텀 버텍스 스트림을 켜줍니다.
신통방통하게도 에러가 나네요
일단 에러를 보면 버텍스 스트림에 Color가 없다는 말입니다.
여기는 버텍스 스트림이니 칼라라면 .. 버텍스 칼라죠 !!!
네 이렇게 하면 해결됩니다.
다음에는 커스텀 데이터 추가입니다. 여긴 설명할게 좀 있는데,
UV를 보시면 Texcoord0 의 xy만 쓰고 있습니다.
그러므로 여기에 그냥 커스텀 데이터를 추가하면..
커스텀 데이터 float4를 추가하니까, Texcoord0번의 zw 와 Texcoord 1번의 xy가 들어가 버렸습니다. 이 무슨 혼종.
그렇습니다. 이것이 스트림. 그냥 순서대로 들어오는대로 그냥 밀어 넣는것이다 보니 순서대로 박혀 버린 것입니다.
근데 이러면 못쓰죠 삭제.
다시 이 상태에서 시작입니다.
이제 스트림을 채워서 0번 Texcoord를 채워야 합니다.
그래서...
+ 를 눌러서 (안 쓸 거지만) UV2를 추가해 줍니다.
다음은 이제 Custom1.xyzw 를 추가해 줍니다. ( ) 부분을 보면 아주 깔끔하게 Texcoord1.xyzw가 들어간 것을 볼 수 있습니다.
에러는 이제 당연히 나겠죠. Texcoord1 번이 추가되었으니.
그럼 셰이더에서도 Texcoord1번을 추가해 주면 됩니다.
이름땜에 속으면 안됩니다.
이 UV0가 Texcoord0 라는 말이고
UV1이 Texcoord1 이라는 말입니다.
그러니까 UV라는 말 쓰지 말고 Texcoord라는 말을 쓰라고!!
이제 간단합니다. 이제 파티클의 Lifespan동안 옆으로 UV가 한 번만 움직이게 하려면
요렇게 하면. 커스텀 r 값이 UV 옵셋 x에 들어가니까요
이렇게 커스텀 데이터 1의 r 값을 커브로 바꿔주고 처리해주면 파티클의 생명값에 따라 1만큼 UV가 이동하게 할 수 있습니다.
파일은 여기
- 평소 일반적인 경우 이 UV2는 라이트맵용 UV로 사용됩니다. 근데 뭐 이펙트에선 .. 쓸모없... [본문으로]
'Shader ' 카테고리의 다른 글
shader_feature와 multi_compile의 차이 (0) | 2020.11.08 |
---|---|
Legacy Pipeline Depth Texture 레거시 파이프라인 깊이 텍스쳐 (0) | 2020.07.02 |
URP Shader로 뚫리는 이미지 만들기 (3) | 2020.05.09 |
[Unity Shader Graph] 커스텀 라이팅 간단 구현 - Lambert와 Shadow (0) | 2020.02.26 |
유니티 셰이더 그래프(Unity shadergraph) HDRP 굴절과 파티클 버텍스 스트림 연결하기 (0) | 2020.01.16 |
댓글