well… I hate to do this but… here’s the code… I get NO effect whether GL_LIGHT0 is turned off/on!! What is the matter?
#include <GL/glut.h>
GLvoid InitGL()
{
glViewport(0,0,640,480);
glClearColor(0.0f,0.0f,0.0f,1.0f);
glShadeModel(GL_SMOOTH);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f,4.0/3.0,0.1f,100.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
GLfloat ambientLight[]={0.3f, 0.3f, 0.3f, 1.0f};
GLfloat diffuseLight[]={0.7f, 0.7f, 0.7f, 1.0f};
GLfloat specularLight[]={1.0f, 1.0f, 1.0f, 0.0f};
GLfloat specref[]={1.0f, 1.0f, 1.0f, 1.0f};
GLfloat spotdir[]={0.0f,0.0f,-1.0f};
glLightfv(GL_LIGHT0,GL_AMBIENT,ambientLight);
glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuseLight);
glLightfv(GL_LIGHT0,GL_SPECULAR,specularLight);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT,ambientLight);
GLfloat lightPos[]={0.0f, 0.0f, 0.0f, 0.0f};
glLightfv(GL_LIGHT0,GL_POSITION,lightPos);
glLightf(GL_LIGHT0,GL_SPOT_CUTOFF,60.0f);
glLightf(GL_LIGHT0,GL_SPOT_EXPONENT,100.0f);
glLightfv(GL_LIGHT0,GL_SPOT_DIRECTION,spotdir);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glColor3f(0.0f,0.0f,1.0f);
glEnable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);
glMaterialfv(GL_FRONT_AND_BACK,GL_SPECULAR,specref);
glMaterialf(GL_FRONT_AND_BACK,GL_SHININESS,128);
}
GLvoid DrawScene()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glBegin(GL_TRIANGLES);
glNormal3f(0.0f,0.0f,1.0f);
glVertex3f(-1.0f,-1.0f,-5.0f);
glVertex3f( 0.0f, 1.0f,-5.0f);
glVertex3f( 1.0f,-1.0f,-5.0f);
glEnd();
glPopMatrix();
glutSwapBuffers();
}
int main(int numargs, char **argv)
{
glutInitWindowPosition(0,0);
glutInitWindowSize(640,480);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH|GLUT_RGBA);
glutCreateWindow(argv[0]);
InitGL();
glutDisplayFunc(DrawScene);
glutMainLoop();
return 0;
}
[This message has been edited by ngill (edited 07-14-2000).]