본문 바로가기

Unity3D/Shadow Settings

Unity 3D Shadow Settings

유니티 3D에서 그림자 설정


그림자 설정을 테스트하기 위해 다음과 같이 작은 지형(Terrain) 에 Directional Light를 설정하고 야자나무 하나를 장면에 추가한다

또한 바람에 자연스럽게 흔들리는 효과를 내기 위해 Wind Zone도 설정한 후에 Hierarchy 뷰에서 Directional Light를 선택하고 Inspector 뷰에 Light 콤포넌트를 확인해 보면 Shadow Type항목에 그림자가 없는 상태(No Shadows)로 설정된 것을 확인할 수 있다



위의 화면에서 Shadow Type 설정을 No Shadows 에서 Hard Shadows, 혹은 Soft Shadows 으로 변경하면 야자수 그림자가 생기는 것을 볼 수 있다. 그리고 Wind Zone 을 설정했기 때문에 야자수가 자연스럽게 흔들거림에 따라서 그림자에도 그대로 반영되는 것을 확인할 수 있다.


Hard Shadows 타입인 경우





Soft Shadows 타입인 경우




Light Type 항목을 Spot 으로 변경해보면 아래 그림과 같이 경고 메시지가 나타나면서 그림자가 사라지는데, 경고 메시지의 내용을 보면, Directional Light 환경에서만 그림자가 지원된다는 내용이다. 그러나 Unity Pro 버전에서는 Project Setting 항목을 조정하여 Directional Light 환경이 아닌 경우에도 그림자 효과를 낼 수 있다




Edit > Project Settings > Player 항목을 선택하고 Inspector 뷰에서  Other Settings 항목을 선택한다




Rendering 섹션에서 Rendering Path 항목에서 Forward 상태를  Deferred Lighting 으로 변경하면 아래 그림과 같이 Directional Light 환경이 아닌 경우에도 그림자 효과를 볼 수 있고 Play 모드로 테스트해보면 나무가 바람에 흔들거림에 따라서 그림자도 흔들거리는 동적인 그림자 효과가 지원되고 있는 것을 확인할 수 있다



Rendering Path 항목을 Vertex Lit 상태로 변경하면 그림자가 사라지는데 Vertex Lit 에서는 동적인 그림자를 지원하지 않기 때문이다

Vertex Lit 은 지금은 거의 사용하지 않고 있으며 조명의 효과를 내기 위해 인접한 정점들의 평균값으로 오브젝트의 색상을 결정하는 리소스를 절감하기 위한 방식이다.


Light 콤포넌트의 Bias 항목은 그림자가 적용되는 주변 지형지물에 맞지 않게 생성될 경우에 Bias 수치를 조절하여 그림자를 조정할 수 있다


Light 콤포넌트의 Resolutjion 항목에서는 그림자의 품질을 조정할 수 있는데 고품질일수록 리소스를 더 차지하게 되므로 적절하게 설정해야 한다

Resolutjion 항목의 기본값은 Use Quality Settings 라고 설정되어 있는데 이는 다음과 같이 그림자의 품질을 설정할 수 있도록 한다는 의미이다




Quality 설정은 다음과 같이 순서대로 선택하면 된다.




다음과 같이 대부분 Good Quality 로 설정된 상태를 확인할 수 있고 품질을 변경할 수도 있다.




Light 콤포넌트의 Halo 항목은 해무리, 달무리 등의 효과를 내는 기능이다.