CIS 5600 Interactive Computer Graphics

An undergraduate-level course that teaches a wide selection of interactive graphics techniques with an emphasis on fundamentals, 3D math, C++, and the OpenGL pipeline. Focused on coding, a fairly large project is due every week.

Among the topics covered are scene graphs, linear and affine transformations, triangle rasterization, z-buffering, barycentric interpolation, perspective cameras and camera transformations, perspective-correct interpolation, back-face culling, normal mapping, non-photorealistic rendering, toon shading, post-processing effects (bloom, blur, pointillism, hatching), procedural noise functions (fractal brownian motion, Worley noise, Perlin noise), the half-edge mesh data structure, edge splitting, triangulation, Catmull-Clark subdivision, skeletons, skinning, and procedural terrains.