我想了解opengl中的默认灯光位置。
我设置了一个系统,例如;如果场景中没有灯光,系统会在场景中添加环境光:
Gl.glEnable(Gl.GL_LIGHT0);
Gl.glLightf(Gl.GL_LIGHT0, Gl.GL_CONSTANT_ATTENUATION, 99999);
如果我不触摸灯光的 Position 参数,灯光就像环境灯光,它似乎没有方向,所以我的物体从各个角度都得到光.. 这很酷.. 但如果我这样做:
Gl.glEnable(Gl.GL_LIGHT0);
Gl.glLightf(Gl.GL_LIGHT0, Gl.GL_CONSTANT_ATTENUATION, 99999);
Gl.glLightfv(Gl.GL_LIGHT0, Gl.GL_POSITION, new Vector4(0f, 0f, 1f, 0f).ToArray());
(这已经是原始值,因为我用 Gl.glGetLightfv(Gl.GL_LIGHT0, Gl.GL_POSITION, vec); 测试了它,它是一样的)。在我弄乱了位置之后,它真的变成了定向太阳光,但我希望它像环境光一样工作。我在这里想念什么?