수학/이득우의 게임 수학 - 실습 예제

원근 투영 행렬을 이용한 절두체 컬링의 구현

monstro 2026. 7. 8. 16:29
728x90
반응형

- 개요

원근 투영 행렬을 활용한 절두체 컬링의 수식

 

원근 투영 행렬로부터 평면의 방정식을 제작하고 이를 활용하여 절두체 컬링을 구현한다

위의 수식에서 0보다 경우 해당 점은 절두체의 외부에 존재하므로 표현에서 제외한다

 

- 예제

Render3D 함수의 로직 일부

 

프로젝트에서 렌더링을 처리하는 Render3D 함수를 위와 같이 구성한다

카메라에서 GetPerspectiveMatrix 함수를 호출하여 원근 투영 행렬을 가져오고 pMatrix 로컬 변수에 저장한다

pMatrix 로컬 변수에서 Transpose 함수를 호출하여 전치하여 열벡터를 가져오고 ptMatrix 로컬 변수에 저장한다

각각의 로컬 변수를 그립 - 하트만 알고리즘에 사용하여 절두체를 구성하는 6개의 평면을 생성한다

순서대로 위쪽, 아래쪽, 오른쪽, 왼쪽, 근평면, 원평면을 의미한다

 

- 최종 실행 결과

 

위와 같이 절두체 컬링이 동작하는 것은 확인할 수 있지만,

카메라를 움직이면 화면 가장자리에 있는 게임 오브젝트가 갑자기 사라지거튀어나오는 현상이 발생한다

이는 게임 오브젝트의 메시가 차지하는 공간 영역을 무시하고 위치만으로 절두체 컬링을 수행하기 때문이다

728x90
반응형