반응형

 

 

 

 

기본 개념은 다음 글에서 참고

 

[유니티] 오클루전 컬링 - 기본 개념

오클루전 컬링 - 오클루전 컬링은 어떤 게임 오브젝트가 다른 게임오브젝트에 의해 카메라 뷰에서 완전히 가려진 게임 오브젝트에 대한 렌더링 계산을 수행하지 못하도록 하는 프로세스이다. -

srdeveloper.tistory.com


 

 

 

다음은 오클루전 컬링 설정을 위한 예시이다.

위 그림에서 Wall 게임 오브젝트는 정적 게임오브젝트, Ball은 동적 게임오브젝트로 오클루전 컬링을 설정해 볼것이다.

 

 

 

카메라 설정

- 카메라 컴포넌트에서 Occlusion Culling 플래그를 활성화 시켜준다.

 

 

 

Wall 게임오브젝트

- 정적 게임오브젝트로 컬링 데이터를 베이크할 것이기 때문에 렌더러에서 Dynamic occlusion 플래그를 활성화시켜줄 필요는 없다.

- 게임 오브젝트의 Static 옵션에서 Occluder StaticOccludee Static 선택해준다.

※※ 일반적으로 정적 오브젝트는 일일이 선택하기보다는 모든 종류의 Static을 선택해주는데 여기서는 그렇게 하지 않았다.

 

 

 

Ball 게임 오브젝트

- 동적 게임오브젝트로 설정해야하므로 렌더러에서 Dynamic occlusion 플래그를 활성화 시켜준다.

 

 

 

 

오클루전 컬링 창

- 상단 메뉴에서 WindowRenderingOcclusion Culling을 눌러 오클루전 컬링 창을 연다.

- Bake 카테고리를 눌러 각 옵션을 설정해주는데 옵션별 기능은 다음과 같다.

 

  • Smallest Occluder

- 다른 게임 오브젝트를 가릴 수 있는 가장 작은 게임 오브젝트의 크기(M단위)이다.

- 일반적으로 가장 작은 파일 크기와 가장 빠른 베이크 시간을 위해 씬에서 최상의 결과를 제공하는 가장 높은 값을 선택해야한다.

  • Smallest Hole

- 카메라가 들여다 볼 수 있는 가장 작은 간격의 직경(M단위)이다.

- Smallest Occluder와 같이 최상의 결과를 제공하는 높은 값을 선택하는 것이 좋다.

  • Backface Threshold

- 베이크 된 크기를 줄여야 하는 경우 유니티는 베이크할 때 씬을 샘플링하고, 표시되는 오클루더 지오메트리가 특정 비율의 후면 이상으로 구성된 씬의 일부를 제외할 수 있다.

- 높은 비율의 후면이 있는 영역은 지오메트리 아래 또는 내부에 있을 가능성이 높으므로, 런타임 시점에 카메라가 있을 가능성이 낮다.

- 기본값 100은 데이터에서 영역을 제거하지 않는다. 값을 낮추면 파일 크기가 작아지지만, 시각적 결함이 발생할 수 있다.

 

 

 

베이크

- 가볍게 사용법을 파악하기 위한 글이니, Smallest Occluder값을 1로 하고 베이크를 한다.

- 베이크를 하게 되면, 프로젝트 창에는 씬의 이름으로 폴더가 생성되고 그 안에 컬링 데이터가 생성되어있는것을 확인할 수 있다.

- 오클루전 컬링이 적용된것을 눈으로 확인하고 싶으면 오클루전 컬링 창에서 Visualization을 선택하면 컬링 화면을 확인할 수 있다.

- 다음 사진과 같이 씬 뷰에서는 컬링된 결과를, Status창에서는 BatchesSaved by batching의 수치가 줄어든 것을 확인할 수 있다.

※※ 만약 Visualization을 눌러도 컬링이 되지 않는다면 카메라가 컬링 범위(노란색 범위)에 있는지 확인해볼 것. 카메라가 범위 밖으로 나가면 컬링 연산을 하지 않는다.

 

 

 

 

동적 오클루전(Dynamic Occlusion)

- 동적 게임오브젝트의 경우 오클루전 컬링을 하려면 Dynamic Occlusion 플래그를 활성화해야 한다고 언급했다.

- 만약 해당 플래그를 비활성화한 뒤, Visualization으로 확인해보면 다음과 같이 컬링이 되지않는것을 확인할 수 있다.

 

 

 

결과

 

 

 

 

추가 주의점

- Smallest Occluder의 값은 작을수록 컬링 정밀도가 올라가지만, 정밀도가 올라갈수록 데이터 크기가 늘어나고 연산 오버헤드가 발생하므로 적절한 수치를 적용하는것이 좋다. (이러한 경험적으로 얻는 수치를 매직 넘버라고 부른다.)

- 야외 씬과 같은 경우 폐쇠되지 않고 오픈되어있는 환경이기 때문에 오클루전 컬링이 그다지 효율적이지 않다.

 

 

 

 

 

반응형

+ Recent posts