# Course Websites

## CS 418 - Interactive Computer Graphics

### Spring 2021

#### Official Description

Basic mathematical tools and computational techniques for modeling, rendering, and animating 3-D scenes. Course Information: Same as CSE 427. 3 undergraduate hours. 3 or 4 graduate hours. Prerequisite: CS 225; MATH 225 or MATH 415; MATH 241. Class Schedule Information: Students will register for a lecture and a discussion section.

Varies

#### Learning Goals

1. Rotate, translate, scale an object represented by triangle mesh, and manage hierarchies of such transformations. (1)(2)(3)(6)
2. Render an image of a meshed object with lighting, texture, reflections and perspective from an arbitrary viewpoint with hidden surfaces removed and extraneous geometry clipped. (1)(2)(6)
3. Model and render an object using parametric curves and surfaces including Hermite, Bezier, NURBS and Catmull-Clark subdivision surface presentations. (1)(2)(6)
4. Convert images between different color spaces and resolutions, and process transparency. (1)(2)(6)
5. Model complex solid objects from simple primitives, and convert them to polygonal meshes. (1)(2)(6)
6. Interpolate orientations using the unit quaternion representation, and interpolate coordinate frames to blend polygonal meshes across bending joints. (1)(2)(3)(6)
7. Procedurally model natural objects including rough terrain and plants. (1)(2)(3)(6)

#### Topic List

Structure of Images: Image formats, compression and dithering.
Mesh Data Structures: How to represent shapes as vertices, edges and faces, using the indexed face set and the half-edge data structures.
Transformational Geometry: Scale, rotation, translation, stretch and shear of a shape.
Viewing: How to transform a scene to accommodate a specific view.
Perspective: How to distort scenes to give the illusion of depth.
Lighting: The Phong model for diffuse illumination with specular highlights.
Rasterization: How to convert mesh triangles to screen pixels.
Texture Mapping: How to put an image onto a surface, and other effects (e.g. environment mapping) it enables.
Visibility: The Z-buffer, painter's method and other hidden surface removal algorithms.
GPU Programming: How to program custom effects in the graphics hardware, including vertex and pixel shaders.
Color Theory: Different color representations including RGB, CMYK, video and CIE XYZ.
Physical Simulation Animation: How to solve ordinary differential equations to simulate realistic motion of springs and masses.
Parametric Surfaces: Hermite, Bezier and B-Spline/NURBS representations of curved surfaces.
Implicit Surfaces: How to represent shapes as zero-sets of real functions over space, and use marching cubes to convert them into meshed surfaces.
Quaternion Rotations: How to represent and interpolate rotations using quaternions.
Skinning: How to deform meshed bodies by interpolating transformations on their bones.