내가하려고하는 구체적인 이름은 "unproject"= 화면 점을 3D 세계에 매핑하는 것입니다.화면상의 점을 3D로 매핑 실제 위치
그래서 나는 3D는 2D 화면 좌표 매핑에 대한 간단한 방정식이이 사이트를 발견 :
http://www.petesqbsite.com/sections/tutorials/tuts/perspective.html
나는 광범위하게 이러한 방정식을 사용했지만, 지금은 상호 작용 할 수 있도록하려면 화면 위로 마우스를 가져 가면 3D 세계.
2D 좌표를 3D 객체에 연결하는 대신 화면상의 점을 실제와 매핑하는 방정식을 찾고 싶습니다. 나는 답을 찾기 위해 다음의 2 가지 방정식을 리버스 엔지니어링하려고 시도했다 :
screenPoint.x = (int) ((eye.z * (realPoint.x-eye.x))/(eye.z + realPoint.z) + eye.x);
screenPoint.y = 480 - (int) ((eye.z * (realPoint.y-eye.y))/(eye.z + realPoint.z) + eye.y);
그러나 나는 수학적으로 불가능했다.
도움이 될 것입니다.
감사합니다.
일반적인 경우 (투영이 반전되지 않음) 불가능합니다. 그러나 간단한 경우 광선 추적 (ray tracing)을 사용하여 주어진 픽셀에 어떤 물체가 투영되는지 확인할 수 있습니다. 또는 2D 이미지를 생성 할 때 미리 정보를 생성 할 수 있습니다. –
그래서 광선 추적을하면 다음과 같이 나타납니다. - 카메라 좌표 - 화면 평면의 등식 - 3D 평면에서 일부 평면 (xz) 평면의 등식 화면에서 평면까지의 점을 3D 세계? 나는 xz 평면 위에 마우스를 가져 가면 점이 xz 평면에 표시되도록하려고합니다. – user1170679
내 질문에 대한 답변을 찾았습니다. http://stackoverflow.com/questions/9971701/unprojecting-2d-screen-coordinates-to-3d-coordinates – user1170679