CSC410: Computer Graphics 6 credits (30-10-20)

Objectives

This course offers an in-depth exploration of fundamental concepts in 2D and 3D computer graphics. The bulk of the course is devoted to 3D modeling, geometric transformations, and 3D viewing and rendering.

Contents

Applications of computer graphics: including user interfaces, game engines, cad, visualization. Digitization of analog data and the limits of human perception, e.g., pixels for visual display, dots for laser printers, and samples for audio. Use of standard graphics APIs for the construction of UIs and display of standard image formats. Standard image formats, including lossless and lossy formats.

Additive and subtractive color models (CMYK and RGB) and why these provide a range of colors. Tradeoffs between storing data and re-computing data as embodied by vector and raster representations of image. Animation as a sequence of still images. Double buffering.

Rendering in nature, i.e., the emission and scattering of light and its relation to numerical integration. Forward and backward rendering (i.e., ray-casting and rasterization). Polygonal representation. Basic radiometry, similar triangles, and projection model. Affine and coordinate system transformations. Ray tracing. Visibility and occlusion, including solutions to this problem such as depth buffering, Painter’s algorithm, and ray tracing.The forward and backward rendering equation. Simple triangle rasterization. Rendering with a shader-based API. Texture mapping, including minification and magnification (e.g., trilinear MIP-mapping).

Application of spatial data structures to rendering. Sampling and anti-aliasing. Scene graphs and the graphics pipeline

Basic geometric operations such as intersection calculation and proximity tests. Volumes, voxels, and point-based representations. Parametric polynomial curves and surfaces. Implicit representation of curves and surfaces. Approximation techniques such as polynomial curves, Bezier curves, spline curves and surfaces, and non-uniform rational basis (NURB) spines, and level set method. Surface representation techniques including tessellation, mesh representation, mesh fairing, and mesh generation techniques such as Delaunay triangulation, marching cubes. Spatial subdivision techniques. Procedural models such as fractals, generative modeling, and L-systems. Graftals. Elastically deformable and freeform deformable models. Subdivision surfaces. Multiresolution modeling. Reconstruction. Constructive Solid Geometry (CSG) representation

Forward and inverse kinematics. Collision detection and response. Procedural animation using noise, rules (boids/crowds), and particle systems. Skinning algorithms. Physics based motions including rigid body dynamics, physical particle systems, mass-spring networks for cloth and flesh and hair. Key-frame animation. Splines. Data structures for rotations, such as quaternions. Camera animation. Motion capture.