# Courses

## CS 184/284A. Foundations of Computer Graphics

### Description

Catalog Description: (4 units) Techniques for modeling objects for the purpose of computer rendering: boundary representations, constructive solids geometry, hierarchical scene descriptions. Mathematical techniques for curve and surface representation. Basic elements of a computer graphics rendering pipeline; architecture of modern graphics display devices. Geometrical transformations such as rotation, scaling, translation, and their matrix representations. Homogeneous coordinates, projective and perspective transformations. Algorithms for clipping, hidden surface removal, rasterization, and anti-aliasing. Scan-line based and ray-based rendering algorithms. Lighting models for reflection, refraction, transparency. Light transport and methods for computing global illumination. Basics of animation, non-photorealistic rendering, and image-based rendering.

Prerequisites: CS 61B; programming skills in C or C++; linear algebra and calculus.

Course objectives:

- An understanding of the physical and geometrical principles used in computer graphics
- An understanding of rendering algorithms, and the relationship between illumination models and the algorithms used to render them
- An understanding of the basic techniques used to model three dimensional objects, both as surfaces and as volumes
- An acquaintance with the principles of interaction and of user interfaces

Topics covered:

- Polygon scan conversion (rasterization)
- 2D and 3D Geometric and Modeling Transformations
- Rotation about an arbitrary axis, quaternions, exponential maps
- Homogeneous coordinates and projective geometry
- Planar geometric parallel and perspective projections
- 2D and 3D viewing transformations
- Perspective Pipeline
- Line and Polygon clipping algorithms
- Visible surface determination
- Illumination (Reflectance) models and gamma correction
- Smooth shading methods and mach band artifacts
- Ray tracing: reflection/refraction/transparency/shadows
- Radiosity, photon mapping, and global illumination
- Texture mapping
- Environment mapping and bump mapping
- Spline curve and surface representations
- Animation
- Image-based and non-photorealistic rendering