저는 C++로 게임을 작성하고 각자 자신의 버텍스 버퍼를 가진 많은 별도의 메쉬로 구성된 레벨을 가지고 있습니다. 내 frustum 컬러를 만들고 레벨의 모든 메쉬의 바운스 구에 대해 테스트하기 위해 vmmlib (화려한 무료 gl compat. 벡터/매트릭스 라이브러리)를 사용하고 있습니다. 슬프게도 내 레벨은 최대 800 개의 메쉬로 구성 될 수 있으며 모든 프레임을 반복하면 각 프레임이 느려집니다. 모든 반복에서 모든 메시를 볼 필요가 없도록 코드를 최적화하는 가장 좋은 방법은 무엇입니까? 절두체 안의 경계 체적?Frustum 컬링 최적화
2
A
답변
4
예 경계 대상 개체가 갈 수있는 방법입니다. 예를 들어 봇과 같이 씬처럼 움직이는 메쉬의 경우 적절한 경계 볼륨을 선택하는 데주의를 기울여야합니다. 원통이 가장 좋으며 나머지는 더 잘 표현됩니다. 큐브 단위 (축 정렬 여부).
그런 다음 메쉬 데이터를 계층 적으로 나누기 위해 쿼트 트리 또는 팔 트리를 만듭니다.
실외 절두체 컬링에 아주 잘 작동합니다.
실내에서는 공간을 분할 할 벽이 많기 때문에 BSP가 가장 좋습니다. 여전히 10 개 이상의 다각형을 가진 메쉬를 볼륨에 바인딩해야합니다.
3
Binary space partitioning 또는 그 사촌 Quadtree.
3
포털이 일반적으로 BSP와 함께 또는 BSP와 함께 선호되는 요일을 추가하고 싶지만 원래 게시물을 편집하기에 충분한 평판이 없습니다.