Как я могу преобразовать трехмерные пространственные координаты в двухмерные пространственные координаты? - PullRequest
10 голосов
/ 26 мая 2011

Я использую Lua API. Я пытаюсь преобразовать трехмерные пространственные координаты в двухмерные пространственные координаты. Я спросил Google, но я не могу найти ничего, кроме фрагментов с помощью функции OpenGL. Мне не нужен исходный код или что-нибудь просто, как это сделать? Я могу получить перспективу камеры, исходную позицию для трансформации, размер окна и соотношение сторон, если это поможет? Заранее спасибо за любые предложения:)

1 Ответ

13 голосов
/ 26 мая 2011

Если вы говорите о преобразовании координат мирового пространства (x, y, z) в координаты экранного пространства (u, v), то основной подход:

u = x / z;
v = y / z;

Если камера не в исходной точке, преобразуйте (x, y, z) по матрице вида перед матрицей проекции. Вы также можете настроить перспективу камеры, соотношение сторон и т. Д., В этом случае я буду ссылаться на эту статью в Википедии .

Приношу свои извинения, если вы ищете что-то конкретное для Lua API, с которым я не знаком.

...