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

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

Feb 16, 2018

Download

Documents

LêKhánh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 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

3D Viewing Pipeline

Instructor – Stephen J. Guy

10/6/20101

Page 2: 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

Overview

10/6/20102

Review

Linear Transformations & Homogeneous coordinates

Scene Graph

3D Polygon rendering

Graphics Pipeline

Viewing Transformation

Page 3: 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

Overview

10/6/20103

Review

Linear Transformations & Homogeneous coordinates

Scene Graph

3D Polygon rendering

Graphics Pipeline

Viewing Transformation

Page 4: 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

Reviewing Transforms

10/6/20104

Linear Transformations

Scale

Rotate

Shear

Mirror

Page 5: 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

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: 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

Review – Translating and More

10/6/20106

Basic 2D Transformations as 3x3

Page 7: 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

Review – 3D Transforms

10/6/20107

Homogenous coordinates (x,y,z,w)

4x4 transformation matrix

Page 8: 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

Review – Basic 3D Transforms

10/6/20108

Page 9: 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

Review – 3D Rotations

10/6/20109

Page 10: 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

Review – Transformation Hierarchies

10/6/201010

Successively applied matrixes

Stored in a DAG == Scene Graph

Examples

Robot Arm

Articulated Characters

Complex Scenes

Page 11: 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

Transform Example - Robot Arms

10/6/201011

Page 12: 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

Example – Humanoid Character

10/6/201012

Page 13: 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

Example – Complex Scenes

10/6/201013

Page 14: 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

Example – Complex Scene Graph

10/6/201014

Page 15: 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

Ray Casting with Hierarchies

10/6/201015

Page 16: 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

Overview

10/6/201016

Review

Linear Transformations & Homogeneous coordinates

Scene Graph

3D Polygon rendering

Graphics Pipeline

Viewing Transformation

Page 17: 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

3D Polygon Rendering

Many applications make use if 3D polygons with

direct illumination

10/6/201017

Page 18: 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

3D Polygon Rendering - Examples

10/6/201018

Quake II(Id Software)

Page 19: 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

3D Polygon Rendering - Examples

10/6/201019

Architectural Walkthrough

Page 20: 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

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: 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

3D Polygon Rendering

10/6/201021

What steps are necessary to utilize spatial

coherence while drawing polygons on a 2D image?

Page 22: 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

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: 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

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: 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

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: 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

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: 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

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: 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

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: 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

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: 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

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: 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

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: 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

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: 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

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: 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

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: 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

Camera Coordinates

10/6/201034

Canonical coordinate system

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

Convenient for projection, clipping, etc

Page 35: 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

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: 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

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: 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

Finding the Viewing Transformation

10/6/201037

Page 38: 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

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: 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

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: 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

Taxonomy of Projections

10/6/201040

Page 41: 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

Taxonomy of Projections

10/6/201041

Page 42: 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

Parallel Projection

10/6/201042

Center of projection is at infinity

Direction of Projection (DOP) is same for all points

Page 43: 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

Orthographic Projection

10/6/201043

DOP Parallel to View Plane

Page 44: 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

Oblique Projection

10/6/201044

DOP not perpendicular to view plane

Page 45: 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

Oblique Projection

10/6/201045

Examples

Oblique Cabinet

Cavalier Fortification Diagrams

Page 46: 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

Orthographic Perspective in Games

10/6/201046

Common in pre-hardware card Graphics

Page 47: 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

Parallel Projection View Volume

10/6/201047

Page 48: 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

Orthographic Project Matrix

10/6/201048

Straight on projection… throw away Z

What does the matrix look like?

Page 49: 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

Parallel Projection Matrix

10/6/201049

Page 50: 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

Taxonomy of Projections

10/6/201050

Page 51: 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

Perspective Projection

10/6/201051

Page 52: 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

Perspective View Volume

10/6/201052

Page 53: 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

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: 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

Overhead view of our screen

10/6/201054

Page 55: 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

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: 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

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: 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

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