(gluLookAt中“向上”向量背后的直觉很简单:看任何东西。现在将头倾斜90度。您的位置没有改变,您所看的方向没有改变,但是您的图像视网膜显然具有。有什么区别?头顶指向的位置。这就是向上的方向。)
但是要回答您的问题:不应将gluLookAt调用串联在一起。换句话说,如果您不确定确切的工作方式,则可以使用gluLookAt的唯一模式如下:
glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(...);# do not touch the modelview matrix anymore!
从您的代码看来,您正在执行以下 *** 作:
glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(...);# some stuff..gluLookAt(...);
这将产生奇怪的结果,因为gluLookAt将当前矩阵乘以它计算的视图矩阵。如果要串联转换,最好弄清楚如何使glTranslate,glScale和glRotatef为您工作。更好的是,您应该了解坐标转换的工作原理并坚持使用glMultMatrix。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)