57
3D Viewing Pipeline Instructor Stephen J. Guy 10/6/2010 1

Computer graphics12 3 d_viewingpipeline

Embed Size (px)

Citation preview

Page 1: Computer graphics12 3 d_viewingpipeline

3D Viewing Pipeline

Instructor – Stephen J. Guy

10/6/20101

Page 2: Computer graphics12 3 d_viewingpipeline

Overview

10/6/20102

Review

Linear Transformations & Homogeneous coordinates

Scene Graph

3D Polygon rendering

Graphics Pipeline

Viewing Transformation

Page 3: Computer graphics12 3 d_viewingpipeline

Overview

10/6/20103

Review

Linear Transformations & Homogeneous coordinates

Scene Graph

3D Polygon rendering

Graphics Pipeline

Viewing Transformation

Page 4: Computer graphics12 3 d_viewingpipeline

Reviewing Transforms

10/6/20104

Linear Transformations

Scale

Rotate

Shear

Mirror

Page 5: Computer graphics12 3 d_viewingpipeline

Review – Homogeneous Coordinates

10/6/20105

Use 3 coordinates for a 2D point (4 coord. for 3D point)

(x,y,w) represents

(x,y,0) represents

(0,0,0) …

a point at (x/w, y/w)

a point at infinity

not allowed!

(2,1,1) or (4,2,2,) or (6,3,3) …

Page 6: Computer graphics12 3 d_viewingpipeline

Review – Translating and More

10/6/20106

Basic 2D Transformations as 3x3

Page 7: Computer graphics12 3 d_viewingpipeline

Review – 3D Transforms

10/6/20107

Homogenous coordinates (x,y,z,w)

4x4 transformation matrix

Page 8: Computer graphics12 3 d_viewingpipeline

Review – Basic 3D Transforms

10/6/20108

Page 9: Computer graphics12 3 d_viewingpipeline

Review – 3D Rotations

10/6/20109

Page 10: Computer graphics12 3 d_viewingpipeline

Review – Transformation Hierarchies

10/6/201010

Successively applied matrixes

Stored in a DAG == Scene Graph

Examples

Robot Arm

Articulated Characters

Complex Scenes

Page 11: Computer graphics12 3 d_viewingpipeline

Transform Example - Robot Arms

10/6/201011

Page 12: Computer graphics12 3 d_viewingpipeline

Example – Humanoid Character

10/6/201012

Page 13: Computer graphics12 3 d_viewingpipeline

Example – Complex Scenes

10/6/201013

Page 14: Computer graphics12 3 d_viewingpipeline

Example – Complex Scene Graph

10/6/201014

Page 15: Computer graphics12 3 d_viewingpipeline

Ray Casting with Hierarchies

10/6/201015

Page 16: Computer graphics12 3 d_viewingpipeline

Overview

10/6/201016

Review

Linear Transformations & Homogeneous coordinates

Scene Graph

3D Polygon rendering

Graphics Pipeline

Viewing Transformation

Page 17: Computer graphics12 3 d_viewingpipeline

3D Polygon Rendering

Many applications make use if 3D polygons with

direct illumination

10/6/201017

Page 18: Computer graphics12 3 d_viewingpipeline

3D Polygon Rendering - Examples

10/6/201018

Quake II(Id Software)

Page 19: Computer graphics12 3 d_viewingpipeline

3D Polygon Rendering - Examples

10/6/201019

Architectural Walkthrough

Page 20: Computer graphics12 3 d_viewingpipeline

Ray Casting Revisiting

10/6/201020

For each sample

Construct ray though pixel

Find first surface intersected by ray through pixel

Compute color of sample based on surface radiance

More Efficient Algorithms

Utilize Spatial Coherence!

Page 21: Computer graphics12 3 d_viewingpipeline

3D Polygon Rendering

10/6/201021

What steps are necessary to utilize spatial

coherence while drawing polygons on a 2D image?

Page 22: Computer graphics12 3 d_viewingpipeline

3D Rendering Pipeline (direct illumination only)

A pipelined sequence of operations

to draw a 3D primitive onto a 2D

image

Modeling

Transformation

Lighting

Viewing

Transformation

Projection

Transformation

Clipping

Scan

Conversion

3D Geometric Primitives

Image10/6/201022

Page 23: Computer graphics12 3 d_viewingpipeline

OpenGL Example

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

Modeling

Transformation

Lighting

Viewing

Transformation

Projection

Transformation

Clipping

Scan

Conversion

Image

OpenGL runs the 3D

rendering pipeline for

