728x90
반응형
- 개요

원근 투영 행렬로부터 평면의 방정식을 제작하고 이를 활용하여 절두체 컬링을 구현한다
위의 수식에서 0보다 큰 경우 해당 점은 절두체의 외부에 존재하므로 표현에서 제외한다
- 예제

프로젝트에서 렌더링을 처리하는 Render3D 함수를 위와 같이 구성한다
카메라에서 GetPerspectiveMatrix 함수를 호출하여 원근 투영 행렬을 가져오고 pMatrix 로컬 변수에 저장한다
pMatrix 로컬 변수에서 Transpose 함수를 호출하여 전치하여 열벡터를 가져오고 ptMatrix 로컬 변수에 저장한다
각각의 로컬 변수를 그립 - 하트만 알고리즘에 사용하여 절두체를 구성하는 6개의 평면을 생성한다
순서대로 위쪽, 아래쪽, 오른쪽, 왼쪽, 근평면, 원평면을 의미한다
- 최종 실행 결과

위와 같이 절두체 컬링이 동작하는 것은 확인할 수 있지만,
카메라를 움직이면 화면 가장자리에 있는 게임 오브젝트가 갑자기 사라지거나 튀어나오는 현상이 발생한다
이는 게임 오브젝트의 메시가 차지하는 공간 영역을 무시하고 위치만으로 절두체 컬링을 수행하기 때문이다
728x90
반응형
'수학 > 이득우의 게임 수학 - 실습 예제' 카테고리의 다른 글
| 로컬 좌표를 사용한 구 바운딩 볼륨 생성 (0) | 2026.07.22 |
|---|---|
| 구 바운딩 볼륨을 이용한 절두체 컬링 (0) | 2026.07.22 |
| 절두체 컬링의 구현 (0) | 2026.07.01 |
| 캐릭터 얼굴에서 발생한 왜곡 보정 (0) | 2026.06.10 |
| 깊이 값을 적용하여 화면에 원근감 부여하기 (0) | 2026.06.03 |