2012-04-04 3 views
2

Я знаю, что это общий вопрос, и в Интернете есть много ресурсов и несколько вопросов, касающихся этой области, но я не могу найти именно то, что мне нужно. Так, с извинениями заранее, здесь идет:Проецирование 3D-точек на двумерные точки

У меня есть 3D точку, которая должна быть преобразована в 2D точки

Я есть в наличии:
точка местоположения (Px, Py, Pz)
камеры место (Cx, Cy, Cz)
ориентации камеры (я могу контролировать это, но я не знаю, как представить его)

Я пытался следовать руководству википедии по этому вопросу - http://en.wikipedia.org/wiki/3D_projection#Perspective_projection

Мои вопросы:
Как я должен представлять ориентацию камеры?
Как рассчитать значения Ex, Ey, Ez из руководства по википедии, «положение зрителя относительно поверхности дисплея»
Есть ли что-нибудь еще, что я должен знать?

ответ

0

Старые учебники великолепны, в основном из-за дней до T & L и шейдеров, даже до рендеринга оборудования. Начните с понимания их, т. Е. /technical/math-and-physics/3d-matrix-math-demystified-r695">http://www.gamedev.net/page/resources//technical/math-and-physics/3d-matrix-math-demystified-r695. Затем перейдите к приложению для камеры: http://www.codeguru.com/cpp/misc/misc/graphics/article.php/c10123/Deriving-Projection-Matrices.htm

В принципе, вы переводите и затем вращаете всю «вселенную» вокруг камеры. Таким образом, у вас есть своя точка: вы определяете трансляции (движения) для камеры, затем матрицы поворота. Вы применяете их к любому «мировому контенту», то есть к своей точке. Затем вы можете «обмануть» и просто разделить значения x и y на z, чтобы проектировать на плоскость 2d, но вы должны действительно делать вычисления, которые правильно подходят для поля зрения.

+0

Эта первая ссылка, кажется, сломана, получение 404 –

+0

Это не сработает в теле ответа. http://www.gamedev.net/page/resources/_/technical/math-and-physics/3d-matrix-math-demystified-r695 –