each polygon

10/6/201023

Page 24: Computer graphics12 3 d_viewingpipeline

3D Rendering Pipeline (direct illumination only)

Transform in 3D word coordinate systemModeling

Transformation

Lighting

Viewing

Transformation

Projection

Transformation

Clipping

Scan

Conversion

3D Geometric Primitives

Image10/6/201024

Page 25: Computer graphics12 3 d_viewingpipeline

3D Rendering Pipeline (direct illumination only)

Transform in 3D word coordinate systemModeling

Transformation

Lighting

Viewing

Transformation

Projection

Transformation

Clipping

Scan

Conversion

3D Geometric Primitives

Image

Illuminate according to lighting and reflectance

10/6/201025

Page 26: Computer graphics12 3 d_viewingpipeline

3D Rendering Pipeline (direct illumination only)

Transform in 3D word coordinate systemModeling

Transformation

Lighting

Viewing

Transformation

Projection

Transformation

Clipping

Scan

Conversion

3D Geometric Primitives

Image

Illuminate according to lighting and reflectance

Transform into 3D camera coordinate system

10/6/201026

Page 27: Computer graphics12 3 d_viewingpipeline

3D Rendering Pipeline (direct illumination only)

Transform in 3D word coordinate systemModeling

Transformation

Lighting

Viewing

Transformation

Projection

Transformation

Clipping

Scan

Conversion

3D Geometric Primitives

Image

Illuminate according to lighting and reflectance

Transform into 3D camera coordinate system

Transform into 2D screen coordinate system

10/6/201027

Page 28: Computer graphics12 3 d_viewingpipeline

3D Rendering Pipeline (direct illumination only)

Transform in 3D word coordinate systemModeling

Transformation

Lighting

Viewing

Transformation

Projection

Transformation

Clipping

Scan

Conversion

3D Geometric Primitives

Image

Illuminate according to lighting and reflectance

Transform into 3D camera coordinate system

Transform into 2D screen coordinate system

Clip primitives outside camera’s view

10/6/201028

Page 29: Computer graphics12 3 d_viewingpipeline

3D Rendering Pipeline (direct illumination only)

Transform in 3D word coordinate systemModeling

Transformation

Lighting

Viewing

Transformation

Projection

Transformation

Clipping

Scan

Conversion

3D Geometric Primitives

Image

Illuminate according to lighting and reflectance

Transform into 3D camera coordinate system

Transform into 2D screen coordinate system

Clip primitives outside camera’s view

Draw Pixels (also texturing, hidden surface, …)

10/6/201029

Page 30: Computer graphics12 3 d_viewingpipeline

3D Rendering Pipeline (direct illumination only)

Transform in 3D word coordinate systemModeling

Transformation

Lighting

Viewing

Transformation

Projection

Transformation

Clipping

Scan

Conversion

3D Geometric Primitives

Image

Illuminate according to lighting and reflectance

Transform into 3D camera coordinate system

Transform into 2D screen coordinate system

Clip primitives outside camera’s view

Draw Pixels (also texturing, hidden surface, …)

10/6/201030

Page 31: Computer graphics12 3 d_viewingpipeline

3D Rendering Pipeline (direct illumination only)

Transform in 3D word coordinate systemModeling

Transformation

Lighting

Viewing

Transformation

Projection

Transformation

Clipping

Scan

Conversion

3D Geometric Primitives

Image

Illuminate according to lighting and reflectance

Transform into 3D camera coordinate system

Transform into 2D screen coordinate system

Clip primitives outside camera’s view

Draw Pixels (also texturing, hidden surface, …)

10/6/201031

Page 32: Computer graphics12 3 d_viewingpipeline

Transformations

Transformations map points

from one coordinate system to

anotherModeling

Transformation

Viewing

Transformation

Projection

Transformation

Window-to-Viewport

Transformation

p(x,y,z)

p'(x’,y’)

3D Camera

Coordinates

3D Object

Coordinates

3D World

Coordinates

3D Object Coordinates

3D World Coordinates

3D Camera Coordinates

2D Screen Coordinates

2D Image Coordinates

10/6/201032

Page 33: Computer graphics12 3 d_viewingpipeline

Viewing Transformations

Viewing Transformations

Modeling

Transformation

Viewing

Transformation

Projection

Transformation

Window-to-Viewport

Transformation

p(x,y,z)

p'(x’,y’)

3D Object Coordinates

3D World Coordinates

3D Camera Coordinates

2D Screen Coordinates

2D Image Coordinates

10/6/201033

