Вычисление матрицы LookAt

Я нахожусь в процессе написания 3D-движка и натолкнулся на алгоритм LookAt, описанный в документации DirectX:

zaxis = normal(At - Eye)
xaxis = normal(cross(Up, zaxis))
yaxis = cross(zaxis, xaxis)

 xaxis.x           yaxis.x           zaxis.x          0
 xaxis.y           yaxis.y           zaxis.y          0
 xaxis.z           yaxis.z           zaxis.z          0
-dot(xaxis, eye)  -dot(yaxis, eye)  -dot(zaxis, eye)  l

Теперь я понимаю, как это работает на стороне поворота, но я не совсем понимаю, почему он помещает компонент перевода матрицы в эти точечные продукты. Рассматривая его немного, кажется, что он немного регулирует положение камеры на основе проекции новых базисных векторов на положение глаза / камеры.

Вопрос в том, зачем это нужно делать? Что это делает?

Ответы на вопрос(8)

Ваш ответ на вопрос