■ URP Asset
[Lighting]
Shadow resolution이 2048일 때 기준으로 예시를 들어보자면,
1. 태양은 씬에 2048 x 2048 크기의 텍스처를 적용한다.
Unity는 이 텍스처의 픽셀마다 지오메트리를 계산하고, 각 지오메트리가 다른 지오메트리에 그림자를 드리우는지 확인한다.
위에 세팅한 텍스처에 그림자를 픽셀당 하나씩 찍고있는 셈인데 이를 섀도우 맵 (Shadow map)이라고 한다.
섀도우 맵의 해상도를 높여 그림자를 선명하게 만들 수 있다.
2. 주 광원인 Directional Light에 대한 옵션은 아래와 같고 Additional Lights 옵션을 통해 Spot light 등의 부가적인 광원에 대한 옵션을 세팅해줄 수 있다.
3. 해상도는 타겟 플랫폼과 목표 성능에 맞춰 적절히 조절해주면 된다.
[Shadows]
1. Distance 조절을 통해 카메라에서 몇 Unit [Meter]만큼 떨어진 거리까지 그림자를 보여줄지 조절할 수 있다.
다만, Distance 값을 높게 설정하면 할수록 전체 거리의 그림자 해상도가 낮아지는데 그 이유는 Lighting 섹션 내 세팅한 Shadow Resolution 해상도가 Distance 값에 걸쳐 분산되기 때문이다. 그래서 모든 그림자가 설정한 해상도에 맞는 텍스처에 모두 담길 수 있도록 적절한 Distance 값이 필요하다.
2. Cascades를 No Cascades로 설정할 경우 Distance와 Resolution 값이 씬 전체에 동일하게 적용된다.
반면에 Cascades를 사용할 경우 Unity가 설정한 Cascades 값 만큼의 각각 다른 섀도우 맵을 설정한 간격별로 적용하게 된다.
이럴 경우 LOD와 비슷한 원리로 일정 구간까지는 고해상도 섀도우 맵을 적용하고 그 이상 카메라에서 멀어질수록 그림자의 해상도가 낮아지게 된다.
3. Depth Bias와 Normal Bias가 있는데 기본적으로 섀도우 애크니를 없애기 위한 설정들이다.
· Distance 값이 높을 수록 결함[Artifacts]도 더 촘촘하게 보이게 됨. 값을 높인 채로 고정했다면 bias 값들을 조절하여 제어해야 함.
· 결함을 없애기 위해 Bias 값을 높여 촘촘히 표현할 수 있으나, 유저는 씬 전반적인 모습을 보고 진행할 것이기에 세밀하게 조정할 것까지는 필요없다.
· 바닥에 텍스처가 있다면 결함이 눈에 잘 띄지 않을 것이다. 여러 트릭을 사용하여 최적화와 품질 사이에서 잘 타협해야 함.
■ 참고
https://www.youtube.com/watch?v=hMnetI4-dNY
'개발 (Game) > Unity (General)' 카테고리의 다른 글
[Unity] Lightmap - Filtering and charts (0) | 2025.04.14 |
---|---|
[Unity] Lightmapping (1) | 2025.04.14 |
[URP] Built-in Render Pipeline vs SRP (0) | 2025.04.09 |
[Unity] 사운드 출력기기 전환에 따른 이슈. (0) | 2025.02.01 |
[Unity] TMP폰트 관련 메모리 최적화 (0) | 2025.02.01 |