如果是z = 0或z = 1000或-1000,LookAt目标位置无关紧要?

时间:2012-05-17 10:35:37

标签: opengl-es glulookat

我在OpenGL ES中尝试LookAt,

    gluLookAt(512, 384, 2000,
              512, 384, 0,
              0.0f, 1.0f, 0.0f);

第二行是Target的位置......所以我想知道,如果我将z0更改为1000-1000,那么不应该是什么见不同?事实证明它们都是一样的,为什么会这样?

2 个答案:

答案 0 :(得分:3)

从gluLookAt的OpenGL规范中,它将输入声明为:

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

您当前的值只会沿着center平面移动z向量,因此您实际上是从eye向量向下看。根据您正在渲染的内容,您可能根本看不到任何更改(从顶部或底部看,立方体看起来都相同)。

尝试更改xy值,而不是将相机移动到与您尝试查看的矢量不垂直的位置。

答案 1 :(得分:1)

由于摄像机和目标的x和y坐标相同,因此更改z坐标不会影响视图的方向,并且出于此目的,它只是重要的方向。 / p>