83
© Machiraju/Zhang/Möller 3D Viewing Introduction to Computer Graphics Torsten Möller / Mike Phillips

3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller

3D Viewing

Introduction to Computer GraphicsTorsten Möller / Mike Phillips

Page 2: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 2

Reading• Chapter 4 of Angel • Chapter 13 of Hughes, van Dam, … • Chapter 7 of Shirley+Marschner

Page 3: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller

Objectives• What kind of camera we use? (pinhole) • What projections make sense

– Orthographic – Perspective

• The viewing pipeline • Viewing in WebGL • Shadows

3

Page 4: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 4

3D Viewing• Popular analogy: virtual camera taking

pictures in a virtual world • The process of getting an image onto the

computer screen is like that of taking a snapshot.

Page 5: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 5

3D Viewing (2)• With a camera, one:

– establishes the view – opens the shutter and exposes the film

Page 6: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 6

3D Viewing (3)• With a camera, one:

– establishes the view – opens the shutter and exposes the film

• With a computer, one: – chooses a projection type (not necessarily

perspective) – establishes the view – clips the scene according to the view – projects the scene onto the computer display

Page 7: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller

Normal Camera Lens

7

http://michaeldmann.net/pix_7/lenses.gif

Page 8: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 8http://en.wikipedia.org/wiki/File:DOF-ShallowDepthofField.jpg

Page 9: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 9

The ideal pinhole camera• Single ray of light gets through small pinhole • Film placed on side of box opposite to

pinhole

Projection

Page 10: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 10

The pinhole camera• Angle of view (always fixed)

• Depth of field (DOF): infinite – every point within the field of view is in focus (the image of a point is a point)

• Problem: just a single ray of light & fixed view angle

• Solution: pinhole → lens, DOF no longer infinite

Page 11: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 11

The synthetic camera model• Image formed in front of the camera • Center of projection (COP):

center of the lens (eye)

Page 12: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 12

Types of projections• Choose an appropriate type of projection

(not necessarily perspective) • Establishes the view: direction and

orientation

Page 13: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 13

3D viewing with a computer• Clips scene with respect to a view volume

– Usually finite to avoid extraneous objects • Projects the scene onto a projection plane

– In a similar way as for the synthetic camera model

– Everything in view volume is in focus – Depth-of-field (blurring) effects may be generated

Page 14: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 14

Project onto projection plane

Clip against 3D view volume

Where are we at?

Page 15: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller

Objectives• What kind of camera we use? (pinhole) • What projections make sense

– Orthographic – Perspective

• The viewing pipeline • Viewing in WebGL • Shadows

15

Page 16: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 16

Projection: 3D → 2D• We study planar geometric projections:

– projecting onto a flat 2D surface – project using straight lines

• Projection rays, called projectors, are sent through each point in the scene from the centre of projection (COP) - our pinhole

• Intersection between projectors and projection plane form the projection

Page 17: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 17

Perspective and parallel projections

• Parallel: – COP at infinity – By direction of

projectors (DOP)

• Perspective: - Determined by COP

Page 18: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 18

COP in homogeneous coordinates

• Perspective projection: COP is a – finite point: (x, y, z, 1)

• Parallel projection – Direction of projection is a vector:

(x, y, z, 1) – (x’, y’, z’, 1) = (a, b, c, 0) – Points at infinity and directions correspond in a

natural way

Page 19: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 19

Perspective vs. parallel• Perspective projection:

– Realistic, mimicking our human visual system – Foreshortening: size of perspective projection of

object varies inversely with the distance of that object from the center of projection

– Distances, angles, parallel lines are not preserved • Parallel projection:

– Less realistic but can be used for measurements – Foreshortening uniform, i.e., not related to distance – Parallel lines are preserved (length preserving?)

Page 20: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 20

Page 21: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 21

Taxonomy of projectionsAngle between projectors and projection plane?

Number of principal axes cut by projection plane

Page 22: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 22

Parallel projections• Used in engineering mostly, e.g., architecture • Allow measurements • Different uniform foreshortenings are

possible, i.e., not related to distance to projection plane

• Parallel lines remain parallel • Angles are preserved only on faces which

are parallel to the projection plane – same with perspective projection

Page 23: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 23

Orthographic (parallel) projections

• Projectors are normal to the projection plane • Commonly front, top (plan) and side

elevations: projection plane perpendicular to z, y, and x axis

• Matrix representation (looking towards negative z along the z axis; projection plane at z = 0):

Page 24: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 24

Orthographic projections• Axonometric projection

– Projection plane not normal to any principal axis – E.g., can see more faces of an axis-aligned

cube

Page 25: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 25

Orthographic projections• Foreshortening: three

scale factors, one each for x, y, and z axis

• Axonometric projectionexample:

Page 26: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 26

Orthographic projection• Axonometric projection – Isometric

– Projection-plane normal makes same angle with each principal axis

– There are just eight normal directions of this kind – All three principal axes are equally

foreshortened, good for getting measurements – Principal axes make same angle in projection

