Description
1. Write a program that draws a color-changing cube.
- Set the window title to your student ID and the window size to (480,480).
- Start from the code in 7-Lighting&Shading slides. Draw a flat-shaded cube. Make sure camera manipulation shortcuts ‘1’, ‘3’, ‘2’, ‘w’ work.
- 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
A S
D F Z
X C V
E. 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.
- Set the window title to your student ID and the window size to (480,480).
- Start from the code in 7-Lighting&Shading slides. Make sure camera manipulation shortcuts ‘1’, ‘3’, ‘2’, ‘w’ work.
- 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:
Action |
Change the light color to red |
Change the light color to green |
Change the light color to blue |
Change the light color to white |
Change the object color to red |
Change the object color to green |
Change the object color to blue |
Change the object color to white |
- If you press or repeat a key, the ambient & diffuse color of the object should be changed as shown in the Table:
Key
R G
B
- Expected result: Uploaded LabAssignment7-2.mp4
- Files to submit: A Python source file (Name the file whatever you want (in English). Extension should be .py)