섀도우 맵의 해상도를 계산하기 위해 Unity는 다음을 수행합니다.
광원이 비출 수 있는 스크린 뷰 영역을 결정합니다. 방향 광원의 경우 화면 전체에 조명을 비출 수 있습니다. 스폿 광원과 점 광원의 경우 영역은 광원의 범위 모양을 화면에 투사하며, 점 광원의 경우 구체 또는 스폿 광원의 경우 원뿔로 나타납니다. 투사된 모양은 화면의 픽셀 단위 너비와 높이를 가지며, 두 값 중 큰 값이 사용됩니다. 이 값을 광원의 픽셀 크기라고 합니다.
다음 계산을 수행한 후 결과를 최대 값에 고정합니다.
| 광원 유형: | 수식: | 최대 해상도(픽셀 단위): |
|---|---|---|
| 방향성 모드 | NextPowerOfTwo(픽셀 크기 * 그림자 품질 멀티플라이어 * 3.8) | 그림자 해상도가 매우 높은 품질이거나 GPU의 RAM이 512MB 이상이면 4096 x 4096이고, 그 외의 경우에는 2048 x 2048입니다. |
| 스폿 광원 | NextPowerOfTwo(픽셀 크기 * 그림자 품질 멀티플라이어 * 2.0) | GPU의 RAM이 512MB 이상이면 2048 x 2048이고, 그 외의 경우에는 1024 x 1024입니다. |
| 점 광원 | NextPowerOfTwo(픽셀 크기 * 그림자 품질 멀티플라이어 * 1.0) | GPU의 RAM이 512MB 이상이면 1024 x 1024이고, 그 외의 경우에는 512 x 512입니다. |
빌트인 렌더 파이프라인에서는 Light.shadowCustomResolution 프로퍼티를 0보다 큰 값으로 설정하여 광원 섀도우 맵의 해상도를 설정할 수 있습니다. 이 값이 0보다 크면 Unity는 모든 광원 유형에 대해 다음 계산을 수행합니다.
NextPowerOfTwo(shadowCustomResolution)
그런 다음 광원 유형과 하드웨어를 기반으로 최대 해상도를 고정합니다(위 표 참조).