如何用OpenGL解释U-V-N摄像机坐标系?

时间:2014-09-19 12:07:21

标签: opengl matrix

在推断出函数指定的模型视图矩阵时,我对u-v-n摄像机坐标系感到困惑:

void gluLookAt(GLdouble eyeX,  GLdouble eyeY,  GLdouble eyeZ,  GLdouble centerX,  GLdouble centerY,  GLdouble centerZ,  GLdouble upX,  GLdouble upY,  GLdouble upZ);

如果我们调用这个函数,那么我们得到一个u-v-n坐标系,其中 n =中心眼。 它看起来像这样:

UVN Camera

这个u-v-n是左手柄坐标系。

部分让我困惑:

这个u-v-n坐标可以说是许多书中所说的相机坐标吗?

我经常从一些教程或教科书中读到,说摄像机坐标系是右手,为什么我们构造一个左手uvn坐标来推导出由gluLookAt指定的模型 - 视图矩阵,只是为了方便?

更新

在阅读完答案和调查后,我就这样理解了:

1)u-v-n坐标系是左手,相机坐标是右手,这就是事实。

2)在计算矩阵时,OpenGL会将n轴翻转为-n,从而使其仍然是右手系统,详见gluLookAt APIGluLookAt code implementation

1 个答案:

答案 0 :(得分:2)

从相机坐标转换为uvn为目标定义点 T ,为摄像机定义 C ,向上向上向上转换方向。请按照以下步骤操作:

CS

norm()函数将向量规范化为magnitude()=1