LWJGL Освещение.. точка света не действует как точка света?

У меня есть простой куб в (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 очков репутации, чтобы опубликовать их :(.


person Anthony Raimondo    schedule 14.03.2013    source источник


Ответы (1)


Я нашел проблему. Есть хорошее объяснение: здесь Проблемы с освещением OpenGL в Java/lwjgl
//
Проблема заключалась в том, что мне нужно постоянно устанавливать положение источника света в моем цикле рендеринга следующим образом,

public void render()
{
GL11.glLight(GL11.GL_LIGHT0, GL11.GL_POSITION, position));
}
person Anthony Raimondo    schedule 14.03.2013