Original Post
Hi, I'm trying to create a spotlight in my openGL program. Basically its a cube world that goes from X range = -50 , 50 {ie 100 units wide} Y range = -20 , 20 {ie 40 units high} Z range = 0, -100 {100 units deep} I'm trying to get a spotlight to shine on the wall on the right side. glEnable(GL_LIGHTING); GLfloat dirVector0[]={ 1.0, 0.0, 0.0, 1.0}; GLfloat lightPos0[]={ 0.0, 0.0, -30.0, 1.0}; GLfloat ambientLight0[] = {2.2f, 2.2f, 2.2f, 1.0f}; GLfloat diffuseLight0[] = {1.0f, 1.0f, 1.0f, 1.0f}; glLightfv(GL_LIGHT0, GL_AMBIENT, ambientLight0); glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuseLight0); glLightfv(GL_LIGHT0, GL_POSITION, lightPos0); glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 30.0); glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dirVector0); glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, 2.5); glEnable(GL_LIGHT0); Now this gives unbelievable results: I lights up the right side of the world, making the right wall the brightest. It looks nothing like a spotlight effect If you change the 30.0 to anything below 25, you get no light at all. And in the dirVector0, if you change it to anything other than the X axis, it doesn't work. Anybody have any ideas? Thanks