$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 camera manipulation shortcuts ‘1’, ‘3’, ‘2’, ‘w’ work. 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
A. Files to submit: A Python source file (Name the file whatever you want (in English). Extension should be .py)
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 8-Lighting&Shading slides. Make sure camera manipulation shortcuts ‘1’, ‘3’, ‘2’, ‘w’ work.
C. Use glDrawElements(), not glDrawArray(). Refer the code in 7-Hierarchy&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: