공부/C#

오클루전 컬링(Occlusion Culling)이란?

셩잇님 2023. 3. 11. 15:50
반응형

 

 

1. 오클루전 컬링(Occlusion Culling)이란?

오클루전 컬링은 컴퓨터 그래픽 및 비디오 게임 개발에서 렌더링해야 하는 오브젝트의 수를 줄여 렌더링 성능을 개선하는 데 사용되는 기술입니다. 기본 아이디어는 카메라에 보이지 않거나 다른 오브젝트에 가려진 오브젝트를 렌더링하지 않도록 하여 리소스를 절약하고 프레임 속도를 개선하는 것입니다.

 

2. 오브젝트의 표시
오클루전 컬링을 수행하려면 시스템에서 어떤 오브젝트가 표시되고 어떤 오브젝트가 표시되지 않는지 결정해야 합니다. 이는 다음과 같은 다양한 방법을 사용하여 수행할 수 있습니다:

  • 1. 프러스텀 컬링: 여기에는 오브젝트가 카메라의 뷰 프러스텀(카메라에 보이는 공간의 일부) 내에 있는지 여부를 확인하는 작업이 포함됩니다. 프러스텀 밖에 있는 오브젝트는 컬링될 수 있습니다(즉, 렌더링되지 않음).
  • 2. 백페이스 컬링: 오브젝트의 얼굴이 카메라를 향하고 있는지 확인하는 작업입니다. 얼굴이 보이지 않는 오브젝트는 컬링될 수 있습니다.
  • 3. 오클루전 쿼리: 단순화된 버전의 씬을 뎁스 버퍼에 렌더링한 다음 뎁스 버퍼를 쿼리하여 각 오브젝트가 보이는지 테스트하는 작업입니다. 보이지 않는 오브젝트는 컬링할 수 있습니다.
  • 4. 포털 컬링: 포털(방 또는 영역 사이의 개구부)을 사용하여 씬을 더 작은 영역으로 나누고 포털에서 오브젝트가 보이는지 테스트하는 작업입니다. 오브젝트가 보이지 않으면 컬링할 수 있습니다.

 

3. 드로우 콜 최소화
보이는 오브젝트가 결정되면 시스템은 드로우콜(렌더링을 위해 지오메트리를 그래픽 카드에 전송하는 프로세스) 횟수를 줄이고 오버드로(픽셀을 여러 번 렌더링하는 프로세스)를 최소화하여 렌더링을 최적화할 수 있습니다. 이는 다음과 같은 다양한 기술을 사용하여 수행할 수 있습니다:

  • 세부 수준(LOD) 렌더링: 렌더링해야 하는 폴리곤 수를 줄이기 위해 카메라에서 멀리 떨어져 있는 오브젝트의 낮은 폴리곤 버전을 사용하는 것입니다.
  • 인스턴싱: 한 번의 그리기 호출을 사용하여 위치와 방향이 다른 동일한 오브젝트의 여러 복사본을 렌더링하는 것입니다.
  • 일괄 렌더링: 드로 콜 횟수를 줄이기 위해 비슷한 속성(예: 머티리얼 또는 셰이더)을 가진 오브젝트를 그룹화하여 함께 렌더링하는 것입니다.
  • Z 버퍼링: 오버드로를 최소화하기 위해 뎁스 버퍼를 사용하여 그려야 할 픽셀과 버려야 할 픽셀을 결정하는 것입니다.

 

전반적으로 오클루전 컬링은 컴퓨터 그래픽 및 비디오 게임 개발에서 렌더링 성능을 개선하는 데 중요한 기술입니다. 보이지 않는 오브젝트의 렌더링을 피함으로써 그래픽 카드의 작업 부하를 크게 줄이고 프레임 속도를 개선하여 사용자에게 더 부드럽고 몰입감 있는 경험을 제공할 수 있습니다.

 

 

 

반응형