Page 34: Computer graphics12 3 d_viewingpipeline

Camera Coordinates

10/6/201034

Canonical coordinate system

Convention is right-handed (looking down z-axis)

Convenient for projection, clipping, etc

Page 35: Computer graphics12 3 d_viewingpipeline

Viewing Transformation

10/6/201035

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

Page 36: Computer graphics12 3 d_viewingpipeline

Finding the Viewing Transformation

10/6/201036

We have the camera (in world coordinates)

We want T taking objects from world to camera

Trick: Find T-1 taking objects from camera to world

Pc = T * PW

PW = T * Pc

Page 37: Computer graphics12 3 d_viewingpipeline

Finding the Viewing Transformation

10/6/201037

Page 38: Computer graphics12 3 d_viewingpipeline

Viewing Transformations

Viewing Transformations

Modeling

Transformation

Viewing

Transformation

Projection

Transformation

Window-to-Viewport

Transformation

p(x,y,z)

p'(x’,y’)

3D Object Coordinates

3D World Coordinates

3D Camera Coordinates

2D Screen Coordinates

2D Image Coordinates

10/6/201038

Page 39: Computer graphics12 3 d_viewingpipeline

Projection

10/6/201039

General definition:

Transform points in n-space to m-space (m<n)

In computer graphics

Map 3D camera coordinates to 2D screen coordinates

Page 40: Computer graphics12 3 d_viewingpipeline

Taxonomy of Projections

10/6/201040

Page 41: Computer graphics12 3 d_viewingpipeline

Taxonomy of Projections

10/6/201041

Page 42: Computer graphics12 3 d_viewingpipeline

Parallel Projection

10/6/201042

Center of projection is at infinity

Direction of Projection (DOP) is same for all points

Page 43: Computer graphics12 3 d_viewingpipeline

Orthographic Projection

10/6/201043

DOP Parallel to View Plane

Page 44: Computer graphics12 3 d_viewingpipeline

Oblique Projection

10/6/201044

DOP not perpendicular to view plane

Page 45: Computer graphics12 3 d_viewingpipeline

Oblique Projection

10/6/201045

Examples

Oblique Cabinet

Cavalier Fortification Diagrams

Page 46: Computer graphics12 3 d_viewingpipeline

Orthographic Perspective in Games

10/6/201046

Common in pre-hardware card Graphics

Page 47: Computer graphics12 3 d_viewingpipeline

Parallel Projection View Volume

10/6/201047

Page 48: Computer graphics12 3 d_viewingpipeline

Orthographic Project Matrix

10/6/201048

Straight on projection… throw away Z

What does the matrix look like?

Page 49: Computer graphics12 3 d_viewingpipeline

Parallel Projection Matrix

10/6/201049

Page 50: Computer graphics12 3 d_viewingpipeline

Taxonomy of Projections

10/6/201050

Page 51: Computer graphics12 3 d_viewingpipeline

Perspective Projection

10/6/201051

Page 52: Computer graphics12 3 d_viewingpipeline

Perspective View Volume

10/6/201052

Page 53: Computer graphics12 3 d_viewingpipeline

Camera to Screen

10/6/201053

Remember: Object -> Camera -> Screen

Just like raytracer

“screen” is the z=d plane for some constant d

Origin of screen coordinate 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

Page 54: Computer graphics12 3 d_viewingpipeline

Overhead view of our screen

10/6/201054

Page 55: Computer graphics12 3 d_viewingpipeline

The Perspective Matrix

10/6/201055

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

matrix too!

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

What’s this in non-homogenous coordinates?

Page 56: Computer graphics12 3 d_viewingpipeline

What’s Next?

Transform in 3D word coordinate systemModeling

Transformation

Lighting

Viewing

Transformation

Projection

Transformation

Clipping

Scan

Conversion

3D Geometric Primitives

Image

Illuminate according to lighting and reflectance

Transform into 3D camera coordinate system

Transform into 2D screen coordinate system

Clip primitives outside camera’s view

Draw Pixels (also texturing, hidden surface, …)

10/6/201056

Page 57: Computer graphics12 3 d_viewingpipeline

What’s Next?

Transform in 3D word coordinate systemModeling

Transformation

Lighting

Viewing

Transformation

Projection

Transformation

Clipping

Scan

Conversion

3D Geometric Primitives

Image

Illuminate according to lighting and reflectance

Transform into 3D camera coordinate system

Transform into 2D screen coordinate system

Clip primitives outside camera’s view

Draw Pixels (also texturing, hidden surface, …)

10/6/201057