我正在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 );
当前值仅沿z
平面移动center
向量,因此您实际上是从eye
向量向下看。根据要渲染的内容,您可能根本看不到任何更改(立方体从顶部或底部看起来都相同)。
尝试更改x
值并y
值,将相机移动到不垂直于您尝试查看的矢量的位置。
由于相机和目标的 x 和 y 坐标相同,因此更改 z 坐标根本不会影响视图所在的方向,为此,只有方向才是重要的。