我在 (0,0,0) 处有一个简单的立方体,在 (10,0,0) 处有一个光点。由于某种原因,我的立方体的左右两侧都被照亮了。所以立方体的相对两侧都亮了。我使用搅拌机生成法线,所以我知道那里是正确的,我还手动检查了它们并将它们倒置。但结果是一样的。
自然只有立方体的右侧应该点亮,对吗?
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 个声望点才能发布它们:(。