Catalog Description: A broad introduction to the fundamentals of computer graphics. The main areas covered are modeling, rendering, animation and imaging. Topics include 2D and 3D transformations, drawing to raster displays, sampling, texturing, antialiasing, geometric modeling, ray tracing and global illumination, animation, cameras, image processing and computational imaging. There will be an emphasis on mathematical and geometric aspects of graphics, and the ability to write complete 3D graphics programs.

Units: 4

Also Offered As: COMPSCI 184

Related Areas:

Course Objectives: <p>Students will learn to:&nbsp;</p><ol type="number"><li><p>Explain the mathematical foundations of computer graphics, including linear algebra, coordinate transformations, and geometric modeling.</p></li><li><p>Implement key components of a graphics rendering pipeline, including rasterization, shading, texturing, and visibility algorithms.</p></li><li><p>Model and manipulate 3D geometry using Bézier curves, subdivision surfaces, and mesh data structures.</p></li><li><p>Exposure to interactive graphics programs using programming techniques and graphics libraries such as OpenGL or WebGL.</p></li><li><p>Apply sampling theory and signal processing concepts to problems in anti-aliasing, texture mapping, and image reconstruction.</p></li><li><p>Develop physically based renderers using ray tracing, path tracing, and global illumination algorithms.</p></li><li><p>Simulate physical systems relevant to graphics, such as cloth, springs, and basic animation techniques.</p></li><li><p>Analyze and compare lighting and material models, including diffuse, specular, and complex BRDFs.</p></li><li><p>Design and complete a substantial graphics project, demonstrating creativity, technical depth, and team collaboration.</p></li><li><p>Communicate technical ideas effectively through written reports, visual demonstrations, and presentations.</p></li></ol>

Prerequisites: COMPSCI 61B; and MATH 54 OR MATH 110 Ability to write medium-to-large programs in C++. The course includes intensive programming assignments requiring manual memory management, debugging, and performance tuning. Linear Algebra: Matrix and vector operations, dot/cross products, transformations, eigenvectors. Calculus: Differentiation and integration, particularly in the context of curves and lighting models. Trigonometry: Especially in camera models, projection, and shading.

Formats:
Summer: 6.0 hours of lecture and 2.0 hours of discussion per week
Spring: 3.0 hours of lecture and 1.0 hours of discussion per week
Fall: 3.0 hours of lecture and 1.0 hours of discussion per week

Grading Basis: Default Letter Grade; P/NP Option

Final Exam Status: Yes


Class Schedule (Spring 2026):
CS 184/284A – TuTh 14:00-15:29, – James O'Brien

Class Schedule (Fall 2026):
CS 184/284A – TuTh 15:30-16:59, The Gateway Building 1210 – James O'Brien

Links: