Texture, Fire, Explosions, Animation
Due 9 December 2011
Pick two additions to your rendering system and implement them.
Choices include, but are not limited to:
- Phong shading
- Behavioral Animation (swarms)
- Particle systems (explosions, fire, exhaust, smoke)
- Texture Mapping
- Procedural Animation (physics engine)
- Complex Scene making extensive use of hierarchical modeling
- Subdivision surfaces (spheres, asteroids, donuts)
- Build a full scanline rendering system that executes all polygons in one pass
- Shadows, probably ray-casting
- A-buffer (store a sorted list of pointers to polygons at each pixel, not z-values)
Whatever you do, make lots of pictures.
The graphcs specification contains suggestions for texture mapping. In addition, here are two example programs and the texture map for test9a.c. To avoid distorting the texture maps, use square images.
- test9a.c - two texture mapped squares and one grey square for comparison.
- test9b.c - a rotating cube with 6 different texture maps. Note that I modified my module_cube definition to take in an array of Texture pointers. If the argument is NULL, then the cube does not use textures. Otherwise, it assumes there are six texture pointers, one for each side. Passing in 6 copies of the same pointer works fine.
- waxwings.ppm - the texture map for the first example program.
- Do one more, or two, or three.
Make a child wiki page from your main CS 351 wiki page. Give it the label cs351f11project9. Please follow the format below.
- Abstract: 200 word description (at most) of what you did and a picture to go along with it.
- Description of the task, in your own words. Be brief, but write it as though explaining it to a fellow student not in the course.
- Description of how you solved the task, including any key equations or algorithms. You should also include algorithms or descriptions of what you did for any extensions. Include pictures here.
- More pictures. Please put a caption on each picture explaining something about it. If you have nothing else, give it a name and indicate whose picture it is.
- Summary of what you learned.
Put your code files in your private handin folder as a single zip or tar file. Put your writeup on the wiki. Give it the label cs351f11project9.