[Unity] URP 셰이더 무료 에셋을 이용한 Lit Shader Graph 정리 (Base Map/Metallic/Smoothness/Ambient Occlusion/Emission)

2023. 7. 13. 18:05Unity

728x90
반응형

https://assetstore.unity.com/packages/3d/props/guns/sci-fi-pistol-pbr-213679#content

책의 예제와 똑같이, 에셋 스토어에서 무료 에셋을 받은 후 프로젝트에 Import하고 분홍색으로 깨지는 메테리얼 대신 Lit Shader Graph를 적용한 메테리얼을 적용한다.

 

 


 

 

이후 Diffuse(Albedo)는 컬러 값과 곱하여 Base Color에 연결하고 Metallic은 R값은 Metallic에, A알파값은 Smoothness에 들어있으므로 맞는 곳에 연결한다. (*만약 Smoothness 텍스쳐가 따로 있다면 데이터로 쓰이는 텍스쳐이기 때문에 [sRGB] 체크를 해제해서 써야한다.)

Metallic의 A 값

 

 

유니티 기본 Lit 셰이더에서도 Smoothness의 Source가 "Metallic Alpha"로 설정되어 있는 것을 볼 수 있다.

 

 


 

 

노말맵 만들기

노말맵에 쓸 텍스쳐는 반드시 Inpector에서 [Texture Type]을 [Normal Map]으로 설정해야 한다.

 

 

*노말 맵은 지브러쉬나 머드박스 같은 Sculpting 툴을 이용하거나 3D 프로그램에서 하이 폴리곤 모델링 후 Render to Texture(RTT)로 추출하는 방식을 자주 사용한다. 간단하게는 Crazy Bump 또는 B2M 툴을 이용하기도 하며 최근의 포토샵 또는 유니티에서도 이런 기능은 퀄리티가 높진 않지만 가능하다.

 

 

유니티에서 노말맵 만드는 방법

[Texture Type] - [Normal map] 으로 설정하고, [Create from Grayscale] 체크, 이후 [Bumpness]와 [Filtering]을 조절한다.

 

 


 

 

노말맵 적용

노말맵을 적용하니 입체감이 조금 살아난 것을 볼 수 있다.

 

 

노말맵 정도를 높여주는 [Normal Strength]라는 노드가 있는데 값을 5로 높였더니 더 강하게 노말맵이 들어간 것을 볼 수 있다.

 

 

*여기서 , Normal Map에 쓰이는 [Sample Texture 2D] 노드에 [Type]을 [Normal]로 설정해야하는 것도 중요하다.

 

 


 

 

Ambient Occlusion 적용

AO 텍스쳐는 [Ambient Occlusion] 부분에 바로 연결할 수 있는데, [Add], [Saturate] 노드와 연결하여 그 정도를 조절할 수 있다. 마이너스 값을 더하면 더 어두워지고 [Saturate] 노드를 이용하여 0 이하의 값을 0으로 만들어준다.

 

 


 

 

Emission 적용

HDR 설정을 준 Color 값을 곱하여 조절 할 수 있으며, Emission 부분에 연결하면 된다.

 

 

HDR Color의 intensity 값을 올리면 Emission 받는 부분이 빛나는 것을 볼 수 있다.

 

 


 

 

최종으로 정리하면 위와 같다.

 

 


 

 

 

Poly Haven • Poly Haven

The Public 3D Asset Library

polyhaven.com

위의 링크에서 무료 HDRI .exr 파일을 받아서 큐브맵 적용을 하고 배경에 넣으면 주변 환경광에 맞게 오브젝트가 빛에 영향을 받는 것을 볼 수 있다.

 

 


참고자료

 

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

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

www.aladin.co.kr

728x90
반응형