2009-10-14 3 views
2

Скажем, у меня есть положение 3D-объекта, а также местоположение камеры и матрица вращения.Преобразование 3D-позиций в 2D?

Как бы я мог преобразовать это в 2-мерное положение на экране? Чтобы я мог нарисовать 3D-объект?

Видите ли, я использую движок, который позволяет использовать только 3D Env + 2D Gui, поэтому я не могу выполнить свой обычный подход к рисованию в 3D, но масштабирован.

Мне нужны положения X/Y объектов на 2D-плоскости.

В lua, между прочим, но это не имеет особого значения, поскольку я мог бы при необходимости преобразовать математику в lua.

Благодарности выглядывает, SilentC

+0

Duplicate: http://stackoverflow.com/questions/519106/projecting-a-3d-point-to-a-2d-screen-coordinate –

+0

это будет Unity3D Gameengine, если это возможно? – BerggreenDK

ответ

4

Математически это называется Projection ...

погуглить для этого находит интересные алгоритмы и реализации ...

2

Кроме того, необходимо в поле зрения вашего камера.

Предположим, что север находится на вашей 2-й проекции. С вашего прицела (линия вдоль оптической оси) вы будете перемещаться с компонентом север/юг и компонентом восток-запад. Эти углы относятся к местоположению пикселя в вашей плоскости:

Х/тангенс (А) = х/тангенс (а)

, где Х и х измеряется от центральной точки, А представляет собой поле зрения (или половина его) в радианах, а а - отклонение в направлении х в радианах.

То же самое для Y-направления.

Для вращения вокруг с севера вам необходимо повернуть точки в своем самолете.

Что-то вроде этого, во всяком случае. ;)

+0

Можно ли вычислить FOV, если бы у меня был фокус, а также положение кулачка? – 2009-10-14 19:59:10

+0

Вы можете рассчитать FOV в контексте определенного размера пленки, но не по себе. – John

Смежные вопросы