http www ugrad cs ubc ca cs314 vjan2008
Download
Skip this Video
Download Presentation
Viewing/Projections I Week 3, Fri Jan 25

Loading in 2 Seconds...

play fullscreen
1 / 42

Viewing - PowerPoint PPT Presentation


  • 149 Views
  • Uploaded on

http://www.ugrad.cs.ubc.ca/~cs314/Vjan2008. Viewing/Projections I Week 3, Fri Jan 25. Review: Camera Motion. rotate/translate/scale difficult to control arbitrary viewing position eye point, gaze/lookat direction, up vector. y. lookat. x. Pref. WCS. view. up. z. eye. Peye. y.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Viewing' - apiatan


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
review camera motion
Review: Camera Motion
  • rotate/translate/scale difficult to control
  • arbitrary viewing position
    • eye point, gaze/lookat direction, up vector

y

lookat

x

Pref

WCS

view

up

z

eye

Peye

review world to view coordinates

y

lookat

x

Pref

WCS

view

v

VCS

up

z

eye

Peye

u

w

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
pinhole camera
Pinhole Camera
  • ingredients
    • box, film, hole punch
  • result
    • picture

www.kodak.com

www.pinhole.org

www.debevec.org/Pinhole

pinhole camera1
Pinhole Camera
  • theoretical perfect pinhole
    • light shining through tiny hole into dark space yields upside-down picture

one ray

of projection

perfect

pinhole

film plane

pinhole camera2
Pinhole Camera
  • non-zero sized hole
    • blur: rays hit multiple points on film plane

multiple rays

of projection

actual

pinhole

film plane

real cameras
Real Cameras
  • pinhole camera has small aperture (lens opening)
    • minimize blur
  • problem: hard to get enough light to expose the film
  • solution: lens
    • permits larger apertures
    • permits changing distance to film plane without actually moving it
      • cost: limited depth of field where image is in focus

aperture

lens

depth

of

field

http://en.wikipedia.org/wiki/Image:DOF-ShallowDepthofField.jpg

graphics cameras
Graphics Cameras
  • real pinhole camera: image inverted

eye

point

image

plane

  • computer graphics camera: convenient equivalent

eye

point

center of

projection

image

plane

general projection
General Projection
  • image plane need not be perpendicular to view plane

eye

point

image

plane

eye

point

image

plane

perspective projection
Perspective Projection
  • our camera must model perspective
perspective projection1
Perspective Projection
  • our camera must model perspective
projective transformations
Projective Transformations
  • planar geometric projections
    • planar: onto a plane
    • geometric: using straight lines
    • projections: 3D -> 2D
  • aka projective mappings
  • counterexamples?
projective transformations1
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)
perspective projection2

-z

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

x

y

z

z

x

x

perspective projection3
Perspective Projection

projectionplane

center of projection

(eye point)

how tall shouldthis bunny be?

basic perspective projection
Basic Perspective Projection
  • nonuniform foreshortening
    • not affine

similar triangles

P(x,y,z)

y

P(x’,y’,z’)

z

z’=d

but

perspective projection4
Perspective Projection
  • desired result for a point [x, y, z, 1]T projected onto the view plane:
  • what could a matrix look like to do this?
simple perspective projection matrix1
Simple Perspective Projection Matrix

is homogenized version of

where w = z/d

simple perspective projection matrix2
Simple Perspective Projection Matrix

is homogenized version of

where w = z/d

perspective projection5
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
moving cop to infinity
Moving COP to Infinity
  • as COP moves away, lines approach parallel
    • when COP at infinity, orthographic view
orthographic camera projection
Orthographic Camera Projection
  • camera’s back plane parallel to lens
  • infinite focal length
  • no perspective convergence
  • just throw away z values
perspective to orthographic
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

view volumes

orthographic view volume

perspective view volume

y=top

y=top

x=left

x=left

y

y

z

x=right

VCS

z=-near

x

VCS

y=bottom

z=-far

z=-far

x

y=bottom

x=right

z=-near

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

z

canonical view volumes
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

-z

-1

-1

why canonical view volumes
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
normalized device coordinates
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
normalized device coordinates1
Normalized Device Coordinates

left/right x =+/- 1, top/bottom y =+/- 1, near/far z =+/- 1

NDC

Camera coordinates

x

x

x=1

right

Frustum

-z

z

left

x= -1

z=1

z= -1

z=-n

z=-f

understanding z
Understanding Z
  • z axis flip changes coord system handedness
    • RHS before projection (eye/view coords)
    • LHS after projection (clip, norm device coords)

VCS

NDCS

y=top

y

(1,1,1)

x=left

y

z

(-1,-1,-1)

z

x

x=right

x

z=-far

y=bottom

z=-near

understanding z1

perspective view volume

y=top

x=left

y

z=-near

VCS

y=bottom

z=-far

x

x=right

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

y=top

x=left

y

z

x=right

VCS

x

z=-far

y=bottom

z=-near

understanding z2
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 (0…1)
      • avoid/reduce numerical precision artifacts for distant objects
orthographic derivation

NDCS

y

(1,1,1)

z

(-1,-1,-1)

x

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

VCS

y=top

x=left

y

z

x=right

x

z=-far

y=bottom

z=-near

orthographic derivation1

NDCS

y

(1,1,1)

z

(-1,-1,-1)

x

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

VCS

y=top

x=left

y

z

x=right

x

z=-far

y=bottom

z=-near

orthographic derivation2
Orthographic Derivation
  • scale, translate, reflect for new coord sys
orthographic derivation3
Orthographic Derivation
  • scale, translate, reflect for new coord sys

VCS

y=top

x=left

y

z

x=right

x

z=-far

y=bottom

z=-near

same idea for right/left, far/near

orthographic derivation4
Orthographic Derivation
  • scale, translate, reflect for new coord sys
orthographic derivation5
Orthographic Derivation
  • scale, translate, reflect for new coord sys
orthographic derivation6
Orthographic Derivation
  • scale, translate, reflect for new coord sys
orthographic derivation7
Orthographic Derivation
  • scale, translate, reflect for new coord sys
orthographic opengl
Orthographic OpenGL

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

glOrtho(left,right,bot,top,near,far);

ad