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.
Software rasterizer
A software triangle mesh rasterizer written from scratch. Continue reading Software rasterizer
Half-edge meshes and Catmull-Clark subdivision
Catmull-Clark mesh subdivision, edge splitting, and face triangulation implemented on a half-edge data structure. Continue reading Half-edge meshes and Catmull-Clark subdivision
Skeletons and mesh skinning
Skeleton joint control and mesh skinning. Continue reading Skeletons and mesh skinning
Shading models, reflections models, and post-processing effects
OpenGL shaders of basic shading and reflection models, and post-processing effects. Continue reading Shading models, reflections models, and post-processing effects