Take this class if you want a broad introduction to the technical topics in computer graphics, including modeling, rendering, and animation.
This course provides a broad introduction to the mathematical and programmatic foundations of computer graphics, including modeling, rendering (drawing), and animating three-dimensional scenes. Topics include digital image representation, two- and three-dimensional shape representations (e.g. parametric curves and surfaces, meshes, subdivision surfaces), geometrical transformations (e.g. rotations, scales, translations, and perspective projection), rigging and skinning, the rasterization pipeline, ray tracing, illumination and shading models, texturing, and light & visual perception.
Take this class (instead of, or in addition to 77/177) if you want to obtain a deep technical understanding of the physically based rendering techniques used to produce photorealistic images in animated films, visual effects, or architectural and product visualizations.
Students will learn how light behaves and interacts with objects in the real world and how to translate the underlying math and physics into practical algorithms for creating photorealistic images. The course will provide a detailed treatment of the industry-standard Monte Carlo methods for light transport simulation, such as path tracing, bidirectional path tracing, and photon mapping. Each major topic will also be accompanied by a programming assignment where students implement these algorithms within their own software framework to obtain practical experience.
Take this course if you want to learn the math and numerical algorithms needed to simulate the physics of motion, including soft- and rigid-body dynamics, fluid, cloth, and more.
This course introduces mathematical and algorithmic techniques to simulate, design, and make various physical systems, with applications to computer graphics, animation, robotics, and 3D printing. We will introduce classical numerical algorithms to simulate rigid body, soft body, fluid, and cloth, as well as control and optimization algorithms to design drones and 3D printable objects. The theoretical underpinnings are formed by multi-variable calculus, linear algebra, unconstrained and constrained optimizations, and introductory-level topics in continuum mechanics.
Take this class if you want to learn how cameras form images, how we represent images digitally on a computer, and how to write algorithms that manipulate and process those images as done in popular tools like Photoshop and Lightroom.
Computational photography lies at the intersection of photography, computer vision, image processing, and computer graphics. At it’s essence, it is about leveraging the power of digital computation to overcome limitations of traditional photography. In this course, we will study the increasing computational aspects of digital photography, with an emphasis on software techniques.
In this advanced level seminar course, you’ll learn about 3D printing technology and fundamental computational tools for creating physical prototypes from geometric models. In reading group style, we will also explore the range of applications, such as furniture design, spinning toys, and sculpting. Paper selections will cover cutting-edge research from prominent Computer Graphics conferences including SIGGRAPH, UIST, and Eurographics. The coursework will culminate in a final project. In small teams, projects will be a focused study, involving a computational component and physical prototyping of the final results.
CS77 Computer Graphics recommended but not required.