OpenGL的。 gluLookAt功能不起作用

时间:2014-05-09 23:53:19

标签: glulookat

这是我用我的程序绘制的图像:

[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();

它只显示白色屏幕,或者显示一秒钟的乱图,然后它会熄灭。如果我看不好前三个coords显示观点,第二个3显示观察目的地,第三个3显示旋转轴。但是这个功能只能搞砸一切。

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

最后三个参数不完全是旋转,而是“向上”矢量。如果你不想要一个扭曲的视图,向上矢量应该垂直于你的方向向量,这里是{-5,-2,-2}。在所有垂直向量中,您选择的向量将在您调用它时定义旋转。

在您的示例中,最正确的向上垂直向量(例如,您将在第一人称游戏中使用的向量)在标准化后将为 { - 。323,.937,-.129} 。我首先通过找到“左”向量(绝对向上{0,1,0}和方向之间的交叉乘积)计算它,然后作为方向和“左”之间的叉积。