2011-12-08 6 views
2

모델을로드하고 OpenGL에서 텍스처링 할 수있는 기본 .obj 메쉬 로더를 만들었습니다. 그러나, 내 질문에 무엇이 그들에게 경계 상자를 넣어 최고의 솔루션이 될 것입니다. 예를 들어 원이되는 모델을로드하는 경우 AABB를 주위에 배치하는 것은 끔찍한 해결책일까요?경계 상자 및 모델

제 아이디어는 오브젝트에 전역 AABB 상자가 있고, 모델에 더 완벽한 경계 상자 목록이있는 것입니다.

내 질문에,이 완성 된 경계 상자 목록을 만들려면 무엇을 사용해야합니까?

+0

이러한 모든 경계 볼륨의 목적은 무엇입니까? 축 정렬 경계 상자를 사용하는 것이 잘못된 이유는 무엇입니까? –

+0

모델에로드 할 때 객체 주위에 일반 AABB를 만들 수 있다고 생각했습니다. 그러나 더 나은 충돌 감지를 얻으려면 특정 부품 주위에 더 작은 경계 상자를 더 작게 만드십시오. 그래서 예를 들어, 만약 내가 구형의 모델에 하중을 가하면 AABB를 놓으면 충돌 탐지가 완벽하지 않을 것입니다. 마치 AABB가 일반 상자 인 것처럼 충돌이 해당 상자에서 발생하면 실제 충돌 상자의 개체를 확인합니다. –

+0

그렇다면 OpenGL과 어떤 관련이 있습니까? OpenGL은 충돌 감지를 수행하지 않습니다. –

답변

1

충돌 감지에 대한 "완벽한 경계 상자"에 대해 걱정하지 마십시오. 그것이 그들의 요점이 아닙니다. 당신이 원하는 것은 교차 요소를 쉽게 테스트하고 초등 교차 테스트를 수행 할 필요가없는 큰 다각형/요소 세트를 거부 할 수있는 경계 요소 및 가능하면 그것의 계층 구조입니다.

나는 당신의 AABB (또는 그것들의 단순성을 위해 경계 영역까지)부터 시작한다고 말할 것이다. 그리고 위에서 아래로 또는 아래에서 위로 (적절한 적절한 휴리스틱을 사용하여) 그 중에서 하나의 나무를 만듭니다. 상위 노드에는 전체 모델에 맞는 대규모 AABB가 있습니다. 그리고 각 브랜치 (AABB 포함)에는 메쉬의 하위 집합이 포함됩니다. 최종 트리의 균형을 유지하기를 원합니다.

AABB가 문제를 일으키는 경우 (성능이 충분하지 않을 수 있음), 다른 경계 요소를 선택할 수 있습니다. 아마도 OBBs 또는 k-DOPs. 예를 들어, 의복 시뮬레이션 코드에서 k-DOP는 적합하다고 나타났습니다.

어쨌든 "실시간 충돌 감지"라는 책을 찾아 볼 수 있습니다. 이 주제에 깊이 들어가며, IMHO는 이와 같은 주제에 관심이 있다면 훌륭한 자료입니다. 그러나 처음에는 단순하게 유지하십시오. 문제를 해결하고 최적화에 대해 걱정하십시오.