[Unity Course 2] 13. 오클루전 컬링
위키북스 출판사 이재현 저자님의 '절대강좌! 유니티' 책을 참고하여 필기한 내용입니다.
오클루전(Occlusion) : 한 물체가 다른 물체를 가리는 것
컬링(Culling) : 도태시킨다
오클루전 컬링은 렌더링 부하를 줄여주는 기법 중 하나로 3D 게임 및 콘텐츠 개발에 필수적인 요소
**무엇인가에 가려진 물체는 제거한다는 의미, 렌더링 관점에서 본다면 카메라에 보이지 않는 객체는 렌더링 하지 않음
불필요한 요소를 렌더링에서 제외함으로 써 렌더링 부하를 줄이고 속도를 향상시킴
컬링 방식
3D 그래픽스의 렌더링 영역에서 컬링하는 방식을 알아보자
프러스텀 컬링
한글로는 절두체 컬링이라고도 불림
: 카메라의 시야 범위에 들어와 있는 물체만을 렌더링 하고 시야 범위 밖의 물체는 렌더링 하지 않음

프러스텀 영역 안에 포함되는 건물 세개는 렌더링 하고 영역 밖의 건물은 렌더링 하지 않음


- Field of View : 카메라의 시야각 줄여서 FOV
- Clipping Planes : 카메라의 렌더링 범위
거리 비례에 의한 컬링
프리스텀 영역에 들어온 모든 물체를 렌더링함
렌더링에 들어와 있다고 하더라도 카메라로부터 너무 멀리 떨어져 있으면 굳이 식별할 필요 없음
Level Of Detail을 이용하여 거리 밖의 물체는 컬링시킴

맨뒤의 Culled 10% 라고 표시된 부분이 거리에 비례해 컬링시키는 기능임
오클루전 컬링
카메라 시야에서 다른 물체에 가려 보이지 않는 물체를 렌더링하지 않는 기법
프리스텀 영역내에 들어와 있지만 앞에 있는 건물에 가려져 보이지 않는 건물은 렌더링하지 않음

오클루전 컬링 실습
새로운 씬을 생성하여 아래와 같이 실습하기 위한 Cube를 설치해본다.

Occluder Static, Occludee Static
오클루전 컬링 기능을 구현하기 우해 먼저 대상이 되는 모든 3D 모델에 Static 플래그를 설정함
Occluder Static 은 다른 물체를 가릴 수 있는 객체에 설정하고 가려지는 물체는 Occludee Static 플래그를 지정함

Window - Rendering - Occlusion Culling을 선택하여 Bake 한다.

Scene 창 아래에 있는 Occlusion Culling 툴 박스에서 뷰 모드를 Visualize로 변경하면 노란색 벽 뒤에 배치한 녹색 큐브가 사라진 모습을 확인 가능
카메라를 옆으로 이동시켜 녹색 큐브가 보이게끔 배치하면 다시 렌더링 되는 것을 확인 가능
