본문 바로가기
공부/Graphics

[Graphics] 절두체 컬링(Frustum Culling)

by MY블로그 2023. 8. 23.

Frustum Culling ?

절두체(프러스텀)컬링은 컴퓨터 그래픽스에서 불필요한 렌더링 작업을 줄이기 위한 최적화 기법 입니다.

카메라의 시야 영역을 나타내는 프러스텀과 객체의 경계를 비교하여 프러스텀의 내부에 있지 않는 객체들을 렌더에서 제외하여 렌더링 작업을 줄이는 목적으로 사용됩니다.

쉽게 이해하기위해서 아래의 이미지를 참고하도록 합니다.

https://www.gamedev.net/tutorials/programming/general-and-gameplay-programming/frustum-culling-r4613/

프러스텀은 카메라의 시야를 나타내는 피라미드 형태의 공간 입니다. (위이미지의 푸른색 범위)

프러스텀 컬링은 푸른색 범위내에 포함되지 않는 객체를 렌더링 대상에서 제외함으로써 성능의 향상(최적화)을 기대할 수 있습니다.

 

프러스텀 컬링은 다음처럼 작동합니다.

1. 카메라의 프러스텀 계산

카메라의 시야 영역을 나타내는 프러스텀(영역)을 계산합니다.

프러스텀은 주로 원근 투영 행렬을 사용하여 계산하는 것이 일반적 입니다.

2. 객체의 경계와 프러스텀의 비교

각각의 객체의 경계 박스나 형태(ex.콜라이더)를 프러스텀과비교하여 해당 객체가 프러스텀 내에 있는지(충돌하였는지)의 여부를 판단합니다.

주로 조건을 충족할경우 true, 아닐경우 false 를 반환하는 bool 함수를 사용합니다.

3. 렌더링 결정

위의 조건을 충족할 경우 렌더링 대상으로 포함시켜 주며 그렇지않을 경우 렌더링 대상에서 제외합니다.

댓글