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

구 바운딩 볼륨을 이용한 절두체 컬링

monstro 2026. 7. 22. 16:23
728x90
반응형

- 개요

 

구 바운딩 볼륨을 사용하여 절두체 영역구 영역을 비교하는 CheckBound 함수를 사용하여 절두체 컬링을 진행한다

절두체 영역과 겹치는 구 영역의 게임 오브젝트는 붉은색으로 표시하고,

절두체 영역 내부에 포함된 구 영역의 게임 오브젝트는 일반적으로 표시한다

 

- 예제

Render3D 함수의 로직 일부

 

렌더링을 진행하는 Render3D 함수의 로직을 위와 같이 구성한다

intersectedObjects 로컬 변수를 사용하여 절두체 영역과 구 영역이 겹치는 경우를 파악한다

finalColor 로컬 변수를 사용하여 게임 오브젝트의 색상을 지정한다

이후 메시의 구 바운딩 볼륨을 가져와 sphereBound 로컬 변수에 저장하고

sphereBound의 반지름트랜스폼의 세 가지 값 중에서 가장 큰 값으로 반영한다

또, sphereBound의 중점을 로컬 공간에서 뷰 공간으로 변환한다

이후 CheckBound 함수를 호출하여 절두체 영역구 영역을 비교한다

절두체 영역과 구 영역이 겹치면 intersectedObjects의 값을 1 증가시키고 해당 오브젝트의 색상을 붉은색으로 설정한다

 

- 최종 실행 결과

728x90
반응형