Here is the homework description, and associated project files..

In this homework, you'll read a scene file containing triangle data in object/model space, apply transformations (O -> W -> C -> NDC -> S) to get to screen/raster space, where you'll use HW2's code to render the triangles via scan-conversion and flat-shading.

The 'Assignment3.doc' file that's in HW3.zip (linked above) contains specifics on what you'll implement. It also specifies the camera 'from' and 'to' points that you'll use, and the FOV value (which you will use to derive the 'd' value for perspective projection). Also, the end of the 'More transforms' set of slides (linked from http://www.smartcg.com/tech/cg/courses/CS580/lectures/notes/Lect_MoreXfmns/MoreXfmns.html) contains useful info as well.

There are no object->world xfmns specified in the assignment description, so the scene file data can be thought to exist in world space (ie. world space is identical to object space). You can supply your own O->W xfmns (eg. rotate the object around 'Y', scale it, translate it, etc. in any Rx/Ry/Rz/S/T combination), to create interesting, nicely composed images.

You'll get some (undetermined as of yet) extra credit if you animate anything (eg. O->W and/or camera and/or persp. projection). To do so, simply make incremental changes (eg. vary 'd' from 10.0 to 20.0 in steps of 0.1), and write out a .ppm file for each step (eg. output.0001.ppm, output.0002.ppm... through output.0101.ppm). You can view the "animation" by sequentially and rapidly 'flipping' through the .ppm images that you write out (eg. the paper equivalent would be something like http://www.youtube.com/watch?v=LRx5RDCWgq8&feature=related). To flip your .ppm images, you can use IrfanView in "slideshow" mode (eg. watch http://www.youtube.com/watch?v=RLYEVpC3ZvQ from 2:00 on). Note - if you are doing HW3 on Processing or Javascript+canvas, your animation will happen directly onscreen, no need for image files on disk.