Computer Graphics Course ID 15662 Description This course provides a comprehensive introduction to computer graphics. It focuses on fundamental concepts and techniques, and their cross-cutting relationship to multiple problem domains in graphics (rendering, animation, geometry, imaging). Topics include: sampling, aliasing, interpolation, rasterization, geometric transformations, parameterization, visibility, compositing, filtering, convolution, curves & surfaces, geometric data structures, subdivision, meshing, spatial hierarchies, ray tracing, radiometry, reflectance, light fields, geometric optics, Monte Carlo rendering, importance sampling, camera models, high-performance ray tracing, differential equations, time integration, numerical differentiation, physically-based animation, optimization, numerical linear algebra, inverse kinematics, Fourier methods, data fitting, example-based synthesis. Students will learn through lectures, exercises, and through hands-on programming experience as they build a 3D modeling, rasterization, path-tracing, and animation utility, Scotty3D, in C++. Key Topics - rasterization - spatial transformations - geometric representations - the rendering equation - path tracing - animation - splines - meshes - sampling - numerical integration Required Background Knowledge Basic vector calculus and linear algebra will be an important component of this course. Previous exposure to basic programming in C/C++ or similar languages is very helpful as course programming assignments will involve significant implementation effort. Course Relevance 15-662 is for graduate students. Undergraduates should enroll in 15-462. The techniques of Computer Graphics are essential to many aspects of modern life including visual effects in movies, layout design on web pages, visualization in scientific computing, CAD in industrial design, and real-time rendering for games. Graphics techniques are also the basis of emerging technologies, including developing and simulating autonomous vehicles, optimizing material structures, and robotic sensing systems. Course Goals Provide students with a strong basis in computer graphics techniques - broadly, spatial transformations, geometry, rendering, and animation - along with hands-on experience in the basics of these areas and knowledge of the state of the art. Learning Resources Lecture slides are posted for commenting and discussion. Piazza is also used for discussion. Additional readings are suggested per lecture (see course page). Assessment Structure Students will be assessed through programming assignments (~70%), midterm/final exams (~20%), and course participation (~10%).