방향 광원은 일반적으로 햇빛을 시뮬레이션하고, 광원 하나로 씬 전체를 비출 수 있습니다. 따라서 섀도우 맵이 종종 씬의 커다란 부분을 한꺼번에 덮고, 이로 인해 섀도우가 원근 앨리어싱이라는 문제에 취약해집니다. 원근 앨리어싱은 카메라에 가까이 보이는 섀도우 맵 픽셀이 카메라에서 더 멀리 있는 픽셀에 비해 더 비대하고 “덩어리”져 보임을 의미합니다.
원근 앨리어싱은 섀도우 맵에 부드러운 섀도우와 높은 해상도를 사용하는 경우 눈에 덜 띱니다. 하지만 이런 기능을 사용하면 그래픽스 하드웨어 리소스가 더 많이 요구되므로 프레임 속도가 낮아질 수 있습니다.
원근 앨리어싱이 발생하는 이유는 섀도우 맵의 여러 다른 영역이 카메라의 원근에 따라 불균형하게 스케일되기 때문입니다. 광원의 섀도우 맵은 씬에서 카메라에 보이는 부분만 덮으면 됩니다. 이 부분은 카메라의 뷰 절두체에 따라 정의됩니다. 방향 광원이 위에서 바로 내려오는 간단한 경우를 상상해보면 절두체와 섀도우 맵의 관계를 알 수 있습니다.
절두체의 먼 쪽은 섀도우 맵 픽셀 20개로 덮이지만, 가까운 쪽은 픽셀 4개로만 덮입니다. 하지만 양쪽 모두 화면상에는 같은 크기 로 나타납니다. 그 결과 맵의 해상도는 카메라에 가까운 섀도우 영역에서 사실상 훨씬 더 낮습니다(실제로는 해상도가 20x20보다 훨씬 높고 맵은 일반적으로 카메라에 완벽하게 맞지 않습니다).
전체 맵에 더 높은 해상도를 사용하면 덩어리진 영역의 영향을 줄일 수 있지만, 그러면 렌더링 중에 더 많은 메모리와 대역폭이 사용됩니다. 하지만 다이어그램에서 보면 섀도우 맵의 큰 부분이 절두체의 끝자락에서 보이지 않기 때문에 낭비되고 있습니다. 또한 카메라에서 멀리 떨어진 섀도우의 해상도가 너무 높을 가능성이 큽니다. 절두체 영역을 카메라에서 떨어진 거리에 따라 두 개의 존으로 나눌 수 있습니다. 끝자락의 존에는 픽셀 수가 어느 정도 균등해지도록 크기가 더 작은 (하지만 해상도는 같은)별도의 섀도우 맵을 사용할 수 있습니다.
이런 섀도우 맵 크기의 단계적 감소를 cascaded shadow maps라고 하며, \ 때로는 “Parallel Split Shadow Maps”라고도 합니다. Quality 창에서 주어진 품질 레벨에 대해 캐스케이드를 0개, 2개 또는 4개 설정할 수 있습니다.
캐스케이드를 많이 사용할수록 섀도우가 원근 앨리어싱의 영향을 덜 받지만, 수가 증가하면 렌더링에 리소스가 많이 사용됩니다. 하지만 이 리소스 사용량은 전체 섀도우에 고해상도 맵을 사용하는 경우보다 여전히 적습니다.
오브젝트의 섀도우는 오브젝트가 카메라에서 멀수록 눈에 덜 띄는 경향이 있습니다. 이런 섀도우는 화면에서 더 작아 보이고, 멀리 있는 오브젝트에는 일반적으로 주의가 집중되지 않습니다. Unity에서는 Quality 창의 Shadow Distance 프로퍼티를 사용하여 이 효과를 이용할 수 있습니다. 카메라에서 이 거리보다 멀리 떨어져 있는 오브젝트는 섀도우가 전혀 없지만, 이 거리에 근접하는 오브젝트의 섀도우는 점차적으로 페이드 아웃됩니다.
섀도우 거리를 최대한 낮게 설정하면 렌더링 성능을 개선하는 데 유용합니다. 멀리 있는 오브젝트는 섀도우 맵에 렌더링할 필요가 없기 때문입니다. 또한 멀리 있는 섀도우를 제거하면 종종 씬이 더 나아 보입니다. 현재 카메라 원거리 평면이 섀도우 거리보다 작으면 Unity는 섀도우 거리 대신 카메라 원거리 평면을 사용합니다.
씬 뷰에는 색조를 사용하여 씬에서 여러 캐스케이드 레벨을 사용하는 부분을 나타내는 Shadow Cascades 라는 드로우 모드가 있습니다. 이 모드를 사용하면 섀도우 거리, 캐스케이드 수 및 캐스케이드 분할 비율을 알맞게 조정하는 데 유용합니다. 이 시각화에서는 일반적으로 섀도우 거리보다 큰 Scene 뷰 원거리 평면을 사용하므로, 원거리 명면이 작은 Camera의 게임 내 동작과 일치시키려면 섀도우 거리를 줄여야 할 수 있습니다.
섀도우 애크니를 더욱 줄이기 위해 Shadow pancaking 이라는 기법이 사용됩니다. 이 기법은 광원의 방향과 나란히 섀도우 맵을 렌더링할 때 사용되는 광원 공백의 범위를 줄인다는 개념에 바탕을 두고 있습니다. 이렇게 하면 섀도우 맵의 정밀도가 높아져 섀도우 결함이 감소합니다.
위 다이어그램에서
섀도우 캐스터를 최적화된 공백(버텍스 셰이더 내)의 근접 클립 평면에 고정시켜야 합니다. 이 방법은 일반적으로 효과적이지만, 근접 클립 평면을 지나는 매우 큰 삼각형에 결함이 생길 수 있습니다.
사례에서는 파란색 삼각형의 버텍스 하나만 근접 클립 평면 뒤에 있고 이 평면에 고정됩니다. 하지만 이렇게 하면 삼각형 모양이 변하여 올바르지 않은 섀도우가 생길 수 있습니다.
Quality 창에서 Shadow Near Plane Offset 프로퍼티를 미세 조정하여 이 문제를 방지할 수 있습니다. 이렇게 하면 근접 클립 평면이 뒤로 당겨집니다. 하지만 이 값을 매우 높게 설정하면 섀도우 맵이 광원 방향에서 처리해야 하는 범위가 증가하기 때문에 결국에는 섀도우 애크니가 발생합니다. 그 대신 그림자를 드리우는 문제가 있는 삼각형을 바둑판 모양으로 만들 수도 있습니다. 자세한 내용은 섀도우 오버뷰의 bias 섹션을 참조하십시오.