LWJGL Forum

Programming => Lightweight Java Gaming Library => Topic started by: Skatty on July 17, 2013, 15:01:49

Title: LWJGL Lighting
Post by: Skatty on July 17, 2013, 15:01:49
Hi

Can someone explain me this source code for lighting in LWJGL? Because now it works but when i rotate camera its lighter or darker. i dont want that. i changed light position but it dont work. its still the same. how i can use that code to emit a sunlights?
// ***********&*******************************LIGHTT***************************************************///
initLightArrays();
glShadeModel(GL_SMOOTH);
glMaterial(GL_FRONT, GL_SPECULAR, matSpecular); // sets specular material color
glMaterialf(GL_FRONT, GL_SHININESS, 50.0f); // sets shininess

glLight(GL_LIGHT0, GL_POSITION, lightPosition); // sets light position
glLight(GL_LIGHT0, GL_SPECULAR, whiteLight); // sets specular light to white
glLight(GL_LIGHT0, GL_DIFFUSE, whiteLight); // sets diffuse light to white
glLightModel(GL_LIGHT_MODEL_AMBIENT, lModelAmbient); // global ambient light

glEnable(GL_LIGHTING); // enables lighting
glEnable(GL_LIGHT0); // enables light0

glEnable(GL_COLOR_MATERIAL); // enables opengl to use glColor3f to define material color
glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
// ***********&******************************LIGHTT****************************************************///
//------- Added for Lighting Test----------//
private static void initLightArrays() {
matSpecular = BufferUtils.createFloatBuffer(4);
matSpecular.put(1.0f).put(1.0f).put(1.0f).put(1.0f).flip();

lightPosition = BufferUtils.createFloatBuffer(4);
lightPosition.put(World.BLOCK_AMOUNT_AT_AXIS/2).put(60.0f).put(World.BLOCK_AMOUNT_AT_AXIS/2).put(0.0f).flip();

whiteLight = BufferUtils.createFloatBuffer(4);
whiteLight.put(1.0f).put(1.0f).put(1.0f).put(1.0f).flip();

lModelAmbient = BufferUtils.createFloatBuffer(4);
lModelAmbient.put(0.5f).put(0.5f).put(0.5f).put(1.0f).flip();
}