http://www.ugrad.cs.ubc.ca/~cs314/Vjan2010 - PowerPoint PPT Presentation

About This Presentation
Title:

http://www.ugrad.cs.ubc.ca/~cs314/Vjan2010

Description:

Viewing III Week 4, Wed Jan 27 http://www.ugrad.cs.ubc.ca/~cs314/Vjan2010 – PowerPoint PPT presentation

Number of Views:125
Avg rating:3.0/5.0
Slides: 55
Provided by: ubc52
Category:

less

Transcript and Presenter's Notes

Title: http://www.ugrad.cs.ubc.ca/~cs314/Vjan2010


1
Viewing IIIWeek 4, Wed Jan 27
  • http//www.ugrad.cs.ubc.ca/cs314/Vjan2010

2
News
  • extra TA office hours in lab 005
  • Tue 2-5 (Kai)
  • Wed 2-5 (Garrett)
  • Thu 1-3 (Garrett), Thu 3-5 (Kai)
  • Fri 2-4 (Garrett)
  • Tamara's usual office hours in lab
  • Fri 4-5

3
Review Convenient Camera Motion
  • rotate/translate/scale versus
  • eye point, gaze/lookat direction, up vector

y
lookat
Pref
x
WCS
view
up
z
eye
Peye
4
Review World to View Coordinates
  • translate eye to origin
  • rotate view vector (lookat eye) to w axis
  • rotate around w to bring up into vw-plane

5
Review W2V vs. V2W
  • MW2VTR
  • we derived position of camera in world
  • invert for world with respect to camera
  • MV2W(MW2V)-1R-1T-1

6
Review Graphics Cameras
  • real pinhole camera image inverted

eye point
image plane
  • computer graphics camera convenient equivalent

eye point
center of projection
image plane
7
Review Projective Transformations
  • planar geometric projections
  • planar onto a plane
  • geometric using straight lines
  • projections 3D -gt 2D
  • aka projective mappings
  • counterexamples?

8
Projective Transformations
  • properties
  • lines mapped to lines and triangles to triangles
  • parallel lines do NOT remain parallel
  • e.g. rails vanishing at infinity
  • affine combinations are NOT preserved
  • e.g. center of a line does not map to center of
    projected line (perspective foreshortening)

9
Perspective Projection
  • project all geometry
  • through common center of projection (eye point)
  • onto an image plane

x
y
z
z
x
x
10
Perspective Projection
projectionplane
center of projection (eye point)
how tall shouldthis bunny be?
11
Basic Perspective Projection
similar triangles
P(x,y,z)
y
P(x,y,z)
z
zd
but
  • nonuniform foreshortening
  • not affine

12
Perspective Projection
  • desired result for a point x, y, z, 1T
    projected onto the view plane
  • what could a matrix look like to do this?

13
Simple Perspective Projection Matrix
14
Simple Perspective Projection Matrix
is homogenized version of where w z/d
15
Simple Perspective Projection Matrix
is homogenized version of where w z/d
16
Perspective Projection
  • expressible with 4x4 homogeneous matrix
  • use previously untouched bottom row
  • perspective projection is irreversible
  • many 3D points can be mapped to same (x, y, d)
    on the projection plane
  • no way to retrieve the unique z values

17
Moving COP to Infinity
  • as COP moves away, lines approach parallel
  • when COP at infinity, orthographic view

18
Orthographic Camera Projection
  • cameras back plane parallel to lens
  • infinite focal length
  • no perspective convergence
  • just throw away z values

19
Perspective to Orthographic
  • transformation of space
  • center of projection moves to infinity
  • view volume transformed
  • from frustum (truncated pyramid) to
    parallelepiped (box)

x
x
Frustum
Parallelepiped
-z
-z
20
View Volumes
  • specifies field-of-view, used for clipping
  • restricts domain of z stored for visibility test

z
21
Canonical View Volumes
  • standardized viewing volume representation
  • perspective orthographic
  • orthogonal
  • parallel

x or y
x or y /- z
backplane
x or y
backplane
1
frontplane
frontplane
-z
-1
-z
-1
22
Why Canonical View Volumes?
  • permits standardization
  • clipping
  • easier to determine if an arbitrary point is
    enclosed in volume with canonical view volume vs.
    clipping to six arbitrary planes
  • rendering
  • projection and rasterization algorithms can be
    reused

23
Normalized Device Coordinates
  • convention
  • viewing frustum mapped to specific parallelepiped
  • Normalized Device Coordinates (NDC)
  • same as clipping coords
  • only objects inside the parallelepiped get
    rendered
  • which parallelepiped?
  • depends on rendering system

24
Normalized Device Coordinates
  • left/right x /- 1, top/bottom y /- 1,
    near/far z /- 1

NDC
Camera coordinates
x
x
x1
right
Frustum
-z
z
left
x -1
z1
z -1
z-n
z-f
25
Understanding Z
  • z axis flip changes coord system handedness
  • RHS before projection (eye/view coords)
  • LHS after projection (clip, norm device coords)

VCS
NDCS
ytop
y
(1,1,1)
xleft
y
z
(-1,-1,-1)
z
x
xright
x
z-far
ybottom
z-near
26
Understanding Z
  • near, far always positive in OpenGL calls
  • glOrtho(left,right,bot,top,near,far)
  • glFrustum(left,right,bot,top,near,far)
  • glPerspective(fovy,aspect,near,far)

