Version: Unity 6.0 (6000.0)
언어 : 한국어
그림자 캐스케이드가 성능에 미치는 영향
그림자 문제 해결

섀도우 캐스케이드의 구현 세부 정보

이 페이지에서는 섀도우 캐스케이드의 기술적 구현 세부 정보를 다룹니다.

원근 앨리어싱

방향 광원은 일반적으로 태양광을 시뮬레이션하며, 하나의 방향 광원은 전체 씬을 밝힐 수 있습니다. 이는 섀도우 맵이 씬의 상당 부분을 덮기 때문에 원근 앨리어싱이라는 문제가 발생할 수 있다는 의미입니다. 원근 앨리어싱이란 카메라에 가까운 섀도우 맵 픽셀이 멀리 있는 픽셀에 비해 크고 뭉툭하게 보이는 현상입니다.

먼 거리에 있는 섀도우(A)는 해상도가 적절한 반면, 카메라에 가까이 있는 섀도우(B)는 원근 앨리어싱을 나타냅니다.
먼 거리에 있는 섀도우(A)는 해상도가 적절한 반면, 카메라에 가까이 있는 섀도우(B)는 원근 앨리어싱을 나타냅니다.

원근 앨리어싱이 발생하는 이유는 섀도우 맵의 여러 다른 영역이 카메라의 원근에 따라 불균형하게 스케일되기 때문입니다. 광원의 섀도우 맵은 씬에서 카메라에 보이는 부분만 덮으면 됩니다. 이 부분은 카메라의 뷰 절두체에 따라 정의됩니다. 방향 광원이 위에서 바로 내려오는 간단한 경우를 상상해보면 절두체와 섀도우 맵의 관계를 알 수 있습니다.

이 간단한 예제에서 절두체의 먼 쪽은 섀도우 맵 픽셀 20개로 덮이지만, 가까운 쪽은 픽셀 4개로만 덮입니다. 하지만 양쪽 모두 화면상에는 같은 크기로 나타납니다. 그 결과 맵의 해상도는 카메라에 가까운 섀도우 영역에서 사실상 훨씬 더 낮습니다.

섀도우 캐스케이드의 작동 방식

원근 앨리어싱은 Soft Shadows 옵션을 사용하거나, 섀도우 맵에 더 높은 해상도를 사용하면 눈에 덜 띕니다. 하지만 이러한 솔루션은 렌더링하는 동안 더 많은 메모리와 대역폭을 사용합니다.

섀도우 캐스케이드를 사용하면 Unity는 카메라에서 떨어진 거리에 따라 절두체 영역을 두 개의 존으로 분할합니다. 가까운 쪽 끝에 있는 존은 축소된 크기의 별도 섀도우 맵을 사용합니다(해상도는 동일함). 이러한 섀도우 맵 크기의 단계적 감소를 캐스케이디드 섀도우 맵이라고 부릅니다(때때로 평행 분할 섀도우 맵이라고도 불림).

그림자 캐스케이드가 성능에 미치는 영향
그림자 문제 해결