Upload
shirley-justin
View
13
Download
1
Embed Size (px)
Citation preview
3D Viewing Pipeline
Instructor – Stephen J. Guy
10/6/20101
Overview
10/6/20102
Review
Linear Transformations & Homogeneous coordinates
Scene Graph
3D Polygon rendering
Graphics Pipeline
Viewing Transformation
Overview
10/6/20103
Review
Linear Transformations & Homogeneous coordinates
Scene Graph
3D Polygon rendering
Graphics Pipeline
Viewing Transformation
Reviewing Transforms
10/6/20104
Linear Transformations
Scale
Rotate
Shear
Mirror
Review – Homogeneous Coordinates
10/6/20105
Use 3 coordinates for a 2D point (4 coord. for 3D point)
(x,y,w) represents
(x,y,0) represents
(0,0,0) …
a point at (x/w, y/w)
a point at infinity
not allowed!
(2,1,1) or (4,2,2,) or (6,3,3) …
Review – Translating and More
10/6/20106
Basic 2D Transformations as 3x3
Review – 3D Transforms
10/6/20107
Homogenous coordinates (x,y,z,w)
4x4 transformation matrix
Review – Basic 3D Transforms
10/6/20108
Review – 3D Rotations
10/6/20109
Review – Transformation Hierarchies
10/6/201010
Successively applied matrixes
Stored in a DAG == Scene Graph
Examples
Robot Arm
Articulated Characters
Complex Scenes
Transform Example - Robot Arms
10/6/201011
Example – Humanoid Character
10/6/201012
Example – Complex Scenes
10/6/201013
Example – Complex Scene Graph
10/6/201014
Ray Casting with Hierarchies
10/6/201015
Overview
10/6/201016
Review
Linear Transformations & Homogeneous coordinates
Scene Graph
3D Polygon rendering
Graphics Pipeline
Viewing Transformation
3D Polygon Rendering
Many applications make use if 3D polygons with
direct illumination
10/6/201017
3D Polygon Rendering - Examples
10/6/201018
Quake II(Id Software)
3D Polygon Rendering - Examples
10/6/201019
Architectural Walkthrough
Ray Casting Revisiting
10/6/201020
For each sample
Construct ray though pixel
Find first surface intersected by ray through pixel
Compute color of sample based on surface radiance
More Efficient Algorithms
Utilize Spatial Coherence!
3D Polygon Rendering
10/6/201021
What steps are necessary to utilize spatial
coherence while drawing polygons on a 2D image?
3D Rendering Pipeline (direct illumination only)
A pipelined sequence of operations
to draw a 3D primitive onto a 2D
image
Modeling
Transformation
Lighting
Viewing
Transformation
Projection
Transformation
Clipping
Scan
Conversion
3D Geometric Primitives
Image10/6/201022
OpenGL Example
glBegin(GL_POLYGON);
glVertex3f(0.0, 0.0, 0.0);
glVertex3f(1.0, 0.0, 0.0);
glVertex3f(1.0, 1.0, 1.0);
glVertex3f(0.0, 1.0, 1.0);
glEnd();
Modeling
Transformation
Lighting
Viewing
Transformation
Projection
Transformation
Clipping
Scan
Conversion
Image
OpenGL runs the 3D
rendering pipeline for
each polygon
10/6/201023
3D Rendering Pipeline (direct illumination only)
Transform in 3D word coordinate systemModeling
Transformation
Lighting
Viewing
Transformation
Projection
Transformation
Clipping
Scan
Conversion
3D Geometric Primitives
Image10/6/201024
3D Rendering Pipeline (direct illumination only)
Transform in 3D word coordinate systemModeling
Transformation
Lighting
Viewing
Transformation
Projection
Transformation
Clipping
Scan
Conversion
3D Geometric Primitives
Image
Illuminate according to lighting and reflectance
10/6/201025
3D Rendering Pipeline (direct illumination only)
Transform in 3D word coordinate systemModeling
Transformation
Lighting
Viewing
Transformation
Projection
Transformation
Clipping
Scan
Conversion
3D Geometric Primitives
Image
Illuminate according to lighting and reflectance
Transform into 3D camera coordinate system
10/6/201026
3D Rendering Pipeline (direct illumination only)
Transform in 3D word coordinate systemModeling
Transformation
Lighting
Viewing
Transformation
Projection
Transformation
Clipping
Scan
Conversion
3D Geometric Primitives
Image
Illuminate according to lighting and reflectance
Transform into 3D camera coordinate system
Transform into 2D screen coordinate system
10/6/201027
3D Rendering Pipeline (direct illumination only)
Transform in 3D word coordinate systemModeling
Transformation
Lighting
Viewing
Transformation
Projection
Transformation
Clipping
Scan
Conversion
3D Geometric Primitives
Image
Illuminate according to lighting and reflectance
Transform into 3D camera coordinate system
Transform into 2D screen coordinate system
Clip primitives outside camera’s view
10/6/201028
3D Rendering Pipeline (direct illumination only)
Transform in 3D word coordinate systemModeling
Transformation
Lighting
Viewing
Transformation
Projection
Transformation
Clipping
Scan
Conversion
3D Geometric Primitives
Image
Illuminate according to lighting and reflectance
Transform into 3D camera coordinate system
Transform into 2D screen coordinate system
Clip primitives outside camera’s view
Draw Pixels (also texturing, hidden surface, …)
10/6/201029
3D Rendering Pipeline (direct illumination only)
Transform in 3D word coordinate systemModeling
Transformation
Lighting
Viewing
Transformation
Projection
Transformation
Clipping
Scan
Conversion
3D Geometric Primitives
Image
Illuminate according to lighting and reflectance
Transform into 3D camera coordinate system
Transform into 2D screen coordinate system
Clip primitives outside camera’s view
Draw Pixels (also texturing, hidden surface, …)
10/6/201030
3D Rendering Pipeline (direct illumination only)
Transform in 3D word coordinate systemModeling
Transformation
Lighting
Viewing
Transformation
Projection
Transformation
Clipping
Scan
Conversion
3D Geometric Primitives
Image
Illuminate according to lighting and reflectance
Transform into 3D camera coordinate system
Transform into 2D screen coordinate system
Clip primitives outside camera’s view
Draw Pixels (also texturing, hidden surface, …)
10/6/201031
Transformations
Transformations map points
from one coordinate system to
anotherModeling
Transformation
Viewing
Transformation
Projection
Transformation
Window-to-Viewport
Transformation
p(x,y,z)
p'(x’,y’)
3D Camera
Coordinates
3D Object
Coordinates
3D World
Coordinates
3D Object Coordinates
3D World Coordinates
3D Camera Coordinates
2D Screen Coordinates
2D Image Coordinates
10/6/201032
Viewing Transformations
Viewing Transformations
Modeling
Transformation
Viewing
Transformation
Projection
Transformation
Window-to-Viewport
Transformation
p(x,y,z)
p'(x’,y’)
3D Object Coordinates
3D World Coordinates
3D Camera Coordinates
2D Screen Coordinates
2D Image Coordinates
10/6/201033
Camera Coordinates
10/6/201034
Canonical coordinate system
Convention is right-handed (looking down z-axis)
Convenient for projection, clipping, etc
Viewing Transformation
10/6/201035
Mapping from world to camera coordinates
Eye position maps to origin
Right vector maps to X-axis
Up vector maps to Y-axis
Back vector maps to Z-axis
Finding the Viewing Transformation
10/6/201036
We have the camera (in world coordinates)
We want T taking objects from world to camera
Trick: Find T-1 taking objects from camera to world
Pc = T * PW
PW = T * Pc
Finding the Viewing Transformation
10/6/201037
Viewing Transformations
Viewing Transformations
Modeling
Transformation
Viewing
Transformation
Projection
Transformation
Window-to-Viewport
Transformation
p(x,y,z)
p'(x’,y’)
3D Object Coordinates
3D World Coordinates
3D Camera Coordinates
2D Screen Coordinates
2D Image Coordinates
10/6/201038
Projection
10/6/201039
General definition:
Transform points in n-space to m-space (m<n)
In computer graphics
Map 3D camera coordinates to 2D screen coordinates
Taxonomy of Projections
10/6/201040
Taxonomy of Projections
10/6/201041
Parallel Projection
10/6/201042
Center of projection is at infinity
Direction of Projection (DOP) is same for all points
Orthographic Projection
10/6/201043
DOP Parallel to View Plane
Oblique Projection
10/6/201044
DOP not perpendicular to view plane
Oblique Projection
10/6/201045
Examples
Oblique Cabinet
Cavalier Fortification Diagrams
Orthographic Perspective in Games
10/6/201046
Common in pre-hardware card Graphics
Parallel Projection View Volume
10/6/201047
Orthographic Project Matrix
10/6/201048
Straight on projection… throw away Z
What does the matrix look like?
Parallel Projection Matrix
10/6/201049
Taxonomy of Projections
10/6/201050
Perspective Projection
10/6/201051
Perspective View Volume
10/6/201052
Camera to Screen
10/6/201053
Remember: Object -> Camera -> Screen
Just like raytracer
“screen” is the z=d plane for some constant d
Origin of screen coordinate is (0,0,d)
Its x and y axes are parallel to the x and y axes of
the eye coordinate system
All these coordinates are in camera space
Overhead view of our screen
10/6/201054
The Perspective Matrix
10/6/201055
This “division by z” can be accomplished by a 4x4
matrix too!
What happens to the point (x,y,z,1)
What’s this in non-homogenous coordinates?
What’s Next?
Transform in 3D word coordinate systemModeling
Transformation
Lighting
Viewing
Transformation
Projection
Transformation
Clipping
Scan
Conversion
3D Geometric Primitives
Image
Illuminate according to lighting and reflectance
Transform into 3D camera coordinate system
Transform into 2D screen coordinate system
Clip primitives outside camera’s view
Draw Pixels (also texturing, hidden surface, …)
10/6/201056
What’s Next?
Transform in 3D word coordinate systemModeling
Transformation
Lighting
Viewing
Transformation
Projection
Transformation
Clipping
Scan
Conversion
3D Geometric Primitives
Image
Illuminate according to lighting and reflectance
Transform into 3D camera coordinate system
Transform into 2D screen coordinate system
Clip primitives outside camera’s view
Draw Pixels (also texturing, hidden surface, …)
10/6/201057