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



我正在OpenGL ES中尝试LookAt,

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

第二行是目标的位置...所以我想知道,如果我把z0改为1000-1000,看到的不应该有所不同吗? 结果都是一样的,这是为什么?

根据gluLookAt的OpenGL规范,它将输入声明为:

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

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

尝试更改x值并y值,将相机移动到不垂直于您尝试查看的矢量的位置。

由于相机和目标的 x 和 y 坐标相同,因此更改 z 坐标根本不会影响视图所在的方向,为此,只有方向才是重要的。

相关内容

  • 没有找到相关文章

最新更新