Download 3D Graphics in OpenGL - Introduction to Computer Graphics - Assignment and more Exercises Computer Graphics in PDF only on Docsity! Programming Assignment #2 3D Graphics in OpenGL Due Thursday, October 25 by 11:59pm (The grade for this assignment is out of 100 points, but you can obtain up to a maximum of 125 points by doing more optional components. Additional points beyond 100 will be applied to your final score for all programming assignments.) Required Components: (40 pts) (1)Display a 3-dimensional manifold object; that is, an object that encloses a volume (i.e. cube, sphere, tetrahedron, etc.). NOTE: You cannot use something like the GLUT helper functions (glutSolidSphere, etc.) to satisfy this requirement. (10 pts) (2) Implement at least one of the following viewing modes. You may implement more than one. (Any additional modes would be counted toward credit for the optional components portion of the assignment.) (10 pts each) (1) Fix the camera on the z=0 plane, with the viewer looking down the -z axis. Allow the user to translate the camera within the z=0 plane. (that is, the user controls the location of the camera in the z=0 plane, but the direction remains -z) (2) Fix the location of the camera, but allow the user to control the view direction. (3) Fix the view direction of the camera and its x-y location. Allow the user to move the camera forward and back along the view direction, like zooming in and out. (3)Display two 3-dimensional objects and have them rotate independently (about each object center) about different rotation axes. The animation can be user-controlled or entirely scripted, but it must animate (move without user input, such as with glutTimerFunc or glutIdleFunc in GLUT terminology), and both objects must be able to rotate simultaneously. (10 pts) (4)Display two 3-dimensional objects, lit by a single point light source. Allow the user to toggle between flat shading and Gouraud shading. NOTE: For this to work, you need to use a model with defined normals. The GLUT helper functions (glutSolidSphere, glutSolidTeapot, etc) have defined normals, so I recommend using some of these for this portion of the assignment. (10 pts) Docsity.com