일단 가장 기본적인 기능을 만들어 올려봅니다.
기존의 슈리켄에서는 메터리얼의 프로퍼티들을 수정할 수가 없었습니다. 그래서 따로 키 애니메이션을 줘야 했고, 그것이 파티클의 타이밍과 맞출 수가 없어서 뭔가 쭉정이처럼 이중으로 작업할 수 밖에 없었죠. 그나마도 제대로 맞지도 않고.
그래서 언리얼에서는 일찌감찌 커스텀 데이터라는 개념이 있었습니다만 유니티는 이번에 드디어 생겼네요
일단 이런게 있고
말풍선을 읽어보면 스크립트나 셰이더에서 읽을 수 있게 커스텀 데이터를 조절한다고 하네요.
쉐이더에서 사용하려면 커스텀 버텍스 스트림을 사용해야 하고요
그래서 만들어 봤습니다.
커스텀 버텍스 스트림 쉐이더입니다 .
아래 쉐이더를 다운받으시면 됩니다.
텍스쳐는 두 개가 들어가는데, 첫 번째 텍스쳐는 이펙트용 이미지,
두 번째 텍스쳐는 디스토션 이미지가 들어가는게 좋습니다. R 채널만 사용하며, 리니어 텍스쳐로 만들어 주는 것이 좋습니다.
아래 버튼을 끄면 제대로 보일겁니다. 에러인지 아닌지 확인하실 분을 위해 만든겁니다.
코드 내에 커스텀 스트림을 아래처럼 만들어 놨기 때문에,
파티클에서도 커스텀 버텍스 스트림을 위 코드와 맞춰주시면 됩니다.
커스텀 데이터를 여시고, 버텍스 스트림에서 설정했던 것처럼 float4 vector 두 개를 만들어 줍니다.
물론 라벨링따위 안해도 됩니다만 ㅋㅋㅋ 이 글을 보시는 분은 어디가 어디랑 연결되었는지 알 수 없으니
그리고 위의 것은 아래의 셰이더의 이 부분에 각각 대응됩니다. 그냥 순서대로입니다. 알아보기 쉽게 만들어 봤습니다.
맨 밑의 SrcBlend 와 DstBlend 는 역시 커스텀으로 조절할 수 있게 만들어 놓았습니다.
즉 Add 를 만들려면 SrcAlpha 와 One 혹은 One One(Black Background) 으로,
Alpha Blend를 만들려면 SrcAlpha 와 OneMinusSrcAlpha로
Multi를 만들려면 DstColor 와 Zero로 구성하면 됩니다.
하여간 이렇게 만들어 놓으면...
이제 최상단의 유투브 동영상처럼 조절하시면 됩니다.
기능을 조금 바꾸고 버그를 수정했습니다. Fog와 충돌나던 기능을 수정하였고 ,
기존의 기능이 'UV 이동속도' 를 제어하는 기능이었다면
이번에는 '절대 UV 위치' 를 제어하게 만들었습니다. 즉 그래프로 조절하시면 좋습니다.
'회전' 도 마찬가지이고 모든 수치가 절대 수치로 만들어서 더 응용력이 좋아졌습니다.
JP_Particle_FlowDistortion.shader
'Shader ' 카테고리의 다른 글
Unity 2018 built-in particle shaders 유니티 2018 내장 파티클 쉐이더_1 (0) | 2018.09.22 |
---|---|
깊이값 가지고 놀기 (0) | 2018.06.01 |
파티클 커스텀 버텍스 스트림 : Particle Custom Vertex Streams (0) | 2017.11.29 |
Flipbook Shader for Amplify Shader 앰플리파이 쉐이더로 만드는 플립북 (0) | 2017.10.03 |
벽 뒤에 가려질때 라인 나오는 셰이더 (Hidden line shader) (29) | 2017.08.24 |
댓글