plane • Alternative: dimetric & trimetric (general

case)

Page 27: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 27

Parallel Projection (4)• Axonometric Projection - Isometric

– Angles between the projection of the axes are equal i.e. 120º

• Alternative - dimetric & trimetric

Page 28: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller

Types of Axonometric Projections

28

Page 29: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 29

Oblique (parallel) projections• Projectors are not normal to projection

plane

• Most drawings in the text use oblique projection

Page 30: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 30

Oblique projections• Two angles are of interest:

– Angle α between the projector and projection plane

– The angle φ in the projection plane

• Derive the projection matrix

Page 31: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 31

Derivation of oblique projections

Page 32: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 32

Common oblique projections• Cavalier projections

– Angle α = 45 degrees – Preserves the length of a line segment

perpendicular to the projection plane – Angle φ is typically 30 or 45 degrees

• Cabinet projections – Angle α = 63.7 degrees or arctan(2) – Halves the length of a line segment

perpendicular to the projection plane – more realistic than cavalier

Page 33: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 33

Projections, continued

Page 34: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 34

Perspective projections• Mimics our human visual

system or a camera • Project in front of the center

of projection • Objects of equal size at different distances

from the viewer will be projected at different sizes: nearer objects will appear bigger

Page 35: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 35

Types of perspective projections

• Any set of parallel lines that are not parallel to the projection plane converges to a vanishing point, which corresponds to point at infinity in 3D

• One-, two-, three-point perspective views are based on how many principal axes are cut by projection plane

Page 36: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 36

Vanishing points

Page 37: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller

• COP at z = 0 • Projection plane at z = d

• Transformation is not invertible or affine. Derive the projection matrix.

37

Simple perspective projection

Page 38: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 38

Simple perspective projection• How to get a perspective projection matrix? • Homogeneous coordinates come to the

rescue

Page 39: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 39

Summary of simple projections• COP: origin of the coordinate system • Look into positive z direction • Projection plane perpendicular to z axis

Page 40: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller

Objectives• What kind of camera we use? (pinhole) • What projections make sense

– Orthographic – Perspective

• The viewing pipeline • Viewing in WebGL • Shadows

40

Page 41: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 41

General viewing and projections

• With scene specified in world coordinate system

• Position and orientation of camera • Projection: perspective or parallel

– Clip objects against a view volume – which one?

– Normalize the view volume (easier to do this way)

– The rest is orthographic projection

Page 42: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 42

Perspective Projections• Need to describe the viewing

– VRP - view reference point

VRP

Page 43: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 43

Perspective Projections• Need to describe the viewing

– VRP - view reference point – VN - view normal

VRP

VN

Page 44: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 44

Perspective Projections• Need to describe the viewing

– VRP - view reference point – VN - view normal – VUP - up vector

VRPu

v

VUP

VN

Page 45: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 45

Perspective Projections• Need to describe the viewing

– VRP - view reference point – VN - view normal – VUP - up vector – COP - centre of projection

VRPu

v

VUP

VN

COP

Page 46: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 46

Clipping• Projection defines a view volume • add front and back clipping plane • make view volume finite • why is this useful for a perspective

projection?

Page 47: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 47

Clipping (2)• How should we clip a scene against the

view volume? • We could clip against the actual

coordinates, but is there an easier way?

Page 48: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 48

Clipping (3)• Canonical view volume

– Parallel:x = -1, x = 1, y = -1, y = 1, z = 0, z = -1

– Perspective:x = z, x = -z, y = z, y = -z, z = -z_min, z = -1

Page 49: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 49

Viewing Process

Page 50: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 50

Normalization - Parallel• translate the

VRP to the origin

Page 51: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 51

Normalization - Parallel (2)• rotate the view

referencecoordinates such that the VPNbecomes the z axis, u becomes the x axis and vbecomes the yaxis

Page 52: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 52

Normalization - Parallel (3)• shear so that the

direction ofprojection isparallel to thez axis

Page 53: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 53

Normalization - Parallel (4)• translate and

scale into thecanonical viewvolume

Page 54: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 54

Normalization - Parallel (5)• translates the VRP to the origin • rotate the view reference coordinates such

that the VPN becomes the z axis, u becomes the x axis and v becomes the y axis

• shear so that the direction of projection is parallel to the z axis

• translate and scale into the canonical view volume

Page 55: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 55

Normalization - Parallel (6)• Projection matrix:

M = S � T � SH �R� T

Page 56: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 56

Normalization - Perspective• translates the VRP

to the origin

Page 57: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 57

Normalization - Perspective (2)• rotate the view

reference coordinatessuch that the VPNbecomes the zaxis, u becomes the x axis and vbecomes they axis.

Page 58: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 58

Normalization - Perspective (3)• Translate

so that thecenter of projectionis at the origin

Page 59: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 59

Normalization - Perspective (4)• shear so

that the centreline of the viewvolume becomesthe z axis

Page 60: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 60

Normalization - Perspective (5)• scale into

the canonicalview volume

Page 61: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 61

