$25
1. Write a program that draws a color-changing cube.
A. Set the window title to your student ID and the window size to (480,480).
B. Start from the code in 7-Lighting&Shading slides. Draw a flat-shaded cube. Make sure FDPHUDPDQLSXODWLRQVKRUWFXWVěĜěĜěĜěZĜZRUN C. Use the following light setting:
lightPos = (3.,4.,5.,1.)
glLightfv(GL_LIGHT0, GL_POSITION, lightPos)
ambientLightColor = (.1,.1,.1,1.)
glLightfv(GL_LIGHT0, GL_AMBIENT, ambientLightColor)
specularObjectColor = (1.,1.,1.,1.)
glMaterialfv(GL_FRONT, GL_SPECULAR, specularObjectColor)
glMaterialfv(GL_FRONT, GL_SHININESS, 10)
D. If you press or repeat a key, the diffuse & specular color of the light and the ambient & diffuse color of the object should be changed as shown in the Table:
Key
Action
A
Change the light color to red
S
Change the light color to green
D
Change the light color to blue
F
Change the light color to white
Z
Change the object color to red
X
Change the object color to green
C
Change the object color to blue
V
Change the object color to white
2. Write a program that draws a smooth-shaded cube.
A. Set the window title to your student ID and the window size to (480,480).
B. Start from the code in 7-Lighting&Shading slides. Make sure camera manipulation
VKRUWFXWVěĜěĜěĜěZĜZRUN
C. Use glDrawElements(), not glDrawArray(). Refer the code in 6-Viewing&projection2, Mesh slides.
i. Hint: In Gouraud shading, one vertex has only one normal. This makes using glDrawElements() easier.
D. Use the following normal vector data:
E. If you press or repeat a key, the ambient & diffuse color of the object should be changed as shown in the Table:
Key
Action
R
On/Off the object color of red
G
On/Off the object color of green
B
On/Off the object color of blue
F. Expected result: Uploaded LabAssignment7-2.mp4