This course provides a comprehensive introduction to computer graphics, focusing on fundamental concepts and techniques, as well as their cross-cutting relationship to multiple problem domains in interactive graphics (such as rendering, animation, geometry, image processing). Topics include: 2D and 3D drawing, sampling, interpolation, rasterization, image compositing, the GPU graphics pipeline (and parallel rendering), geometric transformations, curves and surfaces, geometric data structures, subdivision, meshing, spatial hierarchies, image processing, compression, time integration, physically-based animation, and inverse kinematics.
CS248 DOES NOT depend upon CS148 as a prereq. However, we expect you to be a proficient C/C++ programmer to complete the required programming assignments. (We expect you've taken at least CS107). We also assume basic understanding of linear algebra (at least MATH 51) and 3D calculus.
There is no required textbook for CS248, though a variety of books may provide good supplementary material:
All class announcements will be made via our class Piazza Page. Please make sure you sign up for the course on Piazza.
All students will be expected to perform:
- Three programming assignments: 50%
- Participation on written assignments and lecture comments: 8%
- Self-selected final project: 22%
- One exam: 20%
Programming assigments and the final project can be completed in teams of up to two students.
Each student is allotted a total of five late-day points for the semester.
Late-day points are for use on the three programming assignments only. Late-day points work as follows: