My teaching over the past twenty years has been largely devoted to topics in computer graphics, particularly courses that support our graduate programs in digital production, and graphics and visualization research. Below, each course title and image contain a link that will take you to the webpage for my latest rendition of the course. Each webpage includes a detailed course schedule, links to supporting papers and code, and all assignments.
This is meant to be a single course satisfying the usual CS-1, CS-2 sequence of courses for Computer Science majors in a single course. It is intended for students who have completed a significant programming course in High School or elsewhere. Very specifically, a primary goal of this course is to provide a thorough introduction to the Unix (i.e. Linux) operating system, the C programming language, and the C++ programming language. Problem sets are all based on the SDL interactive graphics API.
The mathematical and algorithmic foundations of computer graphics. Spatial data structures, object oriented programming in C++, mathematics for graphics, 3D graphics API. This is the second of two courses intended to provide technical foundations for DPA students coming from the art or design fields. For undergraduates, it provides a focused introduction to the technical foundations needed for advanced study in digital production.
The theory and practice behind the generation, and manipulation of two-dimensional digital images within a computer graphics context. Topics include image representation and storage, sampling and reconstruction, color systems, affine and general warps, enhancement and morphology, compositing, morphing, and non-photorealistic transformations. Programming assignments require students to write their own custom C++ code.
Computational, mathematical, physical, and perceptual principles underlying the production of effective three-dimensional computer graphics imagery. Programming assignments require students to write their own custom C++ code. Some assignments are done using raytracing and some using OpenGL.
Physically-based modeling and dynamic simulation techniques as used for the automatic description of motion and geometry for animation and computer graphics. A variety of approaches are explored, with a special emphasis on the use of particle-systems to represent complex phenomena. Programming assignments require students to write their own custom C++ code using OpenGL. Our new textbook Foundations of Physically Based Modeling and Animation is designed to support this course.
The use of physically-based dynamic simulation techniques in the production of digital special effects. The course emphasizes tools, techniques and pipeline. Laboratory assignments are done using Houdini and the student's custom Python and VEX code.
Donald H. House