본문 바로가기
튜터리얼_스터디

(셰이더그래프)아티스트를 위한 URP 셰이더 Shader #11 - 버텍스 칼라를 마스킹 기능으로 사용해 봅시다

by 대마왕J 2021. 10. 22.
안내 
여기 나오는 내용은 유니티 쉐이더 스타트업에 나오는 예제를 최신 URP에 맞추어 예제를 번역한 내용입니다. 
때문에 이론적 내용이 상당히 간략하거나 불친절하며, 예제에 대한 설명도 축약되어 있기 때문에
책과 같이 보시는 것을 추천하는 바입니다.

 

자 오늘부터 드디어 책을 옆에 가져다 놓고 씁니다 ㅋㅋㅋㅋㅋㅋㅋㅋ (그동안 머리속으로만 했다는 얘기) 

206페이지의 버텍스 컬러를 마스킹 기능으로 사용해 봅시다! 를 따라할 거예요. 

리소스는 .. 책 사신 분은 이미 다 가지고 계실 거구요 
이 블로그에서는 ... 어디 있을까요... 숨겨져 있을지도 몰라요... 잘 찾아봐요...  
너무 대놓고 드리면 출판사 사장님한테 혼난단 말야... ....                                                                              여기

아우 등이 가렵네 뭔가 긁어보고 싶네

지난 시간에 버텍스 칼라를 보이게 하는 것 정도는 해 봤지만 .. 

그럼에도 불구하고 걍 첨으로 돌아가서 해봅시다 
어차피 뭐 다 잊었을테니까. 저는 여러분들을 믿지 않습니다 (?) 

일단 플렌 하나 만들고, 언릿 셰이더 그래프도 하나 만듭시다 

텍스쳐 4개 받게 만들어야죠? 

자 이렇게요. 이건 뭐 쉽게 하겠지 
아참 미리 텍스쳐도 넣어 두세요

 

적당히 이런 것들을 구해서요. ...이미 가지고 계실지도 몰라요

이제 텍스쳐 4개를 버텍스 칼라를 이용하여 마스킹하는 것입니다. 
아시는 분들한테는 너무너무 쉬운 내용이지만 여기는 아직 생초보를 위한데니까.. 


버텍스 칼라 칠하기 

이걸 하려면 일단, 버텍스 칼라를 칠해야겠지요. 
셰이더에서 버텍스 칼라가 보이게 만들어 둔 채, 

폴리브러쉬로 검게 만드는 것 부터 시작해서 RGB 만 이용해서 그리면 됩니다. 

그래야 각 채널별로 이미지가 생길테니까요 (책에 잘 설명되어 있으니 슉)

뭐 대충 이렇게. 

 

Split 노드를 이용해서 각 채널별로 분리해서 보는 것도 재미있죠 

 


버텍스 칼라로 마스킹하기 

여기는 lerp 노드를 이용해서 마스킹해 줍니다. 

일단 텍스쳐 하나만. 

텍스쳐 두 개를 lerp의 A와 B에 넣었죠 
그리고 버텍스 칼라를 split 해서 나눈 다음에, R만 꺼내서 Lerp 의 T 에 넣었습니다. 
이제 버텍스 칼라 R 에 의해서 결과가 결정될 거예요. 

코드로 하면 lerp(A,B,T) 를 표현한 것과 같죠 

짠 

붉은 색으로 칠한 부분만 B 텍스쳐가 나왔네요. 
좀 더 확 다른 텍스쳐를 넣을걸 그랬.

이제 이 결과물에 다시 lerp를 해주고, 

 

그 결과물에 또 다시 lerp를 해주면 됩니다. 

 

흐미 복잡해 보이죠? 노드로 하면 별 것도 아닌데 복잡해 보여요. 괜찮습니다. (누가)

이렇게 하면 버텍스칼라로 텍스쳐 블렌딩하는 기능을 쉽게 만들 수 있는거죠. 

하하 이래서 노드는 정리하는 시간이 꼭 필요하단 말이죠 ... 참 귀찮기도 해요. 
코드도 알아보기 쉽게 하려면 줄 맞추고 정리해야 하는데, 그거랑 일맥상통하기도 해서 신기하고. 

VertexColor2.shadergraph
0.06MB

위 노드도 올려 놨습니다. 참고하실 분은 참고하시라고.. 

자 그럼 다음 시간엔 HLSL로 구현하는 시간을! 

블로그 주인장에게 커피값을 후원할 수 있습니다! 

 

 

반응형

댓글