마누카를 꾸미고 있었는데 문득 갑자기 릴툰 페이크쉐도우가 생각나더라구
릴툰은 해당 기능을 스텐실 기능을 이용해서 구현하는데
포이요미도 스텐실이 있는데 안 될 이유가 없지 않나? 싶어서 해봤어
다만 릴툰과 달리 앞머리 그림자 전용 메쉬랑 본이 필요해
그러면 기존에 하던 반투명 메쉬 넣기랑 무엇이 다르냐면
정확히 얼굴에만 그림자를 투영시킬 수 있다는 점이야
예시 사진을 보여줄게
1. 반투명 메쉬만 추가한 경우
2. 스텐실 기능을 이용해 얼굴에만 그림자를 투영시키는 경우
그러면 따라할 수 있게 설명 시작할게
기억해야 할 마테리얼 및 준비물은
1) 얼굴 마테리얼
2) 앞머리 마테리얼
3) 그림자용 앞머리 (대충 앞머리 쓰는거 적절히 위치 맞게 하나 더 추가해줌)
4) 그림자용 앞머리 마테리얼
이렇게 총 4가지야
1. 그럼 일단 1, 2번은 다 있을테니 3, 4번을 준비해야 하는데
나는 이렇게 그냥 기존 앞머리 쓰는거 반투명으로 마테리얼로 하나 추가해줬어
각자 원하는 그림자에 맞춰서 메쉬딜리터로 조절해도 되고 원하는 모양이 나오게 설정해줘
2. 각 마테리얼의 스텐실을 다음과 같이 설정해줘
원리를 간단하게 설명하자면
쉐이더의 스텐실 버퍼 기능을 이용해서 구현할 건데
대충 각 마테리얼마다 특정 비교값을 주고, 비교로직을 설정해서
특정 마테리얼에는 가려지게 하거나, 특정 마테리얼 위에서만 렌더링시키는 기능이야
해당 마테리얼들에선
1. 얼굴
값 : 1
비교로직 : Always
수행할 작업 : Replace
2. 앞머리
값 : 상관없음
비교로직 : Always
수행할 작업 : Zero
3. 그림자용 앞머리
값 : 1
비교로직 : Equal
수행할 작업 : 상관없음
이렇게 되어있는데
이러면
[얼굴] 에서는 수행할 작업으로 Replace를 하게 되면서 [얼굴]은 Always로 인해 항상 버퍼 값이 1이야
[앞머리] 에서는 수행할 작업으로 Zero를 하게 되면서 [앞머리]는 Always로 인해 항상 버퍼 값이 0이야
[그림자용 앞머리] 에서는 비교로직으로 Equal을 하는데 이러면 버퍼 값이 1인 마테리얼 위에서만 렌더링을 하게 돼
그러면 결과적으로 그림자는 버퍼가 1인 마테리얼 위에서만 렌더링이 되니까
얼굴 바깥에서는 그림자가 지지 않고, 얼굴 위에만 투영되는 가짜 그림자가 완성됐어!
내가 릴툰 FakeShadow기능을 안써봐서 정확히 차이점이 뭔지는 몰루겠지만
암튼 비슷하게 따라서 구현한거 같아서 브붕이들도 알면 좋겠다 싶어서 글 써봤어