Rendering Pipeline Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006 (Slide set originally...

Post on 22-Dec-2015

214 views 0 download

Tags:

Transcript of Rendering Pipeline Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006 (Slide set originally...

Rendering Pipeline

Aaron BloomfieldCS 445: Introduction to Graphics

Fall 2006(Slide set originally by Greg Humphreys)

2

3D Polygon Rendering

Many applications use rendering of 3D polygonswith direct illumination

3

3D Polygon Rendering

Many applications use rendering of 3D polygonswith direct illumination

Quake II(Id Software)

4

3D Polygon Rendering

Many applications use rendering of 3D polygonswith direct illumination

5

3D Rendering Pipeline3D Geometric Primitives

ModelingTransformation

ModelingTransformation

ViewingTransformation

ViewingTransformation

ProjectionTransformation

ProjectionTransformation

LightingLighting

Image

ClippingClipping

ScanConversion

ScanConversion

This is a pipelinedsequence of operations to draw a 3D primitive

into a 2D image

(this pipeline applies only for direct illumination)

6

Example: OpenGL

ModelingTransformation

ModelingTransformation

Lighting &TexturingLighting &Texturing

ProjectionTransformation

ProjectionTransformation

ViewingTransformation

ViewingTransformation

Image

ClippingClipping

ScanConversion

ScanConversion

OpenGL executes steps of 3D rendering pipeline

for each polygon

OpenGL executes steps of 3D rendering pipeline

for each polygon

glBegin(GL_POLYGON);glVertex3f(0.0, 0.0, 0.0);glVertex3f(1.0, 0.0, 0.0);glVertex3f(1.0, 1.0, 1.0);glVertex3f(0.0, 1.0, 1.0);glEnd();

7

3D Rendering Pipeline

ModelingTransformation

ModelingTransformation

Lighting &TexturingLighting &Texturing

ProjectionTransformation

ProjectionTransformation

ViewingTransformation

ViewingTransformation

3D Geometric Primitives

Image

ClippingClipping

ScanConversion

ScanConversion

Transform into 3D world coordinate system

8

3D Rendering Pipeline

ModelingTransformation

ModelingTransformation

Lighting &TexturingLighting &Texturing

ProjectionTransformation

ProjectionTransformation

ViewingTransformation

ViewingTransformation

3D Geometric Primitives

Image

ClippingClipping

ScanConversion

ScanConversion

Transform into 3D world coordinate system

Transform into 3D camera coordinate systemDone with modeling transformation

9

3D Rendering Pipeline

ModelingTransformation

ModelingTransformation

Lighting &TexturingLighting &Texturing

ProjectionTransformation

ProjectionTransformation

ViewingTransformation

ViewingTransformation

3D Geometric Primitives

Image

ClippingClipping

ScanConversion

ScanConversion

Transform into 3D world coordinate system

Transform into 3D camera coordinate systemDone with modeling transformation

Illuminate according to lighting and reflectanceApply texture maps

10

3D Rendering Pipeline

ModelingTransformation

ModelingTransformation

Lighting &TexturingLighting &Texturing

ProjectionTransformation

ProjectionTransformation

ViewingTransformation

ViewingTransformation

3D Geometric Primitives

Image

ClippingClipping

ScanConversion

ScanConversion

Transform into 3D world coordinate system

Illuminate according to lighting and reflectanceApply texture maps

Transform into 2D screen coordinate system

Transform into 3D camera coordinate systemDone with modeling transformation

11

3D Rendering Pipeline

ModelingTransformation

ModelingTransformation

Lighting &TexturingLighting &Texturing

ProjectionTransformation

ProjectionTransformation

ViewingTransformation

ViewingTransformation

3D Geometric Primitives

Image

ClippingClipping

ScanConversion

ScanConversion

Transform into 3D world coordinate system

Clip primitives outside camera’s view

Transform into 2D screen coordinate system

Transform into 3D camera coordinate systemDone with modeling transformation

Illuminate according to lighting and reflectanceApply texture maps

12

3D Rendering Pipeline

ModelingTransformation

ModelingTransformation

Lighting &TexturingLighting &Texturing

ProjectionTransformation

ProjectionTransformation

ViewingTransformation

ViewingTransformation

3D Geometric Primitives

Image

ClippingClipping

ScanConversion

ScanConversion

Transform into 3D world coordinate system

Draw pixels (includes texturing, hidden surface, ...)

Clip primitives outside camera’s view

Transform into 2D screen coordinate system

Transform into 3D camera coordinate systemDone with modeling transformation

Illuminate according to lighting and reflectanceApply texture maps

13

Camera Coordinates

Camera right vectormaps to X axis

Camera up vector maps to Y axis

Camera back vectormaps to Z axis(pointing out of screen)

Canonical coordinate system Convention is right-handed (looking down -z axis) Convenient for projection, clipping, etc.

x

y

z

14

Viewing Transformation

Mapping from world to camera coordinates Eye position maps to origin Right vector maps to X axis Up vector maps to Y axis Back vector maps to Z axis

x

y

z

World

rightup

back

Camera

View plane

15

Viewing Transformations

ModelingTransformation

ModelingTransformation

ViewingTransformation

ViewingTransformation

2D Image Coordinates

ProjectionTransformation

ProjectionTransformation

Window-to-ViewportTransformation

Window-to-ViewportTransformation

3D Object Coordinates

3D World Coordinates

3D Camera Coordinates

2D Screen Coordinates

p(x,y,z)

p’(x’,y’)

Viewing Transformations

16

Projection

General definition: Transform points in n-space to m-space (m<n)

In computer graphics: Map 3D camera coordinates to 2D screen coordinates

For perspective transformations, no two “rays” are parallel to each other

17

Taxonomy of Projections

FVFHP Figure 6.10

18

Parallel Projection

Angel Figure 5.4

Center of projection is at infinity Direction of projection (DOP) same for all points

DOP

ViewPlane

19

Orthographic Projections

Angel Figure 5.5Top Side

Front

DOP perpendicular to view plane

20

Oblique Projections

H&B Figure 12.24

DOP not perpendicular to view plane

Cavalier

(DOP = 45o)

Cabinet

(DOP = 63.4o)

45 45

21

Parallel Projection View Volume

H&B Figure 12.30

22

Parallel Projection Matrix

General parallel projection transformation:

11000

0000

0sin10

0cos01

1

1

c

c

c

s

s

s

s

z

y

x

L

L

w

z

y

x

11000

0000

0sin10

0cos01

1

1

c

c

c

s

s

s

s

z

y

x

L

L

w

z

y

x

23

Taxonomy of Projections

FVFHP Figure 6.10

24

Perspective Projection

Map points onto “view plane” along “projectors” emanating from “center of projection” (COP)

Angel Figure 5.9

Center ofProjection

View Plane

Proje

ctor

s

25

How many vanishing points?

The difference is how many of the three principle directions are parallel/orthogonal to the projection plane

Perspective Projection

Angel Figure 5.10

3-PointPerspective

2-PointPerspective

1-PointPerspective

26

Perspective Projection View Volume

H&B Figure 12.30

ViewPlane

27

Camera to Screen

Remember: Object Camera Screen Just like raytracer

“screen” is the z=d plane for some constant d Origin of screen coordinates is (0,0,d) Its x and y axes are parallel to the x and y axes of

the eye coordinate system All these coordinates are in camera space now

28

Overhead View of Our Screen

Yeah, similar triangles!

z

dxx

d

x

z

x

z

dyy

d

y

z

y

, ,x y d , ,x y z

d

0,0,0

29

The Perspective Matrix

This “division by z” can be accomplished by a 4x4 matrix too!

What happens to the point (x,y,z,1)?

What point is this in non-homogeneous coordinates?

0100

0100

0010

0001

d

P

dzzyx ,,,

dzdyzdx ,,

30

Taxonomy of Projections

FVFHP Figure 6.10

31

Perspective projection+ Size varies inversely with distance - looks realistic– Distance and angles are not (in general) preserved– Parallel lines do not (in general) remain parallel

Parallel projection+ Good for exact measurements+ Parallel lines remain parallel– Angles are not (in general) preserved– Less realistic looking

Perspective vs. Parallel

32

Classical Projections

Angel Figure 5.3

33

Viewing in OpenGL

OpenGL has multiple matrix stacks – trans-formation functions right-multiply the top of the stack

Two most important stacks: GL_MODELVIEW and GL_PROJECTION

Points get multiplied by the modelview matrix first, and then the projection matrix

GL_MODELVIEW: Object->Camera GL_PROJECTION: Camera->Screen glViewport(0,0,w,h): Screen->Device

34

Summary

Camera transformation Map 3D world coordinates to 3D camera coordinates Matrix has camera vectors as columns

Projection transformation Map 3D camera coordinates to 2D screen coordinates Two types of projections:

Parallel Perspective