viewing 2 - home | computer science at ubctmm/courses/314-16/slides/viewing...• from frustum...

29
Tamara Munzner http://www.ugrad.cs.ubc.ca/~cs314/Vjan2016 Viewing 2 University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2016

Upload: others

Post on 13-Aug-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

Tamara Munzner

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

Viewing 2

University of British Columbia CPSC 314 Computer Graphics

Jan-Apr 2016

Page 2: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

2

Projections I

Page 3: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

3

Pinhole Camera

•  ingredients •  box, film, hole punch

•  result •  picture

www.kodak.com

www.pinhole.org

www.debevec.org/Pinhole

Page 4: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

4

Pinhole Camera

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

yields upside-down picture

film plane

perfect pinhole

one ray of projection

Page 5: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

5

Pinhole Camera

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

film plane

actual pinhole

multiple rays of projection

Page 6: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

6

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

Page 7: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

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

Page 8: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

8

General Projection

•  image plane need not be perpendicular to view plane

image plane

eye point

image plane

eye point

Page 9: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

9

Perspective Projection

•  our camera must model perspective

Page 10: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

10

Perspective Projection

•  our camera must model perspective

Page 11: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

11

Projective Transformations

•  planar geometric projections •  planar: onto a plane •  geometric: using straight lines •  projections: 3D -> 2D

•  aka projective mappings

•  counterexamples?

Page 12: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

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)

Page 13: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

13

Perspective Projection

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

x z x z

y

x

-z

Page 14: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

14

Perspective Projection

how tall should this bunny be?

projection plane

center of projection (eye point)

Page 15: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

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

Page 16: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

16

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?

dzdz

y

z

dyy

dz

x

z

dxx

z

y

d

y

z

x

d

x

==⋅

==⋅

=

==

',','

',

'

Page 17: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

17

Simple Perspective Projection Matrix

d

dz

y

dz

x

/

/

Page 18: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

18

Simple Perspective Projection Matrix

d

dz

y

dz

x

/

/ is homogenized version of where w = z/d

dz

z

y

x

/

Page 19: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

19

Simple Perspective Projection Matrix

=

10100

0100

0010

0001

/

z

y

x

ddz

z

y

x

d

dz

y

dz

x

/

/ is homogenized version of where w = z/d

dz

z

y

x

/

Page 20: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

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

Page 21: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

21

Moving COP to Infinity

•  as COP moves away, lines approach parallel •  when COP at infinity, orthographic view

Page 22: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

22

Orthographic Camera Projection •  camera’s back plane

parallel to lens •  infinite focal length •  no perspective

convergence

•  just throw away z values

=

0

y

x

z

y

x

p

p

p

=

11000

0000

0010

0001

1

z

y

x

z

y

x

p

p

p

Page 23: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

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

Page 24: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

24

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

z

perspective view volume orthographic 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

Page 25: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

25

Asymmetric Frusta

•  our formulation allows asymmetry •  why bother?

-z

x

Frustum right

left -z

x

Frustum

z=-n z=-f

right

left

Page 26: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

26

Asymmetric Frusta

•  our formulation allows asymmetry •  why bother? binocular stereo

•  view vector not perpendicular to view plane

Right Eye

Left Eye

Page 27: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

27

Simpler Formulation

•  left, right, bottom, top, near, far •  nonintuitive •  often overkill

•  look through window center •  symmetric frustum

•  constraints •  left = -right, bottom = -top

Page 28: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

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

Page 29: Viewing 2 - Home | Computer Science at UBCtmm/courses/314-16/slides/viewing...• from frustum (truncated pyramid) to parallelepiped (box) -z x -z x Frustum Parallelepiped 24 View

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/