Лучевая тригонометрия в Opengl - PullRequest
1 голос
/ 26 мая 2011

Я довольно новичок в этом, и я слышал, что мне нужно получить свою матрицу обратной проекции и так далее, чтобы создать луч из 2D-точки в 3D-точку мира, однако, поскольку я использую OpenglES, и нет столько методов, сколько было бы регулярно, чтобы помочь мне с этим. (И я просто не знаю, как это сделать), я использую тригономерную формулу для этого insted.

Каждый раз, когда я повторяю один шаг вниз по отрицательной оси Z, я умножаю позицию Y на экране (от -1 до 1) на

(- z / (детская кроватка (myAngle / 2))

И позиция X аналогично, но с коэффициентом, равным соотношению сторон.
myAngle - угол перспективы усеченного конуса.

Это работает очень хорошо для меня, и я получаю очень точные значения, поэтому я удивляюсь: почему следует Я использую обратную матрицу проекции и умножаю ее на некоторые вещи вместо использовать это?

1 Ответ

1 голос
/ 26 мая 2011

В большинстве случаев у вас есть матрица для камеры OpenGl.Использовать обратную матрицу просто, если у вас уже есть под рукой матрица камеры.Это также (ну очень немного на скорости компьютера), чтобы сделать умножение матрицы.И в тех случаях, когда вы выполняете баджиллион этих вычислений на кадр, это может иметь значение.

Вот хорошая информация о начале работы с классом камеры, если вы заинтересованы: Класс камеры

И некоторые матричные ресурсы

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...