Unity는 섀도우 매핑을 통해 실시간 그림자를 렌더링합니다.
섀도우 매핑은 섀도우 맵이라는 섀도우 텍스처를 만드는 프로세스입니다. Unity는 카메라가 뎁스 텍스처를 생성하는 방식과 유사한 방식으로 광원의 시점에서 섀도우 맵을 생성합니다. 광원과 동일한 위치에 있는 카메라의 시점에서 볼 때, 씬에서 카메라에 보이지 않는 영역이란 곧 광원의 광선이 도달할 수 없는 영역입니다. 이러한 영역에는 그림자가 드리웁니다.
Unity는 광선이 표면에 닿을 때까지 이동하는 거리에 대한 정보로 섀도우 맵을 채운 후, 섀도우 맵을 샘플링하여 광원이 닿는 게임 오브젝트의 실시간 그림자를 계산합니다.
그림자 맵 해상도가 클수록 Unity는 그림자를 드리우는 지오메트리의 작은 세부 사항을 더 잘 포착하며, 그림자는 더 정확해집니다. 섀도우 맵 해상도가 클수록 더 많은 메모리 대역폭이 필요합니다.
섀도우 맵 해상도 설정에 대한 상세 내용은 다음 페이지를 참고하십시오.
Unity는 씬을 여섯 방향으로 캡처하여 점 광원 대한 섀도우 맵을 생성합니다. 성능에 미치는 영향은 여섯 개의 스폿 광원에서 그림자를 렌더링하는 것과 유사하며, 드로우 콜 횟수가 크게 증가합니다.
모바일 플랫폼에서 이 프로세스는 프레임당 사용 가능한 리소스의 상당 부분을 소모합니다. 카메라 뷰 내의 점 광원 개수를 최대한 줄이십시오.
스폿 광원의 실시간 그림자는 점 광원의 실시간 그림자보다 훨씬 빠르게 렌더링됩니다.