Upload
isaac-dickerson
View
237
Download
2
Embed Size (px)
Citation preview
Graphics
cgvr.korea.ac.kr Graphics Lab @ Korea University
3D Viewing
고려대학교 컴퓨터 그래픽스 연구실
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
3d Rendering Pipeline
Model TransformationModel Transformation
LightingLighting
Viewing TransformationViewing Transformation
Projection TransformationProjection Transformation
ClippingClipping
Viewport TransformationViewport Transformation
Scan ConversionScan Conversion
3D Primitives
Image
This is a pipelined sequence of operations to draw a 3D primitive into a
2D image for direct illumination
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
In Pipeline
Transform into3d world coordinate system
Model TransformationModel Transformation
LightingLighting
Viewing TransformationViewing Transformation
Projection TransformationProjection Transformation
ClippingClipping
Viewport TransformationViewport Transformation
Scan ConversionScan Conversion
Image
3D Primitives
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
In Pipeline
Transform into3d world coordinate system
Model TransformationModel Transformation
LightingLighting
Viewing TransformationViewing Transformation
Projection TransformationProjection Transformation
ClippingClipping
Viewport TransformationViewport Transformation
Scan ConversionScan Conversion
Image
Illustrate according to lighting and reflectance
3D Primitives
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
In Pipeline
Transform into3d world coordinate system
Model TransformationModel Transformation
LightingLighting
Viewing TransformationViewing Transformation
Projection TransformationProjection Transformation
ClippingClipping
Viewport TransformationViewport Transformation
Scan ConversionScan Conversion
Image
Illustrate according to lighting and reflectance
Transform into 3D viewing coordinate system
3D Primitives
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
In Pipeline
Transform into3d world coordinate system
Model TransformationModel Transformation
LightingLighting
Viewing TransformationViewing Transformation
Projection TransformationProjection Transformation
ClippingClipping
Viewport TransformationViewport Transformation
Scan ConversionScan Conversion
Image
Illustrate according to lighting and reflectance
Transform into 3D viewing coordinate system
Transform into 2D viewing coordinate system
3D Primitives
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
In Pipeline
Transform into3d world coordinate system
Model TransformationModel Transformation
LightingLighting
Viewing TransformationViewing Transformation
Projection TransformationProjection Transformation
ClippingClipping
Viewport TransformationViewport Transformation
Scan ConversionScan Conversion
Image
Illustrate according to lighting and reflectance
Transform into 3D viewing coordinate system
Transform into 2D viewing coordinate system
Clip primitives outside window’s view
3D Primitives
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
In Pipeline
Transform into3d world coordinate system
Model TransformationModel Transformation
LightingLighting
Viewing TransformationViewing Transformation
Projection TransformationProjection Transformation
ClippingClipping
Viewport TransformationViewport Transformation
Scan ConversionScan Conversion
Image
Illustrate according to lighting and reflectance
Transform into 3D viewing coordinate system
Transform into 2D viewing coordinate system
Clip primitives outside window’s view
Transform into viewport
3D Primitives
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
In Pipeline
Transform into3d world coordinate system
Model TransformationModel Transformation
LightingLighting
Viewing TransformationViewing Transformation
Projection TransformationProjection Transformation
ClippingClipping
Viewport TransformationViewport Transformation
Scan ConversionScan Conversion
Image
Illustrate according to lighting and reflectance
Transform into 3D viewing coordinate system
Transform into 2D viewing coordinate system
Clip primitives outside window’s view
Transform into viewport
Draw pixels(includes texturing, hidden surface etc.)
3D Primitives
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Transformation
Transform into3d world coordinate system
Model TransformationModel Transformation
LightingLighting
Viewing TransformationViewing Transformation
Projection TransformationProjection Transformation
ClippingClipping
Viewport TransformationViewport Transformation
Scan ConversionScan Conversion
Image
Illustrate according to lighting and reflectance
Transform into 3D viewing coordinate system
Transform into 2D viewing coordinate system
Clip primitives outside window’s view
Transform into viewport
Draw pixels(includes texturing, hidden surface etc.)
3D Primitives
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Transformation
3D Object Coordinate
Model TransformationModel Transformation
Viewing TransformationViewing Transformation
Projection TransformationProjection Transformation
Viewport TransformationViewport Transformation
p(x’, y’)
P(x, y, z)
3D World Coordinate
3D Viewing Coordinate
2D Projection Coordinate
2D Device Coordinate
3D Viewing Coordinate
3D Object Coordinate
3D World Coordinate
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Viewing Transformation
3D Object Coordinate
Model TransformationModel Transformation
Viewing TransformationViewing Transformation
Projection TransformationProjection Transformation
Viewport TransformationViewport Transformation
p(x’, y’)
P(x, y, z)
3D World Coordinate Viewing
Transformation 3D Viewing Coordinate
2D Projection Coordinate
2D Device Coordinate
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Viewing Transformation
Mapping from world to Viewing coordinates Origin moves to eye position Up vector maps to Y axis Right vector maps to X axis
X
Y
ZCamera
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Transformation from WC to VC
Transformation sequences
1. Translate the view reference point to the origin of the
WC system
2. Apply rotations to align the xv, yv, and zv axes with the world axes
General sequence of translate-rotate transformation
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Transformation from WC to VC (cont’)
Translation view reference point(x0, y0, z0)
Rotation rotate around the world xw axis to bring zv into the xwz
w plane rotate around the world yw axis to align the zw and zv
axis final rotation is about the zw axis to align the yw and yv
axis
1000
100
010
001
0
0
0
z
y
x
T
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Transformation from WC to VC (cont’)
Rotation by uvn system Calculate unit uvn vectors
N : view-plane normal vector V : view-up vector U : perpendicular to both N and V
Form the composite rotation matrix
321
321
321
, ,
, ,
, ,
vvv
uuu
nnn
unv
NV
NVu
N
Nn
1000
0
0
0
321
321
321
nnn
vvv
uuu
R TRM VCWC ,
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Camera Models
The most common model is pin-hole camera All captured light rays arrive along paths toward focal
point without lens distortion (everything is in focus) Sensor response proportional to radiance
Other models consider… Depth of field Motion blur Lens distortion
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Viewing Parameters
Position Eye position(px, py, pz)
Orientation View direction(dx, dy, dz) Up direction(ux, uy, uz)
Aperture Field of view(xfov, yfov)
Film plane “look at” point View plane normal
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Viewing Coordinate
Canonical coordinate system Convention is right-handed (looking down – z axis) Convention for projection, clipping, etc.
X
Y
Viewing up vector maps to Y axis
Viewing right vector maps to X axis
Viewing back vector maps to Z axis (potting out of page)
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Viewing Transformation
Transformation matrix maps camera basis vectors to canonical vectors in viewing coordinate system
Right
UpBack
Eye(0, 0, 1)
(0, 1, 0)
(1, 0, 0)
Matrix
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Viewing Transformation
3D Object Coordinate
Model TransformationModel Transformation
Viewing TransformationViewing Transformation
Projection TransformationProjection Transformation
Viewport TransformationViewport Transformation
p(x’, y’)
P(x, y, z)
3D World Coordinate
Projection
Transformation
3D Viewing Coordinate
2D Projection Coordinate
2D Device Coordinate
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Projection
General definition Transform points in n-space to m-space(m<n)
In computer graphics Map viewing coordinates to 2D screen coordinates
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Taxonomy of Projections
Planar geometric projection
Parallel Perspective
Orthographic Oblique
Top
Front
Side
Axonometric Cabinet
Cavalier
Other
One-point
Two-point
Three-point
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Parallel & Perspective
Parallel Projection
Perspective Projection
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Taxonomy of Projections
Planar geometric projection
Parallel Perspective
Orthographic Oblique
Top
Front
Side
Axonometric Cabinet
Cavalier
Other
One-point
Two-point
Three-point
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Parallel Projection
Center of projection is at infinity Direction of projection (DOP) same for all points
View Plane
DOP
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Taxonomy of Projections
Planar geometric projection
Parallel Perspective
Orthographic Oblique
Top
Front
Side
Axonometric Cabinet
Cavalier
Other
One-point
Two-point
Three-point
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Parallel Projection View Volume
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Orthographic & Oblique
Orthographic parallel projection the projection is perpendicular to the view plane
Oblique parallel projection The projectors are inclined with respect to the view
plane
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Orthographic Projections
DOP perpendicular to view plane
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Orthographic Projections
DOP perpendicular to view plane
Front
Top Side
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Orthographic Coordinates
yyxx pp ,
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Oblique Projections
DOP not perpendicular to view plane
Cavalier(DOP at 45 )
Cabinet(DOP at 63.4 )
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Oblique Projections
DOP not perpendicular to view plane Cavalier projection
Cabinet projection 4.63,2tan
45,1tan
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Parallel Projection Matrix
General parallel projection transformation
)sin(
)cos(tan
,tan
sin,cos
1
1
1
Lzyy
Lzxx
zLz
LL
z
LyyLxx
p
p
pp
Where L1 is the inverse of tan α , which is also the value of L when z=1
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Parallel Projection Matrix
General parallel projection transformation
11000
0000
0sin10
0cos01
1
1
z
y
x
L
L
w
z
y
x
p
p
p
p
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Parallel Projection Matrix
1000
0000
0sin10
0cos01
1
1
L
L
parallelM
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Taxonomy of Projections
Planar geometric projection
Parallel Perspective
Orthographic Oblique
Top
Front
Side
Axonometric Cabinet
Cavalier
Other
One-point
Two-point
Three-point
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Perspective Projection
Map points onto “view plane” along “projectors” emanating from “center of projection”(cop)
View PlaneCenter of Projection
Proj
ecto
rs
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Perspective Projection
How many vanishing point?
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Perspective Projection
How many vanishing point?
Three-point
perspective
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Perspective Projection
How many vanishing point?
Three-point
perspective
Two-point perspectiv
e
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Perspective Projection
How many vanishing point?
Three-point
perspective
Two-point perspectiv
e
One-point perspectiv
e
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Perspective Projection View Volume
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Perspective Projection
Compute 2D coordinates from 3D coordinates with similar triangles
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Perspective Projection
Compute 2D coordinates from 3D coordinates with similar triangles
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Perspective Projection Matrix
4x4 matrix representation?
1
p
p
p
p
w
Dz
zyDy
zxDx
1????
????
????
????
z
y
x
w
z
y
x
p
p
p
p
Dzw
zz
yy
xx
p
'
'
'
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Perspective Projection Matrix
4x4 matrix representation?
10100
0100
0010
0001
z
y
x
Dw
z
y
x
p
p
p
p
1
p
p
p
p
w
Dz
zyDy
zxDx
Dzw
zz
yy
xx
p
'
'
'
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Perspective Projection Matrix
11
00
0100
0010
0001
1000
0000
0010
0001
11
00
0000
0010
0001
DD
PERM
Perspective projection
Perspective transformation
Orthographicprojection
1001
0000
0010
0001
x
PER
D
M
101
0
0000
0010
0001
y
PER
D
M
Center of Projection on the x axis Center of Projection on the y axis
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Perspective Projection Matrix
10
0000
0010
0001
or
10
0000
0010
0001
tssr
2-point perspectives
1
0000
0010
0001
tsr
3-point perspectives
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Taxonomy of Projections
Planar geometric projection
Parallel Perspective
Orthographic Oblique
Top
Front
Side
Axonometric Cabinet
Cavalier
Other
One-point
Two-point
Three-point
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Perspective vs. Parallel
Perspective projection+ Size varies inversely with distance – looks realistic
– Distance and angles are not(in general) preserved
– Parallel line do not (in general) remain parallel
Parallel projection + Good for exact measurements
+ Parallel lines remain parallel
– Angles are not (in general) preserved
– Less realistic looking
cgvr.korea.ac.kr
CGVR
Graphics Lab @ Korea University
Classical Viewing