Upload
trankiet
View
214
Download
0
Embed Size (px)
Citation preview
1
CSCI-6962 AdvancedComputer Graphics
CSCI-6962 Advanced Computer Graphics Cutler 2
Luxo Jr.
• Pixar Animation Studios, 1986• Director: John Lasseter
CSCI-6962 Advanced Computer Graphics Cutler 3
Plan
• Introduction
• Overview of the Semester
• Administrivia
• Iterated Function Systems (Fractals)CSCI-6962 Advanced Computer Graphics Cutler 4
Introductions
• Barb [email protected]://www.cs.rpi.edu/~cutler/
http://www.cs.rpi.edu/~cutler/classes/advancedgraphics/F05/info.html
• Who are you?Name, year/degree, graphics background (if any),research interests, & something fun, interesting or unusual about yourself
CSCI-6962 Advanced Computer Graphics Cutler 5
Why Computer Graphics?
• Movies• Games• Simulation• CAD-CAM• Architecture• Virtual Reality• Visualization• Medical Imaging
CSCI-6962 Advanced Computer Graphics Cutler 6
Movies
2
CSCI-6962 Advanced Computer Graphics Cutler 7
Games
CSCI-6962 Advanced Computer Graphics Cutler 8
Simulation
CSCI-6962 Advanced Computer Graphics Cutler 9
CAD-CAM & Design
CSCI-6962 Advanced Computer Graphics Cutler 10
Architecture
CSCI-6962 Advanced Computer Graphics Cutler 11
Virtual Reality
CSCI-6962 Advanced Computer Graphics Cutler 12
Visualization
3
CSCI-6962 Advanced Computer Graphics Cutler 13
Medical Imaging
CSCI-6962 Advanced Computer Graphics Cutler 14
What we will learn in CSCI-6962
• Advanced topics computer graphics algorithms
• How to tackle the challengesin many of the applications just shown
CSCI-6962 Advanced Computer Graphics Cutler 15
What we will NOT cover
• Software packages– CAD-CAM– Photoshop and other painting tools
• Artistic skills• Game design• Graphics API
– Although you will be exposed to OpenGL
CSCI-6962 Advanced Computer Graphics Cutler 16
Questions?
CSCI-6962 Advanced Computer Graphics Cutler 17
Plan
• Introduction
• Overview of the Semester
• Administrivia
• Iterated Function Systems (Fractals)CSCI-6962 Advanced Computer Graphics Cutler 18
Overview of the Semester
• advanced ray tracing: global illumination, photon mapping, subsurface scattering
• mesh generation and simplification
• subdivision surfaces• appearance models
• volumetric modeling• procedural modeling• weathering• simulation: particle
systems, FEM, cloth• texture synthesis • & more …
4
CSCI-6962 Advanced Computer Graphics Cutler 19
Mesh Simplification
Hoppe “Progressive Meshes” SIGGRAPH 1996
CSCI-6962 Advanced Computer Graphics Cutler 20
Mesh Generation & Volumetric Modeling
CSCI-6962 Advanced Computer Graphics Cutler 21
Modeling – Subdivision Surfaces
http://grail.cs.washington.edu/projects/subdivision/
CSCI-6962 Advanced Computer Graphics Cutler 22
Particle system (PDE)
CSCI-6962 Advanced Computer Graphics Cutler 23
Physical Simulation
• Rigid Body Dynamics• Collision Detection• Fracture• Deformation ( )tx
( )tv( )1
b tp
( )3b tp
( )2b tp
( )2 tf
( )3 tf
( )1 tf
CSCI-6962 Advanced Computer Graphics Cutler 24
Ray Casting
• For every pixel construct a ray from the eye – For every object in the scene
• Find intersection with the ray • Keep if closest
5
CSCI-6962 Advanced Computer Graphics Cutler 25
Ray Tracing• Shade (interaction of
light and material)• Secondary rays
(shadows, reflection, refraction)
Original Ray-traced image by Whitted
CSCI-6962 Advanced Computer Graphics Cutler 26
Traditional Ray Tracing
CSCI-6962 Advanced Computer Graphics Cutler 27
Ray Tracing + Soft Shadows
CSCI-6962 Advanced Computer Graphics Cutler 28
Ray Tracing + Caustics
CSCI-6962 Advanced Computer Graphics Cutler 29
Global Illumination
CSCI-6962 Advanced Computer Graphics Cutler 30
Appearance Models
θiθr
φi φr
Henrik Wann Jensen
Matusik
6
CSCI-6962 Advanced Computer Graphics Cutler 31
Subsurface Scattering
Surface
Jensen et.al 01
CSCI-6962 Advanced Computer Graphics Cutler 32
Questions?
CSCI-6962 Advanced Computer Graphics Cutler 33
Plan
• Introduction
• Overview of the Semester
• Administrivia
• Iterated Function Systems (Fractals)CSCI-6962 Advanced Computer Graphics Cutler 34
Prerequisites
• Not enforced• Linear Algebra
– vectors, matrices, basis, solving systems of equations• Algorithms
– Orders of growth, bounds, sorting, trees• All assignments are in C++• Previous coursework or experience in
Computer Graphics an asset
CSCI-6962 Advanced Computer Graphics Cutler 35
Grading Policy
• Assignments: 40%– 4 programming assignments– Must be completed individually
• Final Project: 30%• Quizzes: 15%
– Tuesday, Oct 18th & Tuesday, Nov 17th (in class) • Participation & Presentation: 15%
– Lead discussion of one paper during the semester– Present your final project on Friday Dec 9th (in class)
CSCI-6962 Advanced Computer Graphics Cutler 36
Assignments• Turn in code and executable (Linux or Windows… )• Coding style important
– Be concise & efficient, and comment your code• Collaboration policy:
– You can chat, but code on your own– Acknowledge your collaborators!
• Late policy:– Due Thursdays @ 11:59pm– Penalized 25% per day late– Extensions considered only if requested >1 week
before due date
7
CSCI-6962 Advanced Computer Graphics Cutler 37
Final Project
• ~ 1 month effort• Significant extension of previous assignment OR
Exploration of other topic discussed in class• Can be a component of a research project
outside of class• Suggestions throughout the semester• I'll review your proposal to make sure
the scope is appropriate
CSCI-6962 Advanced Computer Graphics Cutler 38
Office Hours
• Tuesdays & Fridays @ 1:30 (after lecture)• Send email to make an appointment
for some other time
CSCI-6962 Advanced Computer Graphics Cutler 39
Questions
CSCI-6962 Advanced Computer Graphics Cutler 40
Plan
• Introduction
• Overview of the Semester
• Administrivia
• Iterated Function Systems (Fractals)
CSCI-6962 Advanced Computer Graphics Cutler 41
Iterated Function Systems (IFS)
• Capture self-similarity• Contraction
(reduce distances)• An attractor is a
fixed point
Υ )(AfA i=
CSCI-6962 Advanced Computer Graphics Cutler 42
Example: Sierpinski Triangle• Described by a set of n affine transformations • In this case, n = 3
– translate & scale by 0.5
8
CSCI-6962 Advanced Computer Graphics Cutler 43
Example: Sierpinski Trianglefor “lots” of random input points (x0, y0)
for j=0 to num_iters
randomly pick transformation i
(xk+1, yk+1) = fi (xk, yk)
display (xk, yk)
CSCI-6962 Advanced Computer Graphics Cutler 44
Example: Sierpinski Trianglefor “lots” of random input points (x0, y0)
for j=0 to num_iters
randomly pick transformation i
(xk+1, yk+1) = fi (xk, yk)
display (xk, yk)
CSCI-6962 Advanced Computer Graphics Cutler 45
Example: Sierpinski Trianglefor “lots” of random input points (x0, y0)
for j=0 to num_iters
randomly pick transformation i
(xk+1, yk+1) = fi (xk, yk)
display (xk, yk)
CSCI-6962 Advanced Computer Graphics Cutler 46
Example: Sierpinski Trianglefor “lots” of random input points (x0, y0)
for j=0 to num_iters
randomly pick transformation i
(xk+1, yk+1) = fi (xk, yk)
display (xk, yk)
CSCI-6962 Advanced Computer Graphics Cutler 47
Example: Sierpinski Trianglefor “lots” of random input points (x0, y0)
for j=0 to num_iters
randomly pick transformation i
(xk+1, yk+1) = fi (xk, yk)
display (xk, yk)
CSCI-6962 Advanced Computer Graphics Cutler 48
for “lots” of random input points (x0, y0)
for j=0 to num_iters
randomly pick transformation i
(xk+1, yk+1) = fi (xk, yk)
display (xk, yk)
Example: Sierpinski Triangle
9
CSCI-6962 Advanced Computer Graphics Cutler 49
for “lots” of random input points (x0, y0)
for j=0 to num_iters
randomly pick transformation i
(xk+1, yk+1) = fi (xk, yk)
display (xk, yk)
Example: Sierpinski Triangle
CSCI-6962 Advanced Computer Graphics Cutler 50
Example: Sierpinski Trianglefor “lots” of random input points (x0, y0)
for j=0 to num_iters
randomly pick transformation i
(xk+1, yk+1) = fi (xk, yk)
display (xk, yk)
CSCI-6962 Advanced Computer Graphics Cutler 51
Example: Sierpinski Trianglefor “lots” of random input points (x0, y0)
for j=0 to num_iters
randomly pick transformation i
(xk+1, yk+1) = fi (xk, yk)
display (xk, yk)
Increasing the number of iterations
CSCI-6962 Advanced Computer Graphics Cutler 52
Another IFS: The Dragon
CSCI-6962 Advanced Computer Graphics Cutler 53
3D IFS in OpenGL
GL_QUADS
GL_POINTS
CSCI-6962 Advanced Computer Graphics Cutler 54
Application: Fractal Compression
• Exploit the self-similarity in an image
Compressed using Fractal Photo Lab
10
CSCI-6962 Advanced Computer Graphics Cutler 55
Assignment 1: OpenGL Warmup
• Get familiar with:– C++ environment– OpenGL– Transformations– simple Vector, Matrix
& Image classes• Have Fun!
• Due Thursday Sept 8th at 11:59pm
CSCI-6962 Advanced Computer Graphics Cutler 56
Questions?