Http www ugrad cs ubc ca cs314 vjan2008
This presentation is the property of its rightful owner.
Sponsored Links
1 / 42

Viewing/Projections I Week 3, Fri Jan 25 PowerPoint PPT Presentation


  • 90 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

Viewing/Projections I Week 3, Fri Jan 25

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


Http www ugrad cs ubc ca cs314 vjan2008

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

Viewing/Projections IWeek 3, Fri Jan 25


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


Projections i

Projections I


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 matrix

Simple Perspective Projection Matrix


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);


  • Login