Next:
Administration
Up:
CS488 Lectures: Web Page
CS488/688
Introduction to Computer Graphics
Fall 1997
University of Waterloo
Department of Computer Science
Computer Graphics Lab
Instructor: Stephen Mann
Administration
General Information
Topics Covered
Assignments
Introduction
A Short History
The Graphics Rendering Pipeline
Rendering Primitives
Algorithms
Application Programming Interfaces
Device Independence
Calligraphic and Raster Devices
How a Monitor Works
Window to Viewport Mapping
Normalized Device Coordinates
Basic User Interface Concepts
Physical Devices
Virtual Devices
Device Association
Device Input Modes
Application Structure
Polling and Sampling
Event Queues
Toolkits and Callbacks
Example for Discussion
Clipping
Point and Line Clipping
Geometries
Vector Spaces
Affine Space
Euclidean Space
Cartesian Space
Summary of Geometric Spaces
Affine Geometry and Transformations
Linear Combinations
Affine Combinations
Affine Transformations
Matrix Representation of Transformations
Geometric Transformations
Change of Basis
Compositions of Transformations
Ambiguity
3D Transformations
World and Viewing Frames
Transforming Normals
Projections and Projective Transformations
Projections
Why Map Z?
Mapping Z
3D Clipping
Homogeneous Clipping
Transformation Applications and Extensions
Rendering Pipeline Revisited
Viewing Transformations
3D Rotation Specification
Derivation by Composition
3D Rotation User Interfaces
The Virtual Sphere
Polygons
Polygons
Polygon Clipping
Polygon Scan Conversion
Do's and Don'ts
Hidden Surface Removal
Hidden Surface Removal
Backface Culling
Painter's Algorithm
Warnock's Algorithm
Z-Buffer Algorithm
Comparison of Algorithms
Hierarchical Models and Transformations
Hierarchical Transformations
Hierarchical Data Structures
Colour and the Human Visual System
Introduction to Colour
Reflection and Light Source Models
Introduction
Lambertian Reflection
Attenuation
Coloured Lights , Multiple Lights, Ambient Light
Specular Refelection
Shading
Introduction
Gouraud Shading
Phong Shading
Picking and 3D Selection
Picking and 3D Selection
Ray Tracing
Basics
Intersection Computations
Shading
Recursive Ray Tracing
Surface Information
Modeling and CSG
Texture Mapping
Bounding Boxes, Spatial Subdivision
Aliasing and Anti-Aliasing
Introduction
Advanced Lighting
Reflection vs. Illumination
Energy of Illumination
Fast and Dirty Approximations
Lambertian Reflection Model
Phong Reflection Model
Point Light Sources
Radiosity-based Global Illumination
Definitions and Review
Form Factors
Progressive Refinement
Bidirectional Tracing
Missing Effects
Distribution Ray Tracing
Photon Maps
Bidirectional Path Tracing
Metropolis Algorithm
Polyhedral Data Structures
Ray Tracer formats
Euler's Formula
Winged Edge
Splines
Constructing Curve Segments
Bernstein Basis Functions
Bézier Splines
Tensor Product Patches
Barycentric Coordinates
Triangular Patches
Discontinuities in Splines
Spline Continuity
B-Splines
Projective Space
Homogeneous Coordinates
Vector and Affine Algebra
Projective Space
Conic Sections and NURBS
Conic Curves
Rational Quadratic Bezier Forms
Conics as Rational Bezier Curves
Modeling Natural Phenomenon
Fractal Mountains
Orientation and Quaternions
Orientation
Quaternions
Definition of Quaternions
Properties of Quaternions
Unit Quaternions
Rotations and Quaternions
Advantages of Quaternions
Interpolating Unit Quaternions
Animation
Overview
Traditional 2D Cel Animation
2D Cel Animation
Issues in Automated Keyframed Animation
Automated Keyframing
Utility of Key Parameters
Functional Animation
Linear Interpolation
Velocity Control
Spline Interpolation
Spline Types and Animation
Transformation Matrix Animation
Rigid Body Animation
Motion Path Animation
Motion Path Overview
Spline Interpolation Problems
Arc Length Parameterization
Velocity Control
Some Nasty Problems
Real Time Issues
Animating Camera Motion
Overview of Camera Animation
Cinematics of Camera Motion
Terminology of Camera Motion
Specification of Camera Motion
Tools for Shape Animation
Skeletons
Free-Form Deformations
Using FFDs and Skeletons Together
Kinematics and Inverse Kinematics
Kinematics and Inverse Kinematics
Inverse Kinematics
Physically-Based Animation
Physically-Based Animation
Simulation
Spring-Mass Models
Collisions
Alternative
Morphing
Motion Capture
Problems with Motion Capture
Particle Systems
Assignments
Assignment 0: Introduction
Assignment 0
Assignment 1: Introduction to OpenGL
Assignment 1
Assignment 2: Frames and Perspective
Assignment 2
Models and Coordinate Frames
Features
Assignment 3: Hierarchical Modelling
Assignment 3
Assignment 4: A Raytracer
Assignment 4
Additional Feature Requirement
Assignment 5: The Project
Assignment 5: The Project
Tcl, Tk and Gn
Tcl: A Generic Command Language
Syntax Summary
Tcl Example
Tcl Parsing and Interpretation
Scripts
Variable Substitution
Expressions
Command Substitution
Quoting
Control Structures
Procedures
Lists
Additional Tcl Details
Creating Tcl Extensions in C
Tk: A User Interface Tcl Extension
Widgets and User Interaction
Hello World in Tk
An Extended Tk Example
About this document ...
CS488/688: Introduction to Interactive Computer Graphics
University of Waterloo
Computer Graphics Lab
cs488@cgl.uwaterloo.ca