对于modelviewMatrix,我了解如何形成翻译和缩放矩阵。但我无法理解如何使用GLKMatrix4MakeLookAt
形成viewMatrix。任何人都可以解释它是如何工作的以及如何给参数赋值(眼睛中心向上X Y Z)。
GLK_INLINE GLKMatrix4 GLKMatrix4MakeLookAt(float eyeX, float eyeY, float eyeZ,
float centerX, float centerY, float centerZ,
float upX, float upY, float upZ)
答案 0 :(得分:4)
GLKMatrix4MakeLookAt
创建一个查看矩阵(与gluLookAt
的方式相同,以防您查看其他OpenGL代码)。如参数所示,它考虑观察者眼睛的位置,他们正在观察的空间点(例如,物体上的点),以及向上向量,其指定哪个方向是“向上”(例如,指向天空)。生成的观察矩阵是旋转矩阵(由一组正交基[基矢]组成)和平移的组合。
逻辑上,矩阵基本上只需几步构建:
这三个步骤产生一个旋转矩阵,将世界坐标系旋转到眼睛坐标(眼睛位于原点的坐标系,视线在-z轴下方。最后观察矩阵是通过将平移乘以负眼位置来计算的,该位置将“世界坐标定位眼”移动到眼坐标的原点。
以下是显示GLKMatrix4MakeLookAt
代码的相关问题,这是一个关于眼睛坐标和相关坐标系的详细问题:(What exactly are eye space coordinates?)。