Choose one of the following topics. Using whatever programming tools and languages you favour, produce the materials described. I will grade with particular attention to visual pizazz (1. Dazzling style; flamboyance; flair. 2. Vigorous spirit; energy or excitement.), and will provide extra marks for extra stuff. You may use tools such as modellers (I use Blender quite a lot) or renderers (ditto Luxrender) or camera trackers (ditto Voodoo), but you must explain in your submission what tools you used (i.e. I don't want to give you credit for building a modeller if you just used Blender).
Each alternative can be done in teams of up to three. Your submission is due on or before 08h00 on 8 May 2012, the start of the final exam. Submit by sending the required materials to me by email, using the phrase CS419 in your subject.
Alternative 1 - Photon maps
Expand your raytracer from MP-1 to produce one rendering of a refraction caustic and one rendering of a reflection caustic by means of a photon map. Your scene does not need to be complex - you could use a sphere on a table for the first - but the caustic needs to be accurate and not blotchy. Reference material for photon maps can be found in, for example, on Henrik Jensen's web page. I have a copy of his book if you need to refer to it. Submission is by: giving me two rendered images, a brief explanation of what to look for, and a brief explanation of what tools you used and why.
Alternative 2 - Particle fireworks in the real world
Produce a movie of particle fireworks superimposed on a real backdrop (as examples, keep in mind the particle movies I showed in class). The camera should move during the movie, and the fireworks should be visibly 3D (for example, you might have a mortar that explodes sending sparks in all 3D directions from the point of explosion). You can use Voodoo or suchlike to do the camera tracking. You should use your own code to do the fireworks. I will look for (a) spectacular fireworks and (b) fireworks that are technically complex to execute. Submission is by: giving me a movie, a brief explanation of what to look for, and a brief explanation of what tools you used and why.
Alternative 3 - Simple subdivision modeller
Build a simple interactive modeller based around Catmull-Clark subdivision. The user should be able to: build a curve; extrude that curve to produce a surface mesh; select and move vertices on that mesh; subdivide one or more steps; edit the subdivided mesh; and produce a final subdivision. The user should be able to move the view of the modelled object, switch on various rendering options (at least: wireframe; shading). Selection and movement should be clean and straightforward. Submission is by: sending me an executable, a brief explanation of how to run the modeller, and a brief explanation of what tools you used and why. I should strongly prefer it if you were to demonstrate your program to me as well.
Alternative 4 - Removing an object from an animated movie
Produce a short clip of a legacy animated movie where a foreground object has been removed and the background filled in. Doing this involves using some mosaicing code to determine what the background looks like (for example, look at the paper "Turning to the masters: motion capturing cartoons" by Bregler, Loeb and Chuang, ACM Transactions on Graphics, 2002). You can use others' mosaic code, because you will need to fiddle with it to compute the background. Submission is by: sending me a before and after movie, a brief explanation of what to look for, and a brief explanation of what tools you used and why.
Alternative 5 - Making and placing a model in the real world
Use a modeller to produce a really nice model (I expect a high level of detail, nice surface materials, and compelling visual complexity) and place it in video where the camera moves. The model should be visually consistent with the world, and should look as though it belongs there. In particular, you should light it so that it looks realistic. This is an exercise in the creative use of tools (I'd use Voodoo, Blender and Luxrender, but you can choose others). Submission is by: sending me a before and after movie, a brief explanation of what to look for, and a brief explanation of what tools you used and why.