视图矩阵示例说明:
glm::mat4 View = glm::lookAt(
glm::vec3(4,3,3), // Камера находится в мировых координатах (4,3,3)
glm::vec3(0,0,0), // И направлена в начало координат
glm::vec3(0,1,0) // "Голова" находится сверху
);
关于第三个参数的问题。向量不应该up
完全指向相机上方(相机上方)的点吗?如果我们的相机在坐标中(4,3,3)
,那么它up
应该是(4,4,3)
。或不?
您显然混淆了向量和有向段这两个术语。术语向量对应于具有相同长度和方向的整类有向线段,而不是任何特定线段。向量没有也不能有一个特定的位置,即 根据定义,它不受任何约束,也不能与任何特定点挂钩。相机的位置无关紧要。在您的情况下,我们谈论的是“向上”方向由 vector 给出的事实,
(0, 1, 0)
不多也不少。正如评论中已经写的那样,它
up
是相对于相机位置设置的。up = точка_над_камерой - позиция_камеры = (4,4,3) - (4,3,3) = (0,1,0)
.