viewing, pipeline - cornell university · the graphics pipeline •the standard approach to...

4
© 2011 Kavita Bala • (with previous instructors James/Marschner) Cornell CS4620/5620 Fall 2011 • Lecture 13 1 CS4620/5620: Lecture 13 Viewing, Pipeline © 2011 Kavita Bala (with previous instructors James/Marschner) Cornell CS4620/5620 Fall 2011 • Lecture 13 Announcements 2 • PA 1 – Hopefully not a Reed Hastings • Cone normals • Lessons – Dissemination of information •Piazza, email, FAQ, Staff attendance, office hours – We are human – Extensions • Other issues Grading slots on next Thursday – Please sign up as a group © 2011 Kavita Bala (with previous instructors James/Marschner) Cornell CS4620/5620 Fall 2011 • Lecture 13 Perspective transformation chain • Transform into world coords (modeling transform, M m ) • Transform into eye coords (camera xf., M cam = F c –1 ) • Perspective matrix, P • Orthographic projection, M orth • Viewport transform, M vp 3 p s = M vp M orth PM cam M m p o xs ys zc 1 = nx 2 0 0 nx1 2 0 ny 2 0 ny1 2 0 0 1 0 0 0 0 1 2 rl 0 0 r+l rl 0 2 tb 0 t+b tb 0 0 2 nf n+f nf 0 0 0 1 n 0 0 0 0 n 0 0 0 0 n + f fn 0 0 1 0 McamMm xo yo zo 1 © 2011 Kavita Bala (with previous instructors James/Marschner) Cornell CS4620/5620 Fall 2011 • Lecture 13 (xw,w) x = a + m t (line through a along direction m) if t = 1/w; x = (a w + m)/w in homogeneous coordinates (aw+m, w) w = 0, point at infinity 4 © 2011 Kavita Bala (with previous instructors James/Marschner) Cornell CS4620/5620 Fall 2011 • Lecture 13 Implications of w • All scalar multiples of a 4-vector are equivalent • When w is not zero, can divide by w – therefore these points represent “normal” affine points • When w is zero, it’s a point at infinity, a.k.a. a direction – this is the point where parallel lines intersect – can also think of it as the vanishing point 5 © 2011 Kavita Bala (with previous instructors James/Marschner) Cornell CS4620/5620 Fall 2011 • Lecture 13 Perspective projection to implement perspective, just move z to w: 6

Upload: others

Post on 23-Aug-2020

23 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Viewing, Pipeline - Cornell University · The graphics pipeline •The standard approach to object-order graphics •Many versions exist –software, e.g. Pixar’s REYES architecture

© 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13 1

CS4620/5620: Lecture 13

Viewing, Pipeline

© 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

Announcements

2

• PA 1– Hopefully not a Reed Hastings

• Cone normals• Lessons

– Dissemination of information• Piazza, email, FAQ, Staff attendance, office hours

– We are human– Extensions

• Other issues• Grading slots on next Thursday

– Please sign up as a group

© 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

Perspective transformation chain

• Transform into world coords (modeling transform, Mm)

• Transform into eye coords (camera xf., Mcam = Fc–1)

• Perspective matrix, P• Orthographic projection, Morth

• Viewport transform, Mvp

3

ps = MvpMorthPMcamMmpo

xs

ys

zc

1

=

nx2 0 0 nx−1

2

0 ny

2 0 ny−12

0 0 1 00 0 0 1

2r−l 0 0 − r+l

r−l

0 2t−b 0 − t+b

t−b

0 0 2n−f −n+f

n−f

0 0 0 1

n 0 0 00 n 0 00 0 n + f −fn0 0 1 0

McamMm

xo

yo

zo

1

© 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

(xw,w)x = a + m t (line through a along direction m)if t = 1/w; x = (a w + m)/win homogeneous coordinates (aw+m, w)w = 0, point at infinity

4

© 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

Implications of w

• All scalar multiples of a 4-vector are equivalent• When w is not zero, can divide by w

– therefore these points represent “normal” affine points

• When w is zero, it’s a point at infinity, a.k.a. a direction– this is the point where parallel lines intersect– can also think of it as the vanishing point

5 © 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

Perspective projection

to implement perspective, just move z to w:

6

Page 2: Viewing, Pipeline - Cornell University · The graphics pipeline •The standard approach to object-order graphics •Many versions exist –software, e.g. Pixar’s REYES architecture

© 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

View volume: perspective

7 © 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

View volume: perspective (clipped)

8

© 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

Carrying depth through perspective

• Perspective has a varying denominator—can’t preserve depth!

• Compromise: preserve depth on near and far planes

– that is, choose a and b so that z’(n) = n and z’(f) = f.

9 © 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

Official perspective matrix

• Use near plane distance as the projection distance– i.e., d = –n

• Scale by –1 to have fewer minus signs– scaling the matrix does not change the projective

transformation

10

P =

n 0 0 00 n 0 00 0 n + f −fn0 0 1 0

© 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

Perspective projection matrix

