* @param id ID of ground texture selected\r
*/\r
void processGTextureEvents(int id) {\r
-\r
+ currentGroundTexture = id;\r
+ glutPostRedisplay();\r
}\r
\r
/**\r
//glutAddMenuEntry("Rotation/Texture Scale", M_ROTATION_TEXTURE_SCALE);\r
//glutAddSubMenu("Material", materialMenu);\r
//glutAddSubMenu("Texture", textureMenu);\r
- //glutAddSubMenu("Ground texture", gTextureMenu);\r
+ glutAddSubMenu("Ground texture", gTextureMenu);\r
//glutAddSubMenu("Lights", lightMenu);\r
glutAddMenuEntry("Exit", M_EXIT);\r
\r
75.0,\r
aspect,\r
0.1,\r
- 200\r
+ 300\r
);\r
\r
glMatrixMode(GL_MODELVIEW);\r
lightPosition0[2] = 12*sin(lightAngle0);\r
lightPosition0[3] = 0.0;\r
\r
+ direction0[0] = lightPosition0[0];\r
+ direction0[2] = lightPosition0[2];\r
+\r
/* Reposition the light source 1. */\r
lightPosition1[0] = 12*cos(lightAngle1);\r
lightPosition1[1] = lightHeight1;\r
lightPosition1[2] = 12*sin(lightAngle1);\r
lightPosition1[3] = 0.0;\r
\r
+ direction1[0] = lightPosition1[0];\r
+ direction1[2] = lightPosition1[2];\r
+\r
glPushMatrix();\r
\r
/* Perform scene rotations based on user mouse/keyboard input. */\r
glLightfv(GL_LIGHT1, GL_POSITION, lightPosition1);\r
\r
drawFloor();\r
-\r
- drawLine();\r
\r
// Draw teapot for a test object\r
glPushMatrix();\r
// Draw a white ball over the light source\r
glPushMatrix();\r
glDisable(GL_LIGHTING);\r
- glColor3f(1.0, 1.0, 0.0);\r
+ glColor3f(1.0, 1.0, 1.0);\r
glTranslatef(lightPosition0[0], lightPosition0[1], lightPosition0[2]);\r
- glutSolidSphere(1.0, 50, 50);\r
+ glutSolidSphere(0.5, 50, 50);\r
glEnable(GL_LIGHTING);\r
glPopMatrix();\r
\r
// Draw a white ball over the light source\r
glPushMatrix();\r
glDisable(GL_LIGHTING);\r
- glColor3f(1.0, 1.0, 0.0);\r
+ glColor3f(1.0, 1.0, 1.0);\r
glTranslatef(lightPosition1[0], lightPosition1[1], lightPosition1[2]);\r
- glutSolidSphere(1.0, 50, 50);\r
+ glutSolidSphere(0.5, 50, 50);\r
glEnable(GL_LIGHTING);\r
glPopMatrix();\r
\r
+ drawAxisLines();\r
+\r
glPopMatrix();\r
\r
glutSwapBuffers();\r
glLightfv(GL_LIGHT0, GL_SPECULAR, specular0);\r
glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, direction0);\r
\r
- glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 90.0);\r
+ //glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 90.0);\r
+ glLighti(GL_LIGHT0, GL_SPOT_EXPONENT,100);\r
\r
glLightfv(GL_LIGHT1, GL_AMBIENT, ambient1);\r
glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse1);\r
glLightfv(GL_LIGHT1, GL_SPECULAR, specular1);\r
glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, direction1);\r
\r
- glLightf(GL_LIGHT1, GL_SPOT_CUTOFF, 90.0);\r
+ //glLightf(GL_LIGHT1, GL_SPOT_CUTOFF, 90.0);\r
+ glLighti(GL_LIGHT1, GL_SPOT_EXPONENT,100);\r
\r
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, glightmodel);\r
+ glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);\r
\r
- glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);\r
- glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);\r
- glMaterialfv(GL_FRONT, GL_SPECULAR, specular);\r
- glMaterialfv(GL_FRONT, GL_EMISSION, emission);\r
- glMaterialf(GL_FRONT, GL_SHININESS, shine);\r
+ //glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);\r
+ //glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);\r
+ //glMaterialfv(GL_FRONT, GL_SPECULAR, specular);\r
+ //glMaterialfv(GL_FRONT, GL_EMISSION, emission);\r
+ //glMaterialf(GL_FRONT, GL_SHININESS, shine);\r
\r
glEnable(GL_LIGHT0);\r
glEnable(GL_LIGHT1);\r
glEnable(GL_DEPTH_TEST); // Enables Depth Testing\r
glDepthFunc(GL_LEQUAL); // the type\r
glEnable(GL_TEXTURE_2D);\r
- glEnable(GL_CULL_FACE);\r
+ //glEnable(GL_CULL_FACE);\r
glEnable(GL_NORMALIZE);\r
glLineWidth(2.0);\r
\r