【发布时间】:2014-05-09 23:53:19
【问题描述】:
这是我用我的程序绘制的图像:
[IMG]http://i62.tinypic.com/j163j8.png[/IMG]
它应该是 3D 的。当我尝试使用 gluLookAt 进行检查时:
GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
GL.glLoadIdentity();
GL.glMatrixMode(GL.GL_MODELVIEW);
glu.gluLookAt(
5.0, 2.0, 2.0,
0.0, 0.0, 0.0,
0.0, 0.0, 0.0);
figura(drawable); //Drawing figure
GL.glFlush();
它只显示白屏,或者一秒钟的混乱数字,然后它就熄灭了。如果我不理解好的前 3 个坐标显示观点,第二个 3 显示查看目的地,第三个 3 显示旋转轴。但是这个功能只会把一切搞砸。
感谢您的回答。
【问题讨论】:
-
第三个3是“向上”向量,试试
glu.gluLookAt(5.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); -
@AnthonyVallée-Dubois 如果眼睛与目标在同一个 XZ 平面上,那将是一个有效的向上向量,即。 {5, 0, 2} 而不是 {5, 2, 2}。
-
@schmop 也许我错了,因为已经有一段时间了,但我的理解是向上向量由
gluLookAt()重新计算为垂直于方向向量,例如side = cross(dir, up); up = cross(side, dir);。见:opengl.org/wiki/GluLookAt_code -
@schmop 在任何情况下自己计算都没有错,你的答案是正确的。
-
@AnthonyVallée-Dubois 哦。这非常方便!我自己 10 年没用过 gluLookAt...
标签: glulookat