본문 바로가기
Shader

유니티 셰이더 그래프(Unity shadergraph) 에서 버텍스 스트림 셰이더 (vertex stream shader) 가 적용된 이펙트 셰이더 만들기 1

by 대마왕J 2019. 12. 31.

유니티 이펙트 툴인 슈리켄에서 가장 유용한 부분중 하나인 버텍스 스트림 셰이더 만들기입니다. 


이론적으로는 뭐 간단한 편인데, 코드로 처리하는건 그 과정까지가 복잡해서리.. 

노드가 나왔으니 상대적으로 더 간단해지긴 했습니다만

역시 사전 지식 없이는 또 귀찮은 점이 있어서 정리해 봅니다. 

버텍스 스트림만 만들면 쓸모없거든요. 이펙트용으로 하려면 나머지도 다 만들어야지... 

기존 유니티는 이펙트용 기본 셰이더가 있었습니다만, 노드로 바뀌면서 어중간한 상태가 되어 버렸으니 이제 직접 만들줄도 알아야 한답니다. 

나중에 VFX 그래프가 주류가 되면 더욱 더 중요하게 생각될겁니다. 



그래서 사실은 낚시입니다 캬캬캬

버텍스 스트림 얘기도 하기 전에 기본형부터 만들 줄 알아야 뭐가 되지 않겠심까 

캬캬캬


그래서 이번에는 기본형 만들기입니다!!! 


사실은 다 쓰려고 하다가 너무 길어서 2부로 나눈거라는 






일단 언릿 그래프를 하나 만들어 봅니다. 

그리고 당연히 메터리얼 적용 







그리고 그 메터리얼을 역시 슈리켄에 적용해 주면 .. 

다음과 같이 됩니다. 여기서부터 시작. 






좋아요 시작해보죠 


우선은 버텍스 스트림이고 뭐고 이전에 이펙트 셰이더로 돌아가야 하는게 먼저니 짧게 해보겠습니다.

모든 기능을 다 넣을 수는 없지만 많이 쓰는 일반적인 기능들은 구현해 볼께요. 자세하게 설명하면 배보다 배꼽이 더 커지니까 여기는 빠르게. 




우선 마스터 노드 설정입니다. 


서피스는 Transparent로 바꾸고 블렌드는 Alpha, Add , Multi 중 원하는 걸로. 이게 뭔지 모르시면 일단 이펙트부터 공부하고 오시는 쪽으로. 

그다음에 2side는 체크해야겠죠 


save 해서 밝게 나오는지 한 번 체크 필요합니다. 물론 add로 설정하셨을때만. 




다음에는 위와같이 텍스쳐 샘플러와 텍스쳐 어셋 셋팅해 줍니다. 텍스쳐에는 기본 파티클 내장 텍스쳐를 넣어놨습니다 


물론 텍스쳐는 나중에 외부에서 처리할 수 있도록 프로퍼티로 빼주는걸 잊지 맙시다 



알파를 적용시켜주는 것도 잊지 맙시다. 

부드러운 이펙트 적용을 위해 알파 클립의 한계치도 0으로 내려줍시다 



이제 파티클에 있는 칼라류 (start color 혹은 color over lifetime) 를 적용시켜 주기 위해서 버텍스 칼라와 알파를 곱해줍니다. 



버텍스 칼라를 곱해주었습니다. 원 별것도 아닌게 더럽게 복잡해 보이는데요 .. 


별 거 아닙니다. 알파는 알파끼리 곱해주고, 칼라에다가도 그 결과를 곱해줍니다. 

이유는 additive 일때, 알파만으로는 투명해지지 않아서 그렇습니다. 실제 칼라가 어두워져야 투명해지거든요. 

그 이유를 알고 싶다면 유니티 셰이더 스타트업 책 마지막 부분 알파를 공부해 보시면 (...책광고) 





반응형

댓글