Normalization - Perspective (6)• translates the VRP to the origin • rotate the view reference coordinates such

that the VPN becomes the z axis, u becomes the x axis and v becomes the y axis.

• translate so that the center of projection is at the origin

• shear so that the centre line of the view volume becomes the z axis

• scale into the canonical view volume

Page 62: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller

• Projection matrix (perspective):

• Projection matrix (parallel):

62

Normalization - Perspective (7)

M = Ppers � S � SH � T �R� T

M = Pparall � S � SH �R� T

Page 63: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller

Objectives• What kind of camera we use? (pinhole) • What projections make sense

– Orthographic – Perspective

• The viewing pipeline • Viewing in WebGL • Shadows

63

Page 64: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

©Angel/Shreiner/Möller

Computer Viewing• There are three aspects of the viewing

process, all of which are implemented in a pipeline, – Positioning the camera

• Setting the model-view matrix – Selecting a “lens”

• Setting the projection matrix – Clipping

• Setting the view volume

64

Page 65: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

©Angel/Shreiner/Möller

The WebGL Camera• In WebGL, initially the object and camera

frames are the same – Default model-view matrix is an identity

• The camera is located at origin and points in the negative z direction

• WebGL also specifies a default view volume that is a cube with sides of length 2 centered at the origin – Default projection matrix is an identity

65

Page 66: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

©Angel/Shreiner/Möller

Default Projection• Default projection is orthogonal

66

clipped out

z=0

2

Page 67: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

©Angel/Shreiner/Möller

Moving the Camera Frame• If we want to visualize an object with both

positive and negative z values we can either – Move the camera in the positive z direction

• Translate the camera frame – Move the objects in the negative z direction

• Translate the world frame • Both of these views are equivalent and are

determined by the model-view matrix – Want a translation Translate(0.0,0.0,-d); – d > 0

67

Page 68: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

©Angel/Shreiner/Möller

Moving the Camera• We can move the camera to any desired

position by a sequence of rotations and translations

• Example: side view – Rotate the camera – Move it away from origin – Model-view matrix C = TR

68

Page 69: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

©Angel/Shreiner/Möller

The LookAt Function• The GLU library contained the function

gluLookAt to form the required modelview matrix through a simple interface

• Note the need for setting an up direction • Replaced by LookAt() in mat.h

– Can concatenate with modeling transformations • Example: isometric view of cube aligned

with axesmat4 mv = LookAt(vec4 eye, vec4 at, vec4 up);

69

Page 70: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

©Angel/Shreiner/Möller

gluLookAt• LookAt(eye, at, up)

70

Page 71: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

©Angel/Shreiner/Möller

Other Viewing APIs• The LookAt function is only one possible

API for positioning the camera • Others include

– View reference point, view plane normal, view up (PHIGS, GKS-3D)

– Yaw, pitch, roll – Elevation, azimuth, twist – Direction angles

71

Page 72: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

©Angel/Shreiner/Möller

WebGL Orthogonal ViewingOrtho(left,right,bottom,top,near,far)

near and far measured from camera

72

Page 73: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

©Angel/Shreiner/Möller

WebGL PerspectiveFrustum(left,right,bottom,top,near,far)

73

Page 74: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

©Angel/Shreiner/Möller

Using Field of View• With Frustum it is often difficult to get the

desired view Perpective(fovy,aspect,near,far) often provides a better interface

aspect = w/h

front plane

74

Page 75: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller

Objectives• What kind of camera we use? (pinhole) • What projections make sense

– Orthographic – Perspective

• The viewing pipeline • Viewing in WebGL • Shadows

75

Page 76: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 76

Application of projection: shadows

• Essential component for realistic rendering • Naturally use projections

– Can produce hard shadows – Only handles shadows on a plane – To shadow on a polygonal face, need clipping

• More advanced shadow algorithms exist, e.g., soft shadows and penumbra (not easy to do)

• Blinn 74

Page 77: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 77

Shadow via projection• A shadow polygon is obtained through

projection where the center of projection is a light source

Page 78: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 78

Shadow polygon: parallel projection

(xp, yp, zp)

(xs, ys, 0)

• Project shadow on z = 0 • Light at ∝ (directional light) • Derive the projection matrix

Page 79: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller

• Light at infinity:

• hence projection:

79

Shadows: parallel projection

Now draw the objecton the ground plane

Page 80: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller

• Project on plane z = 0 • Point light source • Derive the matrix

80

Shadows: perspective projection

Page 81: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller

• Local Light:

• projection matrix:

81

Shadows: perspective projection

Page 82: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 82

Shadow of a teapot

Page 83: 3D Viewing - univie.ac.atvda.univie.ac.at/.../15w/LectureNotes/06_viewing.pdf · 2015-09-23 · 3D viewing with a computer • Clips scene with respect to a view volume – Usually

© Machiraju/Zhang/Möller 83

Shadows• requires no extra memory • easily handles any number of light sources • only shadows onto ground plane • cannot handle objects which shadow other

complex objects • every polygon is rendered N+1 times, where

N is number of light sources