• Product of perspective matrix with orth. projection matrix

11

Mper = MorthP

=

2r−l 0 0 − r+l

r−l

0 2t−b 0 − t+b

t−b

0 0 2n−f −n+f

n−f

0 0 0 1

n 0 0 00 n 0 00 0 n + f −fn0 0 1 0

=

2nr−l 0 l+r

l−r 0

0 2nt−b

b+tb−t 0

0 0 f+nn−f

2fnf−n

0 0 1 0

© 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

Perspective transformation chain

• Transform into world coords (modeling transform, Mm)

• Transform into eye coords (camera xf., Mcam = Fc–1)

• Perspective matrix, P• Orthographic projection, Morth

• Viewport transform, Mvp

12

ps = MvpMorthPMcamMmpo

xs

ys

zc

1

=

nx2 0 0 nx−1

2

0 ny

2 0 ny−12

0 0 1 00 0 0 1

2r−l 0 0 − r+l

r−l

0 2t−b 0 − t+b

t−b

0 0 2n−f −n+f

n−f

0 0 0 1

n 0 0 00 n 0 00 0 n + f −fn0 0 1 0

McamMm

xo

yo

zo

1

Page 3: Viewing, Pipeline - Cornell University · The graphics pipeline •The standard approach to object-order graphics •Many versions exist –software, e.g. Pixar’s REYES architecture

© 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

OpenGL view frustum: orthographic

Note OpenGL puts the near and far planes at –n and –fso that the user can give positive numbers

13 © 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

OpenGL view frustum: perspective

Note OpenGL puts the near and far planes at –n and –fso that the user can give positive numbers

14

© 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

Pipeline of transformations

• Standard sequence of transforms

15

!

!

!

!

!

!

!

!

7.1. Viewing Transformations 147

object space

world space

camera space

canonicalview volume

scre

en

sp

ace

modelingtransformation

viewporttransformation

projectiontransformation

cameratransformation

Figure 7.2. The sequence of spaces and transformations that gets objects from their

original coordinates into screen space.

space) to camera coordinates or places them in camera space. The projection

transformation moves points from camera space to the canonical view volume.

Finally, the viewport transformation maps the canonical view volume to screen Other names: camera

space is also “eye space”

and the camera

transformation is

sometimes the “viewing

transformation;” the

canonical view volume is

also “clip space” or

“normalized device

coordinates;” screen space

is also “pixel coordinates.”

space.

Each of these transformations is individually quite simple. We’ll discuss them

in detail for the orthographic case beginning with the viewport transformation,

then cover the changes required to support perspective projection.

7.1.1 The Viewport Transformation

We begin with a problemwhose solution will be reused for any viewing condition.

We assume that the geometry we want to view is in the canonical view volume The word “canonical” crops

up again—it means

something arbitrarily

chosen for convenience.

For instance, the unit circle

could be called the

“canonical circle.”

and we wish to view it with an orthographic camera looking in the !z direction.The canonical view volume is the cube containing all 3D points whose Cartesian

coordinates are between !1 and +1—that is, (x, y, z) " [!1, 1]3 (Figure 7.3).We project x = !1 to the left side of the screen, x = +1 to the right side of thescreen, y = !1 to the bottom of the screen, and y = +1 to the top of the screen.

Recall the conventions for pixel coordinates fromChapter 3: each pixel “owns”

a unit square centered at integer coordinates; the image boundaries have a half-

unit overshoot from the pixel centers; and the smallest pixel center coordinates

© 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

Pipeline and Rasterization

CS4620 Lecture 14

16

© 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

The graphics pipeline

• The standard approach to object-order graphics• Many versions exist

– software, e.g. Pixar’s REYES architecture• many options for quality and flexibility

– hardware, e.g. graphics cards in PCs• amazing performance: millions of triangles per frame

• We’ll focus on an abstract version of hardware pipeline

17 © 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

The graphics pipeline

• “Pipeline” because of the many stages– very parallelizable– leads to remarkable performance of graphics cards (many times

the flops of the CPU at ~1/5 the clock speed)– gigaflops (10 to the 9th power), teraflop (12th power), petaflops

(15th power)

• GeForce GTX590, 600MHz, 1024 stream processors

18

Page 4: Viewing, Pipeline - Cornell University · The graphics pipeline •The standard approach to object-order graphics •Many versions exist –software, e.g. Pixar’s REYES architecture

© 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

Supercomputers!

• Tianhe-1A, Tesla: 14,336 Xeon + 7,1688 Tesla boards

– 448 cores

19 © 2011 Kavita Bala •(with previous instructors James/Marschner)

Cornell CS4620/5620 Fall 2011 •!Lecture 13

APPLICATION

COMMAND STREAM

VERTEX PROCESSING

TRANSFORMED GEOMETRY

RASTERIZATION

FRAGMENTS

FRAGMENT PROCESSING

FRAMEBUFFER IMAGE

DISPLAY

you are here

3D transformations; shading

conversion of primitives to pixels

blending, compositing, shading

user sees this

Pipelineoverview

20