Advanced Computer Graphics
Thomas Funkhouser Princeton University C0S 526, Fall 2002
Overview
Introduction
What is this course about?
Review
What background will I need? What will I learn in this course?
Syllabus Mechanics
How with the course work?
Introduction
What is computer graphics?
Imaging = representing 2D images Modeling = representing 3D objects Rendering = constructing 2D images from 3D models Animation = simulating changes over time
Background
Image Processing
Basic signal processing Filtering, resampling, warping, ...
Rendering
Polygon rendering pipeline Ray tracing Basic 3D object representations Polygonal meshes
Modeling
Animation
Basic principles
Background
Image Processing
Basic signal processing Filtering, resampling, warping, ...
Rendering
Polygon rendering pipeline OpenGL Basic 3D object representations Polygonal meshes
Input signal
Modeling
Sampled signal
Animation
Basic principles Reconstructed signal
Background
Image Processing
Basic signal processing Filtering, resampling, warping, ...
3D Geometric Primitives Modeling Transformation Lighting Viewing Transformation Projection Transformation Clipping Scan Conversion Image
Rendering
Polygon rendering pipeline Ray tracing Basic 3D object representations Polygonal meshes
Modeling
Animation
Basic principles
Background
Image Processing
Basic signal processing Filtering, resampling, warping, ...
Rendering
Polygon rendering pipeline Ray tracing Basic 3D object representations Polygonal meshes
Modeling
Animation
Basic principles
Background
Image Processing
Basic signal processing Filtering, resampling, warping, ...
Rendering
Polygon rendering pipeline Ray tracing Basic 3D object representations Polygonal meshes
Modeling
Animation
Basic principles
Angel, Plate I
CS526 Syllabus
Rendering
Lighting models Global Illumination Visibility Image-based rendering
Modeling
Polygonal meshes Spline & subdivision surfaces Volumetric representations Kinematics Passive dynamics Active dynamics
Animation
CS526 Syllabus
Rendering
Radiometry Direct Illumination Lighting models BRDFs Global Illumination Visibility Image-based rendering Polygonal meshes Spline & subdivision surfaces Volumetric representations Kinematics Passive dynamics Active dynamics
Modeling
Animation
Greenberg et al.
CS526 Syllabus
Rendering
Lighting models Global Illumination Visibility Image-based rendering
Monte Carlo path tracing Radiosity
Modeling
Polygonal meshes Spline & subdivision surfaces Volumetric representations Kinematics Passive dynamics Active dynamics
Animation
Jensen
CS526 Syllabus
Rendering
Lighting models Global Illumination Visibility Image-based rendering
Shadow algorithms Discontinuity meshing Visibility skeleton
Modeling
Polygonal meshes Spline & subdivision surfaces Volumetric representations Kinematics Passive dynamics Active dynamics
Animation
Drettakis
CS526 Syllabus
Rendering
Lighting models Global Illumination Visibility Image-based rendering
Modeling
Plenoptic function Light fields & lumigraphs Imposters
Polygonal meshes Spline & subdivision surfaces Volumetric representations Kinematics Passive dynamics Active dynamics
(,) (x,y,z)
Animation
CS526 Syllabus
Rendering
Lighting models Global Illumination Visibility Image-based rendering Polygonal meshes Spline & subdivision surfaces Volumetric representations Kinematics Passive dynamics Active dynamics
Modeling
Representation Simplification Manipulation
Animation
Hoppe
CS526 Syllabus
Rendering
Lighting models Global Illumination Visibility Image-based rendering
Modeling
Polygonal meshes Spline & subdivision surfaces Volumetric representations Kinematics Passive dynamics Active dynamics
FvDFH Figure 11.43
Topology Continuity
Animation
Zorin & Shroeder
CS526 Syllabus
Rendering
Lighting models Global Illumination Visibility Image-based rendering Polygonal meshes Spline & subdivision surfaces Volumetric representations Kinematics Passive dynamics Active dynamics
Modeling
Turk
Animation
Implicits Voxels BSPs
CS526 Syllabus
Rendering
Lighting models Global Illumination Visibility Image-based rendering
Modeling
Polygonal meshes Spline & subdivision surfaces Volumetric representations Kinematics Passive dynamics Active dynamics
Gleicher et al.
Animation
Articulated figures Motion capture Inverse kinematics
CS526 Syllabus
Rendering
Lighting models Global Illumination Visibility Image-based rendering Polygonal meshes Spline & subdivision surfaces Volumetric representations
Fedkiw
Modeling
Animation
Kinematics Passive dynamics Active dynamics
Particle systems Spring-mass systems
CS526 Syllabus
Rendering
Lighting models Global Illumination Visibility Image-based rendering
Modeling
Polygonal meshes Spline & subdivision surfaces Volumetric representations Kinematics Passive dynamics Active dynamics
Gleicher et al.
Animation
Controllers Learning Planning
Hodgins et al.
Coursework
Class participation
Do the readings Contribute ideas in class 2-4PM on Friday Nov 22 Answer written questions Write code Do something cool!
Midterm exam Thought exercises Programming assignments Final project
10
Readings
Book
Alan Watt and Mark Watt, Advanced Animation and Rendering Techniques, ACM Press, 1992.
Papers
Both classical and recent research papers Assigned for almost every lecture Course web page has list and pdfs Related papers Course notes Software
Resources
Class Participation
Contribute ideas in class
Do the readings before class J
Lecture snipet
10 minute presentation at end of class on some method or idea or algorithm that everybody should know Choose something that interests you!
11
Thought Exercises
Written homeworks
Two or three questions Some specific questions Some open-ended questions
Schedule
Five times during semester Due at midnight on Sundays The first one will be available Sunday PM and due one week later
Programming Assignments
Write small programs
MS Visual Studio C++ infrastructure code will be provided
Schedule
Monte Carlo path tracer (due 10/14) Progressive mesh viewer (due 11/18) Individual work Rules are same as CS426
Collaboration
Art contest
Free points
Percy
12
Final Projects
Do something cool!
Get started on your research
Schedule
Due in Jan 2003
Conclusion
Course web page:
http://www.cs.princeton.edu/courses/cs526/index.html
13