lights on GLUT

Started by
1 comment, last by poeta_boy 19 years, 8 months ago
Hello everyone: I have a simple scene in openGl, in my display() I have: code:void renderScene() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glEnable(GL_DEPTH_TEST); glEnable(GL_LIGHTING); GLfloat lightAmbient[]= { 0.5f, 0.5f, 0.5f, 1.0f }; GLfloat ambientPosition[] = {50,50,50,1}; glLightfv(GL_LIGHT1, GL_AMBIENT, lightAmbient); glLightfv(GL_LIGHT1, GL_POSITION, ambientPosition); glEnable(GL_LIGHT1) glColor3f(0, 0.9, 0); glBegin(GL_QUADS); glVertex3f(-100.0f, 0.0f, -100.0f); glVertex3f(-100.0f, 0.0f, 100.0f); glVertex3f( 100.0f, 0.0f, 100.0f); glVertex3f( 100.0f, 0.0f, -100.0f); glEnd(); glPushMatrix(); glTranslatef(-40,40,-40); drawSun(); glPopMatrix(); glPushMatrix(); glTranslatef(-40, 0, -40); drawWindmill(); glPopMatrix(); glPushMatrix(); glTranslatef(20, 0, 0); drawBoy(); walk(); glPopMatrix(); } void drawSun() { GLfloat light_position[] = {0,0,0,1}; GLfloat light_color[] = {1,1,1,1}; glTranslatef(10,10,10); glLightfv(GL_LIGHT0, GL_POSITION, light_position); glLightfv(GL_LIGHT0, GL_SPECULAR, light_color); glEnable(GL_LIGHT0); glTranslatef(-10, -10, -10); float size = 10; glColor3f(1,1,0); glutSolidSphere(size, 100, 100); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGB); glShadeModel(GL_SMOOTH); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); glutInitWindowPosition(100, 10); glutInitWindowSize(700,700); glutCreateWindow("My World!"); glutDisplayFunc(renderScene); glutIdleFunc(renderScene); glutMainLoop(); return EXIT_SUCCESS; } As you can see drawSun() is just drawing an Sphere and then tries to put a light inside it. But I can't make it work, since if I only add GL_AMBIENT light (at renderScene() )I end up with a black screen, and if I add the light at the drawSun() there appears the light as intended, but everything else loses it's color, it gets only black and white (even tough I do get the light effect, shadows are black and light white). Why doesn't the ambient light work? thanks Poeta __________________
Advertisement
im not 100% what u mean but anyways.
there is also global_ambient which is enabled by default (i believe its set to 0.2 0.2 0.2)
also for your sun
u would want to specify EMISSION (so it glows)
and also use DIFFUSE lighting for the sun (i only see specular).

thanks a lot.

The sun is shining now, but all colors are gone... just black and white :(

This topic is closed to new replies.

Advertisement