2012-11-03 2 views
2

간단한 게임 엔진을 만들려고하고 있지만 2D 마우스 좌표를 내 세계의 3D 좌표에 매핑하려고 할 때 멈추었습니다. 기본 게임은 RTS 게임 엔진이 될 때 (희망에 따라) 잘 작동하는 비행기를 가지고 있습니다.2D에서 3D지도 OpenGL

내 문제는 내가 정말로 유용한 것을 생각해 내지 못한다는 것입니다. 비행기는 0, -100, -300 지점에 있으며 크기는 약 1000x1000입니다. 내 카메라가 0,0,0에 있고 장면이 60 ° 회전하여 "새 눈"캠의 느낌을줍니다.

카메라의 각도와 각도를 알고 거리를 계산하면 삼각 함수 방정식에 대해 생각해 보았습니다. 그러나 이는 정확한 좌표계를 제공 할 것입니다. 그러나 이는 단순한 아이디어 일뿐입니다.

누군가 제게 조언을 해줄 수 있습니까?

+0

평면이 (0, -100, -300) 지점에있는 것은 무엇을 의미합니까? 포함 된 점과 법선 벡터로 지정하십시오. 그러나 삼각법을 사용하는 것이 옳습니다. –

+0

문제는 건물을 옮기고 싶기 때문에 좌표가 필요한 이유입니다. – SPL

+0

그래서 기본적으로 마우스 좌표가 게임 세계의 "지상"좌표로 변환되어야합니까? 제목은 오해의 소지가 있습니다. 2D에서 2D로 변환합니다. – SoonDead

답변

0

간단한 광선 캐스팅으로 할 수 있습니다.

먼저 gluUnProject을 사용하면 마우스 포인터의 2D 창 좌표에 해당하는 m의 3D 세계 좌표를 얻을 수 있습니다.

카메라 위치가 e = (0, 0, 0) 인 경우 마우스 광선 방향 r = m - e을 계산할 수 있습니다.

이제 평면에 p 점이 있고 비행기 번호가 n 인 경우 intersection of the mouse ray with the plane을 계산할 수 있습니다.

+0

고마워요. 더 새로운 기능을 사용해 주시겠습니까? 어쩌면 뽑아 버리 겠어! – SPL

+0

나는 "더 새로운"기능을 모른다. 더 높은 수준의 유틸리티 기능을 찾으려면 [OGRE] (http://en.wikipedia.org/wiki/OGRE)와 같은 다른 (오픈 소스) 장면 그래프, 렌더링 엔진 또는 게임 엔진을 살펴보십시오.). – mrucci

관련 문제