게임 개발/Unreal Engine

[UE5] 버추얼 섀도우 맵

지노윈 2023. 3. 22. 22:41
반응형

버추얼 섀도우 맵

나나이트의 멀티뷰 랜더링 덕분에 사용 가능한 기능입니다.

버추얼 섀도우 맵은 고해상도 텍스처를 사용하여 선명한 그림자와 소프트한 그림자를 제어할 수 있습니다. 또한 가상화된 텍스처를 사용하기 때문에 해상도 부족으로 인한 깨짐 현상이 없습니다.

변경된 부분만 캐시를 활용하여 업데이트하며, 빛의 움직임이 임계치 이상일 경우 캐시가 무효화됩니다. 따라서 빛의 방향이 갑작스럽게 변할 경우 성능 비용이 발생할 수 있습니다. 또한, 섀도우 맵의 크기는 라이트당 16kx16k로 제한되며, 포인트 라이트는 16k 큐브맵으로 지원됩니다.

더이상 뎁스 바이어스(Depthbias)가 불필요해져 ShadowAcne, PeterPanning 등의 현상이 발생하지 않습니다. 또한, 물리 기반의 디노이징된 음영 처리가 가능합니다.

이러한 기술은 멀티 뷰를 한번에 그리는 나나이트 덕분에 가능해졌으며, 나나이트를 활용하여 렌더링, 컬링, LOD 처리가 가능합니다. 그러나 지오메트리가 많거나 라이트 수가 많아질 경우 초과적인 드로우콜 발생할 수 있으므로 주의해야 합니다.

비디오 메모리 부족 시 비주얼 아티팩트(누락되는 현상)가 발생할 수 있으므로, 1texel=1pixel이 되도록 mip level을 선택해야 합니다.

 

버추얼 섀도우 맵 - 소프트 섀도

고해상도 섀도우 맵 덕분에 굉장히 선명한 섀도우가 가능해 졌고 뿐만아니라 경계가 부드러운 소프트 섀도우도 가능합니다.

Source Angle : 0, 선명한 섀도우

 

Source Angle : 5.0, 경계가 부드러운 섀도우

버추얼 섀도우 맵 사용

Project Setting에서 섀도 맵 메서드를 Virtual Shadow Maps로 선택합니다.

http://youtube.com/watch?v=laCeIFasZsg