Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JOGL-照明/摄像机_Java_Opengl_Jogl - Fatal编程技术网

Java JOGL-照明/摄像机

Java JOGL-照明/摄像机,java,opengl,jogl,Java,Opengl,Jogl,我在我的JOGL项目中添加了一个光源,当物体静止时,它似乎工作得很好,当我移动相机时,随着旋转它会逐渐变暗,这是我所期望的,但当它旋转90度时,屏幕就会完全变黑,有人知道这是为什么吗?我需要为另一侧安装另一个光源吗?我希望它能像太阳一样,照亮整个场景,但当相机位于物体的另一侧时,会稍微暗一些 照明 float light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f }; float light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f

我在我的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);


其次,当相机旋转时,一些形状似乎会变形,看起来像完全不同的形状,即立方体变成枕状,侧面被拉伸到难以置信的程度,这使我的整个对象看起来有点变形。有没有一个简单的方法来改变这一点?我试过混淆视听,但这似乎也不能改变我想要的。有什么办法可以解决这个问题吗?

您已将漫反射光和镜面反射光添加到场景中,但这些光无法到达背向光源的曲面。可以添加一些环境光(在代码段中当前设置为0、0、0),以便所有曲面都接收一些照明

至于变形的形状,这实际上是一个单独的问题,没有足够的细节来了解为什么会发生这种情况。

Post a。