오클루전 컬링은 Unity가 다른 게임 오브젝트에 의해 뷰에서 완전히 가려진(오클루전된) 게임 오브젝트에 대한 렌더링 계산을 수행하지 못하도록 하는 프로세스입니다.
프레임마다 카메라는 씬의 렌더러를 검사한 후 그릴 필요가 없는 렌더러를 제외(컬링)합니다. 기본적으로 카메라는 절두체 컬링을 수행하여 카메라의 뷰 절두체에 속하지 않는 모든 렌더러를 제외합니다. 하지만 절두체 컬링은 렌더러가 다른 게임 오브젝트에 의해 가려지는지를 확인하지 않으므로, Unity가 최종 프레임에 표시되지 않는 렌더러에 대한 렌더링 작업에 CPU 및 GPU 시간을 여전히 낭비할 수 있습니다. 오클루전 컬링은 Unity가 이러한 낭비되는 작업을 수행하지 못하도록 방지합니다.
오클루전 컬링이 프로젝트의 런타임 성능을 향상하는지 판단하려면 다음을 고려하십시오.
오클루전 컬링은 Unity 에디터에서 씬에 대한 데이터를 생성한 후 런타임 시점에 해당 데이터를 사용하여 카메라가 볼 수 있는 요소를 결정합니다. 이러한 데이터 생성 프로세스를 베이크라고합니다.
오클루전 컬링 데이터를 베이크하면 Unity는 씬을 셀로 나누고 셀 내 지오메트리와 인접 셀 간의 가시성을 설명하는 데이터를 생성합니다. 그런 다음 Unity는 생성된 데이터의 크기를 줄이기 위해 가능한 경우 셀을 병합합니다. 베이크 프로세스를 설정하려면 오클루전 컬링 창에서 파라미터를 변경하고, 씬에서 오클루전 영역을 사용하십시오.
런타임 시점에 Unity가 베이크된 데이터를 메모리에 로드하고, Occlusion Culling 프로퍼티가 활성화된 각 카메라에 대해 해당 데이터에 대한 쿼리를 수행하여 카메라가 볼 수 있는 요소를 결정합니다. 오클루전 컬링이 활성화되면 카메라는 절두체 컬링과 오클루전 컬링을 둘 다 수행합니다.
Unity는 Umbra 라이브러리를 사용하여 오클루전 컬링을 수행합니다. Umbra에 대한 자세한 정보를 제공하는 기사 링크는 추가 리소스 페이지를 참조하십시오.