【问题标题】:The LookAt target location doesn't matter if it is z = 0 or z = 1000 or -1000?LookAt 目标位置是否与 z = 0 或 z = 1000 或 -1000 无关?
【发布时间】:2012-05-17 10:35:36
【问题描述】:

我正在 OpenGL ES 中尝试 LookAt,

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

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

【问题讨论】:

    标签: opengl-es glulookat


    【解决方案1】:

    根据 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 值,而不是将相机移动到不垂直于您要查看的矢量的位置。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 啊哈,我以为事情可能会变小或变大......但这只是一个方向的事情哈......
      • 唯一会影响你的东西的位置是你正在看的东西的位置,以及相机的位置......你注视的东西的位置不会影响事物看起来有多大
      猜你喜欢
      • 1970-01-01
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-22
      • 1970-01-01
      • 1970-01-01
      • 2015-02-18
      相关资源
      最近更新 更多