Clocking 효과

Clocking 효과

https://www.youtube.com/watch?v=M7ICBYmZkds

위 튜토리얼을 따라했습니다.

Opaque Texture 설정

투명 효과를 내려면, 뒤에 있는 오브젝트가 보여야 한다.

정말로 투명해지는 게 아니라, 투명이 될 모델에 뒤에 있는 오브젝트가 텍스쳐처럼 그려지는 것이다.

뒤의 그림을 가져오기 위해, Opaque Texture를 체크해주어야 한다.

Opaque Texture 설정은 불투명 오브젝트를 다 그린 다음, 그 화면을 Texture로 저장해놓겠다는 의미이다.

그래서 반투명 오브젝트를 그릴 때, 저장해놓은 Texture를 이용할 수 있다.

그만큼 성능에 영향이 많이 가서, 모바일에서는 안 쓰는게 좋을 것 같다고 한다.

Shader Graph 설정

라이팅 연산 없이, 불투명 오브젝트로.

Material 설정

불투명 오브젝트로 그리지만, 반투명 오브젝트처럼 늦게 그리기 위한 설정.

뒤의 그림을 모델에 입히기

Scene Color 노드로 텍스쳐를 가져올 수 있다. (위에 설명한 Opaque Texture 설정 체크해야 함.)

화면 기준이니까, Screen Position 노드를 연결해준다.

웬만하면 Scene Color와 Screen Poisition 노드는 세트로 쓰일 것 같다?

(OutLine은 유니티의 Selection Outline 설정입니다.)

아직까지는 뒤의 텍스쳐가 그대로 입혀져서 정말 투명이 된 것 같다.

Offset을 줘서 굴절되는 느낌을 줘야 한다.

Offset으로 굴절되는 느낌 주기

UV에 Offset을 더해주었다.

확실히 굴절이 되니까 느낌이 살긴 하는데, 0.03이라는 일정 수치를 더해주었기 때문에

어느 방향에서 보던, 0.03만큼 아래로 굴절된다.

Normal 방향으로 굴절되도록 만들어보자.

Normal 방향으로 Offset 주기

굴절이 밋밋하지 않다.

Normal Vector 말고, Normal Map을 이용해서 좀 더 디테일을 준다.

Unlit Shader에서 Normal Map 사용하기

노멀맵 한 것과 안한 것의 차이가 거의 안 나서 결과는 캡처하지 않았다.

Lit Shader에서는 Normal Map 넣는 곳에 그냥 이어주기만 하면 알아서 계산해주지만, Unlit Shader에서는 직접 계산해줘야 한다.

Normal Map을 탄젠트 공간에서 월드 공간으로 바꾸려면, (탄젠트, 바이탄젠트, 노멀)을 구해서, 행렬을 만든 뒤, 곱해야 하는데,

Transform 노드를 쓰면 다 해주는 것 같다. 결과가 동일함.

Fresnel Effect 노드로 실루엣 보여주기

너무 투명하면 좀 Clocking 느낌이 안 살기 때문에, 테두리만 좀 넣어주자.

끝!

from http://mingyu0403.tistory.com/302 by ccl(A) rewrite - 2021-08-10 19:00:12