2012-05-03 2 views
0

3D로 객체를 표시하는 데 사용되는 응용 프로그램이 있습니다. 이제는 응용 프로그램을 개선하고 싶습니다. 내 aillage 영역을 두 번 클릭하면이 영역을 세분하기 위해이 영역에 체포되어있는 표면을 검색하고 싶습니다. 그것들을받을 수 있습니까? 감사.마우스로 선택한 3D 메쉬의 표면 감지

+0

OpenGL입니까, 아니면 lib를 사용하고 있습니까? – Rolle

+0

나는이 부분을 이해하고 있는지 모르겠다 "내 aillage의 영역을 클릭하십시오, 나는 그들을 체포 되려고합니다." – SigTerm

답변

0

뷰포트의 클릭을 월드 공간의 광선으로 변환하십시오.

광선이있는 장면을 쿼리하여 교차하는 물체를 찾습니다 (장면의 옥트리가있는 경우 축으로 정렬 된 경계 상자 검색을 기반으로 함).

삼각형을 감지해야하는 경우 장면 쿼리에서 찾은 개체의 모든 삼각형에 대해 광선을 테스트하십시오. 필요하다면 오브젝트 메쉬의 옥트리 트리를 만들어이 단계를 최적화 할 수 있습니다. 광선 원점에 가장 가까운 것이 히트 포인트입니다.

각 오브젝트에 대해 광선을 자체 로컬 좌표계로 변환 할 수 있습니다.

관련 문제