我在我的 JOGL 项目中添加了一个光源,当物体静止时它似乎工作得很好,当我移动相机时,它随着旋转而逐渐变暗,这是我所期望的,但一旦它旋转 90 度,屏幕就会消失完全黑,有谁知道这是为什么?我需要另一侧的另一个光源吗?我希望它会像太阳一样,即照亮整个场景,但当相机位于物体的另一侧时会稍微暗一些。
灯光
float light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f };
float light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f };
float light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f };
float light_position[] = { 1.0f, 1.0f, 1.0f, 0.0f };
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_AMBIENT, light_ambient, 0);
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_DIFFUSE, light_diffuse, 0);
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_SPECULAR, light_specular, 0);
gl.glLightfv(GL2.GL_LIGHT0, GL2.GL_POSITION, light_position, 0);
gl.glEnable(GL2.GL_LIGHTING);
gl.glEnable(GL2.GL_LIGHT0);
gl.glDepthFunc(GL.GL_LESS);
gl.glEnable(GL.GL_DEPTH_TEST);
其次,当相机旋转时,一些形状似乎变形并且看起来像完全不同的形状,即立方体变成枕形,侧面被拉伸了令人难以置信的量,这让我的整个物体看起来有点变形。有没有简单的方法来改变这个?我试过弄乱,gluPerspective
这似乎也没有改变我想要的。有没有办法解决?