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

3D Viewing Pipeline - COMP575 – Fall 2010comp575.web.unc.edu/files/2010/10/12_3DViewingPipeline.pdf · Overview 2 10/6/2010 Review Linear Transformations & Homogeneous coordinates

  • Upload
    lekhanh

  • View
    217

  • Download
    1

Embed Size (px)

Citation preview

3D Viewing Pipeline

Instructor – Stephen J. Guy

10/6/20101

Overview

10/6/20102

Review

Linear Transformations & Homogeneous coordinates

Scene Graph

3D Polygon rendering

Graphics Pipeline

Viewing Transformation

Overview

10/6/20103

Review

Linear Transformations & Homogeneous coordinates

Scene Graph

3D Polygon rendering

Graphics Pipeline

Viewing Transformation

Reviewing Transforms

10/6/20104

Linear Transformations

Scale

Rotate

Shear

Mirror

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

Review – Translating and More

10/6/20106

Basic 2D Transformations as 3x3

Review – 3D Transforms

10/6/20107

Homogenous coordinates (x,y,z,w)

4x4 transformation matrix

Review – Basic 3D Transforms

10/6/20108

Review – 3D Rotations

10/6/20109

Review – Transformation Hierarchies

10/6/201010

Successively applied matrixes

Stored in a DAG == Scene Graph

Examples

Robot Arm

Articulated Characters

Complex Scenes

Transform Example - Robot Arms

10/6/201011

Example – Humanoid Character

10/6/201012

Example – Complex Scenes

10/6/201013

Example – Complex Scene Graph

10/6/201014

Ray Casting with Hierarchies

10/6/201015

Overview

10/6/201016

Review

Linear Transformations & Homogeneous coordinates

Scene Graph

3D Polygon rendering

Graphics Pipeline

Viewing Transformation

3D Polygon Rendering

Many applications make use if 3D polygons with

direct illumination

10/6/201017

3D Polygon Rendering - Examples

10/6/201018

Quake II(Id Software)

3D Polygon Rendering - Examples

10/6/201019

Architectural Walkthrough

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!

3D Polygon Rendering

10/6/201021

What steps are necessary to utilize spatial

coherence while drawing polygons on a 2D image?

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

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

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

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

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

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

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

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

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

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

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

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

Camera Coordinates

10/6/201034

Canonical coordinate system

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

Convenient for projection, clipping, etc

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

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

Finding the Viewing Transformation

10/6/201037

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

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

Taxonomy of Projections

10/6/201040

Taxonomy of Projections

10/6/201041

Parallel Projection

10/6/201042

Center of projection is at infinity

Direction of Projection (DOP) is same for all points

Orthographic Projection

10/6/201043

DOP Parallel to View Plane

Oblique Projection

10/6/201044

DOP not perpendicular to view plane

Oblique Projection

10/6/201045

Examples

Oblique Cabinet

Cavalier Fortification Diagrams

Orthographic Perspective in Games

10/6/201046

Common in pre-hardware card Graphics

Parallel Projection View Volume

10/6/201047

Orthographic Project Matrix

10/6/201048

Straight on projection… throw away Z

What does the matrix look like?

Parallel Projection Matrix

10/6/201049

Taxonomy of Projections

10/6/201050

Perspective Projection

10/6/201051

Perspective View Volume

10/6/201052

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

Overhead view of our screen

10/6/201054

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?

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

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