orthographic view volume
ytop
xleft
y
z
xright
VCS
x
z-far
ybottom
z-near
27
Understanding Z
  • why near and far plane?
  • near plane
  • avoid singularity (division by zero, or very
    small numbers)
  • far plane
  • store depth in fixed-point representation
    (integer), thus have to have fixed range of
    values (01)
  • avoid/reduce numerical precision artifacts for
    distant objects

28
Orthographic Derivation
  • scale, translate, reflect for new coord sys

VCS
ytop
xleft
y
z
xright
x
z-far
ybottom
z-near
29
Orthographic Derivation
  • scale, translate, reflect for new coord sys

VCS
ytop
xleft
y
z
xright
x
z-far
ybottom
z-near
30
Orthographic Derivation
  • scale, translate, reflect for new coord sys

31
Orthographic Derivation
  • scale, translate, reflect for new coord sys

VCS
ytop
xleft
y
z
xright
x
z-far
ybottom
z-near
same idea for right/left, far/near
32
Orthographic Derivation
  • scale, translate, reflect for new coord sys

33
Orthographic Derivation
  • scale, translate, reflect for new coord sys

34
Orthographic Derivation
  • scale, translate, reflect for new coord sys

35
Orthographic Derivation
  • scale, translate, reflect for new coord sys

36
Orthographic OpenGL
glMatrixMode(GL_PROJECTION) glLoadIdentity() glO
rtho(left,right,bot,top,near,far)
37
Demo
  • Brown applets viewing techniques
  • parallel/orthographic cameras
  • projection cameras
  • http//www.cs.brown.edu/exploratories/freeSoftware
    /catalogs/viewing_techniques.html

38
Projections II
39
Asymmetric Frusta
  • our formulation allows asymmetry
  • why bother?

x
x
right
right
Frustum
Frustum
-z
-z
left
left
z-n
z-f
40
Asymmetric Frusta
  • our formulation allows asymmetry
  • why bother? binocular stereo
  • view vector not perpendicular to view plane

Left Eye
Right Eye
41
Simpler Formulation
  • left, right, bottom, top, near, far
  • nonintuitive
  • often overkill
  • look through window center
  • symmetric frustum
  • constraints
  • left -right, bottom -top

42
Field-of-View Formulation
  • FOV in one direction aspect ratio (w/h)
  • determines FOV in other direction
  • also set near, far (reasonably intuitive)

x
w
fovx/2
h
Frustum
-z
?
fovy/2
z-n
z-f
43
Perspective OpenGL
glMatrixMode(GL_PROJECTION) glLoadIdentity() gl
Frustum(left,right,bot,top,near,far)
or glPerspective(fovy,aspect,near,far)
44
Demo Frustum vs. FOV
  • Nate Robins tutorial (take 2)
  • http//www.xmission.com/nate/tutors.html

45
Projective Rendering Pipeline
object
world
viewing
O2W
W2V
V2C
VCS
OCS
WCS
clipping
C2N
CCS
  • OCS - object/model coordinate system
  • WCS - world coordinate system
  • VCS - viewing/camera/eye coordinate system
  • CCS - clipping coordinate system
  • NDCS - normalized device coordinate system
  • DCS - device/display/screen coordinate system

perspectivedivide
normalized device
N2D
NDCS
device
DCS
46
Projection Warp
  • warp perspective view volume to orthogonal view
    volume
  • render all scenes with orthographic projection!
  • aka perspective warp

x
x
zd
zd
z0
z?
47
Perspective Warp
  • perspective viewing frustum transformed to cube
  • orthographic rendering of cube produces same
    image as perspective rendering of original frustum

48
Predistortion
49
Projective Rendering Pipeline
object
world
viewing
O2W
W2V
V2C
VCS
OCS
WCS
clipping
C2N
CCS
  • OCS - object/model coordinate system
  • WCS - world coordinate system
  • VCS - viewing/camera/eye coordinate system
  • CCS - clipping coordinate system
  • NDCS - normalized device coordinate system
  • DCS - device/display/screen coordinate system

perspectivedivide
normalized device
N2D
NDCS
device
DCS
50
Separate Warp From Homogenization
normalized device
clipping
viewing
V2C
C2N
CCS
VCS
NDCS
projection transformation
perspective division
alter w
/ w
  • warp requires only standard matrix multiply
  • distort such that orthographic projection of
    distorted objects is desired persp projection
  • w is changed
  • clip after warp, before divide
  • division by w homogenization

51
Perspective Divide Example
  • specific example
  • assume image plane at z -1
  • a point x,y,z,1T projects to -x/z,-y/z,-z/z,1T
    ?
  • x,y,z,-zT

-z
52
Perspective Divide Example
  • after homogenizing, once again w1

projection transformation
perspective division
alter w
/ w
53
Perspective Normalization
  • matrix formulation
  • warp and homogenization both preserve relative
    depth (z coordinate)

54
Demo
  • Brown applets viewing techniques
  • parallel/orthographic cameras
  • projection cameras
  • http//www.cs.brown.edu/exploratories/freeSoftware
    /catalogs/viewing_techniques.html
Write a Comment
User Comments (0)
About PowerShow.com