2012-05-14 1 views
2

처음으로 스택 교환기에서 질문합니다.이 위치가 적절합니다.보기/프로젝션 매트릭스에 직접 액세스하지 않고 원근감을 위해 2D 이미지 평면 계산에서 3D 좌표 계산

3 차원 수학의 관점에서 볼 때 가장 정확하지 않은 상황에서 충분히 근접한 근사 알고리즘을 개발할 수 없습니다.

필자는 카메라를 비롯하여 모든 객체의 위치와 회전에 액세스 할 수있는 3D 환경을 갖추고 있으며 점과 충돌 지점 사이의 거리를 얻기 위해 임의의 두 점에서 추적 선을 실행합니다. 내 카메라의 시야도 확보했습니다. 그러나 전 세계/전망/투영 행렬에 액세스 할 수있는 방법은 없습니다.

나는 기본적으로 카메라에서 3d 환경의 스크린 샷 모음 인 2D 이미지 모음을 가지고 있으며, 각 컬렉션은 동일한 지점과 각도에서 나온 것이며 평균 설정은 평균 약 60도입니다 수평선에서 아래로 각도.

2 차원 이미지의 모서리를 나타내는 3 차원 세계에 배치 할 수있는 "등록 포인트 엔티티"를 사용하는 시점까지 도달 할 수 있었고 2 차원 이미지에서 점이 선택되면 0-1 범위의 좌표로 읽어 들여 등록 포인트의 3d 위치 사이에 보간됩니다. 이것은 잘 작동하는 것처럼 보이지만, 이미지가 완벽한 하향식 각도 일 때만 가능합니다. 카메라가 기울어지고 또 다른 차원의 원근감이 도입되면이 관점에 대한 보상이 없으므로 결과가 훨씬 부정확 해집니다.

스카이 스크래퍼의 창과 같이 좌표계의 높이를 계산할 필요는 없지만 적어도 이미지면의 밑면에있는 좌표는 말하며, 지정된 이미지 포인트에서 내 이미지 적어도 그 지점은 라인이 땅과 교차 할 지점이 필요합니다.

내가 발견 한 모든 자료는 world/view/projection 행렬을 사용하여 요점을 명확히하지 못한다고 말합니다.이 행렬에 액세스 할 수 없다는 것을 제외하고는 그 자체만으로도 간단합니다. 스크린 샷 시간 및 기타 알고리즘은 복잡한 수학을 사용합니다. 아직 이해하지 못합니다.

이 목표의 한 가지 목표는 이미지에서 사용자가 클릭하는 3D 환경에서 마커를 배치 할 수 있지만 사용자의 시각에서 간단한 비 프로젝션을 실행할 수는 없습니다.

감사합니다. 감사드립니다.

편집 : 그렇게 내 구현으로 인해 내 상황의 한계에 약간 이상한 동안 HERP의 DERP은,이 솔루션은 기본적으로 단순히 뷰/투영 행렬을 재 계산에 대해 ananthonline의 대답에 내려 삶은.

+0

이 3D 환경에서 배치 할 수있는 인위적인/참조 객체의 "스크린 샷"을 가져갈 수 있습니까? 그렇다면 뷰/프로젝션 행렬을 리버스 엔지니어링 할 수 있습니다. – Ani

+0

3D 환경이 아닌 이미지를 표시 할 수는 없지만 위치/회전/줄 추적을 제공 할 수있는 3D 환경에 렌더링되지 않는 것들을 소개 할 수 있습니다. 파이프 라인 액세스를 직접 렌더링 할 필요가없는 모든 것. – Allar

+0

더 많은 질문 : 카메라의 위치, 회전 및 FOV 사이에 카메라의 뷰/투영 행렬을 계산할 수 없습니까? (http://www.songho.ca/opengl/gl_projectionmatrix.html) - 따라서 알려진 3D 점을 제거 할 수 있습니까? – Ani

답변

0

카메라의 위치, 회전 및 FOV 사이에서 카메라의 뷰/투영 행렬 (songho.ca/opengl/gl_projectionmatrix.html)을 계산할 수 없으므로 알려진 3D 점을 제거 할 수 있습니까?

+0

감사합니다. :) – Allar