Viewing 2 http://www.ugrad.cs.ubc.ca/~cs314/Vjan2016 Projections I - - PowerPoint PPT Presentation

viewing 2
SMART_READER_LITE
LIVE PREVIEW

Viewing 2 http://www.ugrad.cs.ubc.ca/~cs314/Vjan2016 Projections I - - PowerPoint PPT Presentation

University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2016 Tamara Munzner Viewing 2 http://www.ugrad.cs.ubc.ca/~cs314/Vjan2016 Projections I 2 Pinhole Camera ingredients box, film, hole punch result picture


slide-1
SLIDE 1

Tamara Munzner http://www.ugrad.cs.ubc.ca/~cs314/Vjan2016

Viewing 2

University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2016

slide-2
SLIDE 2

2

Projections I

slide-3
SLIDE 3

3

Pinhole Camera

  • ingredients
  • box, film, hole punch
  • result
  • picture

www.kodak.com www.pinhole.org www.debevec.org/Pinhole

slide-4
SLIDE 4

4

Pinhole Camera

  • theoretical perfect pinhole
  • light shining through tiny hole into dark space

yields upside-down picture

film plane perfect pinhole

  • ne ray
  • f projection
slide-5
SLIDE 5

5

Pinhole Camera

  • non-zero sized hole
  • blur: rays hit multiple points on film plane

film plane actual pinhole multiple rays

  • f projection
slide-6
SLIDE 6

6

Real Cameras

  • pinhole camera has small aperture (lens
  • pening)
  • 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

  • f

field

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

slide-7
SLIDE 7

7

Graphics Cameras

  • real pinhole camera: image inverted

image plane eye point

n computer graphics camera: convenient equivalent

image plane eye point center of projection

slide-8
SLIDE 8

8

General Projection

  • image plane need not be perpendicular to

view plane

image plane eye point image plane eye point

slide-9
SLIDE 9

9

Perspective Projection

  • our camera must model perspective
slide-10
SLIDE 10

10

Perspective Projection

  • our camera must model perspective
slide-11
SLIDE 11

11

Projective Transformations

  • planar geometric projections
  • planar: onto a plane
  • geometric: using straight lines
  • projections: 3D -> 2D
  • aka projective mappings
  • counterexamples?
slide-12
SLIDE 12

12

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)

slide-13
SLIDE 13

13

Perspective Projection

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

x z x z y x

  • z
slide-14
SLIDE 14

14

Perspective Projection

how tall should this bunny be? projection plane center of projection (eye point)

slide-15
SLIDE 15

15

Basic Perspective Projection

similar triangles z P(x,y,z) P(x’,y’,z’) z’=d y

  • nonuniform foreshortening
  • not affine

but

z'= d

slide-16
SLIDE 16

16

Perspective Projection

  • desired result for a point [x, y, z, 1]T projected
  • nto the view plane:
  • what could a matrix look like to do this?

d z d z y z d y y d z x z d x x z y d y z x d x = = ⋅ = = ⋅ = = = ' , ' , ' ' , '

slide-17
SLIDE 17

17

Simple Perspective Projection Matrix

                  d d z y d z x / /

slide-18
SLIDE 18

18

Simple Perspective Projection Matrix

                  d d z y d z x / /

is homogenized version of where w = z/d

            d z z y x /

slide-19
SLIDE 19

19

Simple Perspective Projection Matrix

                        =             1 1 1 1 1 / z y x d d z z y x                   d d z y d z x / /

is homogenized version of where w = z/d

            d z z y x /

slide-20
SLIDE 20

20

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
slide-21
SLIDE 21

21

Moving COP to Infinity

  • as COP moves away, lines approach parallel
  • when COP at infinity, orthographic view
slide-22
SLIDE 22

22

Orthographic Camera Projection

  • camera’s back plane

parallel to lens

  • infinite focal length
  • no perspective

convergence

  • just throw away z values

          =           y x z y x

p p p

                        =             1 1 1 1 1 z y x z y x

p p p

slide-23
SLIDE 23

23

Perspective to Orthographic

  • transformation of space
  • center of projection moves to infinity
  • view volume transformed
  • from frustum (truncated pyramid) to

parallelepiped (box)

  • z

x

  • z

x Frustum

Parallelepiped

slide-24
SLIDE 24

24

View Volumes

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

z perspective view volume

  • rthographic view volume

x=left x=right y=top y=bottom z=-near z=-far x VCS x z VCS y y x=left y=top x=right z=-far z=-near y=bottom

slide-25
SLIDE 25

25

Asymmetric Frusta

  • our formulation allows asymmetry
  • why bother?
  • z

x Frustum

right left

  • z

x Frustum z=-n z=-f

right left

slide-26
SLIDE 26

26

Asymmetric Frusta

  • our formulation allows asymmetry
  • why bother? binocular stereo
  • view vector not perpendicular to view plane

Right Eye Left Eye

slide-27
SLIDE 27

27

Simpler Formulation

  • left, right, bottom, top, near, far
  • nonintuitive
  • often overkill
  • look through window center
  • symmetric frustum
  • constraints
  • left = -right, bottom = -top
slide-28
SLIDE 28

28

Field-of-View Formulation

  • FOV in one direction + aspect ratio (w/h)
  • determines FOV in other direction
  • also set near, far (reasonably intuitive)
  • z

x Frustum z=-n z=-f α

fovx/2 fovy/2

h w THREE.PerspectiveCamera (fovy,aspect,near,far);

slide-29
SLIDE 29

29

Demos

  • frustum
  • http://webglfundamentals.org/webgl/frustum-diagram.html
  • http://www.ugrad.cs.ubc.ca/~cs314/Vsep2014/webGL/view-

frustum.html

  • orthographic vs projection cameras
  • http://threejs.org/examples/#canvas_camera_orthographic2
  • http://threejs.org/examples/#webgl_camera
  • https://www.script-tutorials.com/webgl-with-three-js-lesson-9/