유니티 셰이더 그래프 예제 27 클로킹 셰이더, Unity shaderGraph cloaking
클로킹이라고 불리는 걸 구현해보도록합시다.
적당히 내가 투명화 된 느낌이 나는 그런 효과입니다.
Lit 셰이더를 하나 생성합니다.
Graph Inspector에서
Alpha Blend 설정을 마줘줍니다.
클로킹을 하면서 배경색(배경이 랜더링된 택스쳐를) 을 오브젝트가 사용할 것인데 이럴때는 해당 블랜딩이 설정되어 있어야 합니다.
추가로 배경이 랜더링된 택스쳐를 참조하려고 할때는 추가작업이 선행되어 있어야 합니다.
사전체크사항 관련하여는 다른 글에 있는 부분 참고를 부탁드립니다.
링크는 남겨둡니다.
Opaque Texture 활성화 여부에 관한 내용이 아래 글 상부에 나와있습니다.
Opaque Texture 참조가 가능하다는 것을 전제하고 글을 이어나갑니다.
시작은 칼라, 노말 모델로 시작
준비된 모델들
화면 랜더링 택스쳐와 Base칼라의 Lerp 노드구성
BaseColorLerp는 float 값
실행결과
노말이 적용되어 있어 티가 나지만 노말 효과가 약한 로봇같은 경우는 먼가 알기가 힘들다
여기에서 Normal 맵을 사용해서 외곡을 좀 시켜보도록 한다.
노말맵을 사용하여 랜더링택스쳐의 외곡효과주기 노드구성
화면랜더링 택스쳐를 참조할때, 노말맵의 xy를 가져와서 DeformIntensity(float)로 적당히 곱해주고 참조 시켜 외곡하는 효과를 나오게 한다.
참고로 노말택스쳐는 여전히 노말에도 사용을 한다. 용도가 늘어난것
실행결과
보시면 확실히 먼가 외곡된 느낌이 난다.
외곡효과와 같은 경우는 결국 랜더린된 하면을 오브젝트에 올릴때 적용되는거라 BaseColorLerp 가 약하면 효과를 잘 볼수가 없다.
마지막으로 RimLight 효과 추가
실행화면
마지막으로 적절하게 칼라값으로 변화를 줘가며, gif를 하나 만들어 보겠다.
BaseColorLerp 변화주기
DeformIntensity 변화주기
어느정도 작은 변화량을 항상 줘도 효과가 좋을거 같은 느낌이다.
셰이더 그래프를 통해 클로킹효과를 구현해봤습니다.
감사합니다.
댓글