Unity에서 그림자를 사용하다 보면 간혹 그림자에 구멍이 뚫린 듯한 현상이나 계단 현상이 나타나 당황스러울 때가 있다. 분명 그림자를 적용했는데, 왜 이렇게 어색하게 표현되는 걸까? 이런 현상은 Unity의 기본 그림자 설정이 특정 상황에서 최적화되지 않아 발생하는 경우가 많다.
이번 글에서는 Unity 그림자 문제의 원인을 간단히 알아보고, 몇 가지 설정을 조정하여 깔끔하고 보기 좋은 그림자를 얻는 방법을 소개한다.
그림자 문제, 왜 발생할까?
Unity에서 그림자가 이상하게 보이는 주된 원인 중 하나는 `Shadow Bias` 설정과 `Shadow Distance` 때문이다.
Shadow Bias는 그림자가 드리워지는 면에서 그림자가 얼마나 `밀려날지`를 결정하는 값이다. 이 값이 너무 높으면 그림자가 오브젝트에서 떨어져 보이거나, 오브젝트 표면에 그림자 공백이 생기는 `그림자 피터링(Shadow Acne)` 현상이 발생할 수 있다. 반대로 너무 낮으면 오브젝트 자체가 그림자를 드리우는 면에 잘못된 그림자를 드리우는 `셀프 쉐도잉 아티팩트(Self-shadowing Artifact)` 현상이 발생하기도 한다. Unity는 기본적으로 그림자 피터링을 방지하기 위해 Normal Bias 값을 0.5로 설정해두고 있다.
Shadow Distance는 그림자가 렌더링될 최대 거리를 의미한다. 이 거리가 너무 길면 멀리 있는 오브젝트의 그림자는 해상도가 낮아져 계단 현상이 두드러지거나 흐릿하게 보일 수 있다. Unity는 이 거리에 따라 그림자 맵을 할당하므로, 거리가 멀수록 한정된 해상도 내에서 더 넓은 영역을 표현해야 하기에 품질 저하가 발생할 수 있다.
깔끔한 그림자를 위한 설정 팁
다행히 Unity는 이러한 그림자 문제를 해결할 수 있는 몇 가지 유용한 옵션을 제공한다. 다음 두 가지 설정을 조정하여 그림자 품질을 크게 향상시킬 수 있다.
1. Shadow Normal Bias 값 조정
Shadow Normal Bias는 그림자가 오브젝트 표면에서 얼마나 떨어져서 그려질지를 결정하는 값이다. 기본값인 0.5는 그림자 피터링을 방지하는 데 도움을 주지만, 간혹 오브젝트와 그림자 사이에 미세한 틈이 생기거나 그림자가 끊어지는 것처럼 보일 수 있다. 이 값을 0.0으로 조정하면 그림자가 오브젝트 표면에 더 밀착되어 표현되어 깔끔한 결과를 얻을 수 있다.
설정 방법:
- Unity 에디터에서 Edit > Project Settings로 이동한다.
- Quality 탭을 선택한 후 Render Pipeline Asset 을 클릭한다.
- Shadows 섹션에서 Shadow `Normal Bias` 값을 0.0으로 변경한다.
2. Shadow Max Distance 값 줄이기
Shadow Max Distance는 그림자가 렌더링될 카메라로부터의 최대 거리를 설정한다. 이 값이 너무 크면 Unity는 넓은 영역에 그림자 맵을 할당해야 하므로, 멀리 있는 그림자의 해상도가 낮아져 계단 현상이 두드러지거나 흐릿하게 보인다. Shadow Max Distance 값을 줄이면 그림자가 렌더링되는 영역이 좁아지지만, 해당 영역 내에서는 더 높은 해상도의 그림자를 얻을 수 있어 전반적인 그림자 품질이 향상된다. 특히 가까이 있는 오브젝트들의 그림자 품질을 중요하게 생각한다면 효과적인 방법이다.
설정 방법:
- Unity 에디터에서 Edit > Project Settings로 이동한다.
- Quality 탭을 선택한 후 Render Pipeline Asset 을 클릭한다.
- Shadows 섹션에서 Shadow Max Distance 값을 적절하게 줄인다. 값이 작을 수록 전반적으로 그림자 품질이 향상된다.
마무리
Unity에서 그림자를 깔끔하게 표현하는 것은 게임이나 애플리케이션의 시각적 품질을 크게 향상시키는 중요한 요소이다. `Shadow Normal Bias`를 0.0으로 조정하고, `Shadow Max Distance`를 적절히 줄이는 간단한 설정만으로도 거슬리던 그림자 문제를 해결하고 훨씬 더 사실적이고 보기 좋은 장면을 만들 수 있다. 개발하는 프로젝트의 특성과 성능 요구사항을 고려하여 이 값들을 조절한다면, 최적의 그림자 표현을 얻을 수 있을 것이다.
'Unity' 카테고리의 다른 글
[Tip] Unity 에서 Scene View 카메라를 Game View에 적용시키는 방법 (2) | 2025.07.24 |
---|