lights on GLUT
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
__________________
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).
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).
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement