2013-11-22 2 views
0

응용 프로그램을 삽입하는 특정 화면 보호기에 대한 오버레이를 구현하려고합니다. 이 화면 보호기는 3D 개체와 동적 카메라를 사용합니다.3 차원 좌표가 절두체 안쪽에 있는지 확인하십시오.

나는 카메라 위치와 방향, 그리고 3d 객체 위치와 fov 값을 가지고 있으며 객체에 아이콘을 추가하는 오디오 기반 오버레이를 만들고 싶습니다.

2d 오버레이가 있고 오브젝트를 성공적으로 반복 할 수 있지만 필자가 가지고있는 데이터로 절두체를 계산하는 방법을 알 수는 없습니다.

기본적으로 카메라 방향에서 절두체를 만들 수있는 방법은 무엇입니까? 절두체를 만드는 데 필요한 행렬을 스크린하는 세계입니까? w2s 행렬이 없으므로 문제를 해결하는 것이 불가능합니까?

답변

0

http://web.archive.org/web/20120531231005/http://crazyjoke.free.fr/doc/3D/plane%20extraction.pdf에는 훌륭한 자료가 있으며 필요한 모든 것을 설명하고보기 및 모델 행렬을 사용하여 뷰 frustum을 추출하는 방법을 설명합니다.

은 (W2S) 매트릭스는 다음의 변형 활용하여 즉석에서 그것을 계산할 수 화면 세계에 관해서

:

ScreenPosition = (ProjectionMatrix* (ViewMatrix * WorldPosition))

Thast 방법은 당신이 즉석에서 그것을 계산할 수를 필요에 따라 .

frustum 컬링을 목표로 한 Lighthouse의 절두체 튜토리얼이 있지만 구현을 아주 잘 설명하고 있습니다.

+0

감사하지만이 논문은 w2s 행렬과 관련된 관계 및 계산법을 설명하는 것으로 보입니다. 장면의 w2s 행렬없이 카메라 방향/위치에서 절정을 만드는 것이 가능하다면 찾을 수없는 것입니다. –

+0

스크린 공간과 월드 공간 사이를 변환해야하므로 카메라 위치와 방향에 기초한 절두체를 기반으로 화면 상에 있어야 할 것과하지 말아야 할 것을 확인할 수 있도록 스크린 매트릭스에 항상 세계가 필요하다고 생각하십시오. (또는 그 반대로) 실제로 볼 수있는 것을 찾으십시오. 당신이 필요할 때 w2s 매트릭스를 즉석에서 계산할 수 있습니다. – GMasucci

관련 문제