September-December 2004, 10-11 MWF, in Hugh Dempster Pavilion 101. (This is the new CS lecture building under construction behind CICSR.)
Instructor: Robert Bridson
Prerequisites: CPSC 314/414 (computer graphics) or equivalent
This course is about the fundamental ideas and algorithms of animation, with applications in making films and games. This is not an art class, and we won't be learning to use any particular animation package; the focus will be on the computer science of animation.
You can always email me at rbridson @ cs.ubc.ca. My office hours are Monday 1:30-2:30, Thursday 3-4, or by appointment.
Some movies generated during the course:
The text for the course is
Here is the start of a set of applied math reference notes. It is by no means complete, but perhaps will be useful for looking things up: Applied Math Reference.
Please find and read the following articles. For SIGGRAPH papers, you can go through the ACM Digital Library.
There will be four assignments:
At the end of the course will be the final project, worth 25%. Download the details.
There will be a final exam worth 40%. It will be Thursday, Dec. 9th, 8:30am-11:30am (Note: that's three (3) hours) in LSK 460.
There is now a course newsgroup, ubc.courses.cpsc.426.
Click here: fourier_demo.tar.gz for the MATLAB m-files I used in class to demonstrate Fourier series.
Note: you can end up using a lot of disk space for temporary data files and images while you're creating animations. Rather than using precious NFS file server space (and probably going over quota) for these temporary files, stick them on the local /var/tmp directory (inside a directory you create), make your animation, and then save just the compressed animation file in your home directory (or wherever you want). Note that files in /var/tmp may be deleted at any time and are not backed up. Please remove your temporary files after you've made an animation---there's no sense wasting the space when other people may need to use that machine.
The open source RenderMan renderer we will be using, Pixie is now installed on the undergrad Linux machines. Pixie provides a program called "rndr" which takes RIB files as command-line arguments and renders/executes them (typically producing tiff image files). Note that image files for many frames take up a lot of space, so again be sure to do this in a subdirectory of /var/tmp/ on one of the Linux machines (not Solaris!).
Temporary bad news: the default rndr script is not working. Instead use ~cs426/pixiehome/rndr (or even alias rndr to this alternate script).
We will use ffmpeg to encode separate frames of animations into MPEG-4 movies. Unfortunately ffmpeg does not accept tiff files as input; you must first use "convert" to convert each tiff file into, say, a ppm file. E.g. type "convert frame0034.tiff frame0034.ppm". Once you have a directory full of ppm files (say in the format frame0000.ppm, frame0001.ppm, ...) you can use ffmpeg to convert them into an mp4 with "ffmpeg -i frame%04d.ppm -r 24 animation.mp4" which will produce a 24 frame per second movie.
Note: for compiling a 10 second movie at 24 frames per second, for example, you will have 240 RIB files and
240 image files to deal with. You will almost surely want to automate this with a simple script. For example, in
csh if you are in the directory in /var/tmp/ with all your RIB files you could type:
% foreach f ( example*.rib )
% ~cs426/pixiehome/rndr $f
% end
% foreach f ( example*.tiff )
% convert $f $f.ppm
% end
% ffmpeg -i example%04d.tiff.ppm -r 24 example.mp4
% rm *.tiff *.ppm
which will render each RIB file, then convert every tiff file to a ppm,
run ffmpeg to produce an animation (assuming the RIB files were of the
form example0000.rib, example0001.rib, ...), and delete the intermediate
image files.
Miscellaneous other resources:
Please read the slides, especially the Notes section at the start of each lecture, if you are not able to attend class.
This is highly approximate and will become firmer as the course progresses. I've put links to the lecture slides as they become available. Please note that all the fonts are embedded as needed in these PDF files, but the printing system on the CS machines may strip out the mathematical fonts. To get around this, use "pdf2ps" to convert to postscript first, then print the postscript file.