glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, LightDirection);
glLighti(GL_LIGHT0, GL_SPOT_CUTOFF, 90);
glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1);
glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0);
glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 0);
Witch values to choose to get a "normal", spotlight?
The distance between the light and the vertex is 15 units.
All help is wellcommed!
Show me your code!
Gandalf the White
Gandalf the White
🎉 Celebrating 25 Years of GameDev.net! 🎉
Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!
SpotLights OpenGL
How to create a decent spotlight in OpenGL? All my objects turn dark. I´m sure about the direction but not so sure about GL_SPOT_EXPONENT and the attenuation params. I set the angle to 90 degree. Nothing happend. Darker then coffe.
Please help, OpenGL wizard out there!
Gandalf the White
Gandalf the White
Please help, OpenGL wizard out there!
Gandalf the White
Gandalf the White
hi Gandalf
maybe you have forgotten the light position?
glLightfv(GL_LIGHT0, GL_POSITION,light0_position);
hope that help
lunasol
maybe you have forgotten the light position?
glLightfv(GL_LIGHT0, GL_POSITION,light0_position);
hope that help
lunasol
Hopefully this''ll help. I''m still rather new to the OpenGL stuff myself. It''s a section of code I got from a tutorial, and seems to work fairly well. (Adds a little ambience and specular light for effect)
GLfloat ambientlight[] = {0.5f, 0.5f, 0.5f, 1.0f};
GLfloat specular[] = {1.0f, 1.0f, 1.0f, 1.0f};
//enable lighting
glEnable(GL_LIGHTING);
//Set up light 0
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientlight);
//the light is composed of just diffuse and specular components
glLightfv(GL_LIGHT0, GL_DIFFUSE, ambientlight);
glLightfv(GL_LIGHT0, GL_SPECULAR, specular);
glLightfv(GL_LIGHT0, GL_POSITION, lightposition);
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, spotdir);
//set up spot effects
glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 60.0f);
//make a shiny spot
glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, 100.0f);
//enable the light
glEnable(GL_LIGHT0);
GLfloat ambientlight[] = {0.5f, 0.5f, 0.5f, 1.0f};
GLfloat specular[] = {1.0f, 1.0f, 1.0f, 1.0f};
//enable lighting
glEnable(GL_LIGHTING);
//Set up light 0
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientlight);
//the light is composed of just diffuse and specular components
glLightfv(GL_LIGHT0, GL_DIFFUSE, ambientlight);
glLightfv(GL_LIGHT0, GL_SPECULAR, specular);
glLightfv(GL_LIGHT0, GL_POSITION, lightposition);
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, spotdir);
//set up spot effects
glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 60.0f);
//make a shiny spot
glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, 100.0f);
//enable the light
glEnable(GL_LIGHT0);
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement