- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);\r
- glLoadIdentity();\r
-\r
- glTranslatef(-1.5f, 0.0f, -6.0f);\r
-\r
- glBegin(GL_QUADS);\r
- glVertex3f(-1.0f, 1.0f, 0.0f); // Top left\r
- glVertex3f( 1.0f, 1.0f, 0.0f); // Top Right\r
- glVertex3f( 1.0f,-1.0f, 0.0f); // Bottom Right\r
- glVertex3f(-1.0f,-1.0f, 0.0f); // Bottom Left\r
- glEnd();\r
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);\r
+ glLoadIdentity();\r
+ gluLookAt(\r
+ 0.0, 8.0, 60.0, /* eye is at (0,8,60) */\r
+ 0.0, 8.0, 0.0, /* center is at (0,8,0) */\r
+ 0.0, 1.0, 0.0 /* up is in postivie Y direction */\r
+ );\r
+\r
+ /* Reposition the light source. */\r
+ lightPosition[0] = 12*cos(lightAngle);\r
+ lightPosition[1] = lightHeight;\r
+ lightPosition[2] = 12*sin(lightAngle);\r
+ lightPosition[3] = 0.0;\r
+\r
+ glPushMatrix();\r
+ glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);\r
+\r
+ glEnable(GL_BLEND);\r
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);\r
+ drawFloor();\r
+ glDisable(GL_BLEND);\r
+\r
+ glPushMatrix();\r
+ glLoadIdentity();\r
+ glColor3f(1.0, 0.0, 1.0);\r
+ glTranslatef(-8.0, 0.0, -1.0);\r
+\r
+ glutSolidTeapot(1); // Draw teapot for test\r
+ glPopMatrix();\r
+\r
+ glPushMatrix();\r
+ glDisable(GL_LIGHTING);\r
+ glLoadIdentity();\r
+ glColor3f(1.0, 1.0, 1.0);\r
+\r
+ /* Draw a yellow ball at the light source. */\r
+ glTranslatef(lightPosition[0], lightPosition[1], lightPosition[2]);\r
+ glutSolidSphere(1.0, 5, 5);\r
+\r
+ glEnable(GL_LIGHTING);\r
+ glPopMatrix();\r
+\r
+ glPopMatrix();\r
+\r
+ glutSwapBuffers();\r
+}\r