Панорамирование по нормальному вектору и плоскости - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть камера и направление, на которое она смотрит.Поэтому я могу создать плоскость из этого вектора направления, если я возьму ее в качестве вектора нормалей.Итак, теперь я хочу переместить свою камеру, которая должна быть в этой плоскости вдоль плоскости.Все в 3D, но я не мог придумать, как это сделать.Как я могу реализовать навигационный метод панорамирования - чтобы двигаться в этой конкретной плоскости?enter image description here

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Определение: Вектор N, который ортогонален каждому вектору на плоскости, называется нормальным вектором на плоскости.enter image description here

Уравнение плоскости, содержащей точку (x0, y0, z0) с вектором нормали N = (A, B, C), равно A(x − x0) + B(y − y0) + C(z − z0) = 0.

Примечание:Уравнение любой плоскости можно выразить как Ax + By + Cz = D.

Это называется стандартной формой уравнения плоскости.Из уравнения вы можете получить любую другую точку на плоскости.

Пример: Плоскость, проходящая через точку P = (1, 6, 4) и вектор нормали, R = (2, - 3, - 1).Тогда eqn,

   2(x-1) - 3(y-6) - (z-4) = 0
=> 2x - 3y - z = -20
0 голосов
/ 28 ноября 2018

Для перемещения камеры влево и вправо необходимо знать не только направление взгляда, но и направление вверх камеры.Затем вы можете рассчитать перекрестное произведение lookAt и upAxis, и это даст вам направление вправо, а отрицательный вектор даст вам направление влево.

enter image description here

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