【发布时间】:2012-05-17 10:35:36
【问题描述】:
我正在 OpenGL ES 中尝试 LookAt,
gluLookAt(512, 384, 2000,
512, 384, 0,
0.0f, 1.0f, 0.0f);
第二行是目标的位置...所以我想知道,如果我将z 从0 更改为1000 或-1000,不应该看到什么不同吗?结果都是一样的,这是为什么呢?
【问题讨论】:
我正在 OpenGL ES 中尝试 LookAt,
gluLookAt(512, 384, 2000,
512, 384, 0,
0.0f, 1.0f, 0.0f);
第二行是目标的位置...所以我想知道,如果我将z 从0 更改为1000 或-1000,不应该看到什么不同吗?结果都是一样的,这是为什么呢?
【问题讨论】:
根据 gluLookAt 的 OpenGL 规范,它将输入声明为:
gluLookAt(GLdouble eyeX , GLdouble eyeY , GLdouble eyeZ ,
GLdouble centerX , GLdouble centerY , GLdouble centerZ ,
GLdouble upX , GLdouble upY , GLdouble upZ );
您当前的值仅将center 向量沿z 平面移动,因此您实际上是从eye 向量向下看。根据您要渲染的内容,您可能根本看不到任何变化(立方体从顶部或底部看起来都一样)。
尝试更改您的 x 和 y 值,而不是将相机移动到不垂直于您要查看的矢量的位置。
【讨论】:
由于相机和目标的 x 和 y 坐标相同,因此更改 z 坐标根本不会影响视图所在的方向,为此,只有方向才是重要的。
【讨论】: