[Unity] URP 프레넬 셰이더(Fresnel Shader) 응용 2 (홀로그램 만들기)

2023. 7. 20. 18:10Unity

728x90
반응형
 

[Unity] URP 프레넬 셰이더(Fresnel Shader) 응용 (조명 효과, 깜빡이는 조명 만들기)

HDR과 Bloom 효과는 저사양의 모바일 게임에서 사용하거나 레트로한 느낌을 주기 힘들기 때문에 프레넬 효과를 이용하여 만들어 볼 것이다. 조명 효과 Street Light 3D Model Free Download | 3DModelsCC0 Free Stre

lightbakery.tistory.com

이전 글에 이어서, 가로등 조명 효과 셰이더에서 [One Minus] 노드를 빼면, 반대가 되므로 가운데가 투명하고 바깥으로 갈수록 진해지는 보호막, 비눗방울 효과가 생기게 된다.

 

 


 

 

예제 공룡 뼈에 간단하게 홀로그램을 적용하기 위해 [Fresnel Effect] 노드를 연결해보면,

 

 


 

 

[HalfLambert] Subgraph를 만들어 자연스럽게 깜빡이는 효과를 만들어서 넣어주었다.

 

 


 

 

이제 줄무늬를 넣어서 홀로그램 효과를 극대화해본다. 마치 공룡 영화에 나오는 화석 홀로그램처럼?

먼저, 줄무늬를 만든다.

 

 

[Checkboard] 노드를 이용해 줄무늬를 만들고 UV를 [Position] 노드로 World Space로 만든다. 여기에 [Swizzle] 노드로 XY를 UV처럼 사용한다.

 

 


 

 

이제 줄무늬를 Y축 위쪽 방향으로 흘러가게 하기 위해서 [Time] 노드를 [Negate] 노드로 음수를 만든다. 이후 Y에 해당하는 [Combine]의 G에 연결하고 [Position] 노드로 만든 UV에 [Add]하면, Y축 음수 방향으로 시간에 따라 흐르게 된다.

 

 


 

 

이전에 만들었던 깜빡임 효과와 [Mutiply]하면 깜빡임과 동시에 줄무늬가 움직이게 된다.

 

 


 

 

줄무늬를 다른 방식으로 만들 수도 있다.

World Position에서 Y 값만 가져와서 Base Color에 연결하면, 컬러 값이 오직 Y의 값에 따라 달라지게 된다. Y가 1 이상이면 흰색으로, 0 이하면 검은색으로 나온다.

 

 


 

 

이제 [Fraction] 노드를 이용하여 소수점만 출력하는 방법을 이용한다. 이유는, 0~1 까지는 어차피 소수점 밖에 없으므로 검은색-회색-흰색이 나올 것이고, 만약 1~2 사이의 값이라면 소수점만 생각하므로 똑같이 검은색-회색-흰색이 나올 것이다. 즉, 정수의 반복만큼 줄무늬도 반복되는 것이다.

 

 


 

 

[Power] 노드로 검은 부분을 강조할 수도 있다.

 

 


 

 

[Step] 노드를 이용한 방법도 있는데, [Step]은 들어온 값이 Edge에 쓴 값보다 크거나 같으면 1을, 작으면 0을 출력한다. 따라서 완전히 0과 1만으로 된 줄무늬를 만들 수 있다.

Egde 값에 따라 다르게 보인다. 0.5 / 0.1 / 0.9

 

 


참고자료

 

대마왕의 유니티 URP 셰이더 그래프 스타트업

셰이더의 기본 개념에서부터 셰이더 그래프(노드)의 기본 활용법까지 소개하여, 다양하고 재미있는 셰이더를 만드는 방법을 알려준다. 또한, 자신이 원하는 효과를 만들기 위해 노드를 어떤 방

www.aladin.co.kr

728x90
반응형