
AssignmentsModeler
This assignment is a 3D modeling program which will allow you to interactively construct and preview a three dimensional scene made up of spheres, cubes, cones, and cylinders. This assignment is an exercise in the tricky topics of 3D interaction and user interfaces. There is also a programmable hardware component of modeler in which you will be writing a hardware shader to run directly on the GPU.
Ray
The ray assignment consists of expanding your lighting equation to include both specular and indirect lighting, as well as texture mapping. You will need to make recursive intersection tests in order to produce reflections and you'll need to test for occulsion of light sources using a similar method to produce shadows.
Intersect
In this assignment you will develop classes that you can use to compute intersections between the common objects you tessellated in shapes, and a ray (presumably of light). You will then use these classes to create somewhat photorealistic images of scenes. The code written in this assignment will be integral to the success of the assignments that follow.
Filter
This assignment represents a subset of the functionality that Photoshop has. It is designed to teach you the basics of image processing and anti-aliasing. You will implement different image manipulation operations like edge detection, blur, and image scaling.
Sceneview
At this point you have the ability to display, transform and view 3D objects. The next step is for you to put these tools together to view a scene consisting of arbitrarily positioned objects from an equally arbitrary location. In this assignment, you will build your own viewer for moderately complicated scenes.
Camtrans
In this assignment you will write your own linear algebra package which will allow you to easily manipulate points, vectors, and transformation matrices. After using the TA-supplied tester to check your work, you'll get to move on to crafting your own virtual camera. Essentially, this camera will use information about the eye point, viewing direction, et cetera, and produce a transformation matrix to display 3d graphics on our 2d output devices. Once again, the code written in this assignment is absolutely essential to the proper function of later assignments. Also be sure to check out the CS123Algebra headers for the stencil files you will be filling in. Read the handout carefully before trying to understand these headers!
Shapes
This assignment covers one of the earliest steps in the 3D rendering pipeline: object tessellation. For this assignment you will be constructing simple 3D objects (e.g., spheres and cylinders) out of triangles and then displaying them on the screen. All you need to do for this assignment is compute and store the necessary triangles; OpenGL handles the task of drawing them for you. The code written in this assignment will be integral to the success of the assignments that follow.
Brush
In Brush you will be implementing various different airbrushes similar to ones found in commercial painting programs such as Adobe's Photoshop. This assignment should give you a good introduction to the kind of C++ programming you will be doing in this course, as well as gently familiarize you with the basic conventions of the support code.
|