LWJGL Lighting ..光点不作为光点?

时间:2013-03-14 02:13:56

标签: opengl lwjgl lighting

我在(0,0,0)处有一个简单的立方体,在(10,0,0)处有一个光点。出于某种原因,我的立方体的右侧和左侧都被照亮了。所以立方体的两侧都亮了起来。 我使用搅拌机生成法线,所以我知道正确,我也手动检查它们并倒置它们。但结果是一样的。

Naturaly只有立方体的右侧应该点亮吗?

GL11.glEnable(GL11.GL_LIGHTING);
GL11.glEnable(GL11.GL_LIGHT0);  
GL11.glLightModeli(GL11.GL_LIGHT_MODEL_LOCAL_VIEWER, GL11.GL_TRUE); 
        //
GL11.glLightModel(GL11.GL_LIGHT_MODEL_AMBIENT, floatBuffer(new float[] {0.2f, 0.2f, 0.2f, 1.0f}));  
GL11.glLight(GL11.GL_LIGHT0, GL11.GL_DIFFUSE, floatBuffer(new float[] {0.8f, 0.8f, 0.8f, 1.0f}));   
GL11.glLight(GL11.GL_LIGHT0, GL11.GL_SPECULAR, floatBuffer(new float[] {1.0f, 1.0f, 1.0f, 1.0f}));  
        //
GL11.glLight(GL11.GL_LIGHT0, GL11.GL_POSITION, floatBuffer(new float[] {10, 0, 0, 1}));         
    //
GL11.glEnable(GL11.GL_COLOR_MATERIAL);          
GL11.glColorMaterial(GL11.GL_FRONT, GL11.GL_AMBIENT_AND_DIFFUSE);

//我更加努力了,现在我有了一个球体,而且我看到它的每一个方向,都显示出与光完全相同的效果。与光源相对的球体背面是否应该像现实生活中一样黑暗?

//我拍了照片,但该网站说我需要10个声望点才能发布:(。

1 个答案:

答案 0 :(得分:0)

我发现了问题。有一个很好的解释:这里Problems with OpenGL lighting in Java/lwjgl
//
问题是我需要不断设置渲染循环中的灯光位置,如下所示

public void render()
{
GL11.glLight(GL11.GL_LIGHT0, GL11.GL_POSITION, position));
}