Transcript Document

Programmable Pipelines

Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts Director, Arts Technology Center University of New Mexico

Objectives

• Introduce programmable pipelines - Vertex shaders - Fragment shaders • Introduce shading languages - Needed to describe shaders - RenderMan Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 2

Introduction

• Recent major advance in real time graphics is programmable pipeline - First introduced by NVIDIA GForce 3 - Supported by high-end commodity cards • NVIDIA, ATI, 3D Labs - Software Support • • • • Direct X 8 , 9, 10 OpenGL Extensions OpenGL Shading Language (GLSL) Cg Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 3

Background

• Two components - Vertex programs (shaders) - Fragment programs (shaders) • Requires detailed understanding of two seemingly contradictory apporachs - OpenGL pipeline • Real time - RenderMan ideas • offline Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 4

Black Box View

vertices

CPU Geometry Processor

vertices

Rasterizer

fragments fragments

Fragment Processor Frame Buffer

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 5

Geometric Calculations

• Geometric data: set of vertices + type - Can come from program, evaluator, display list - type: point, line, polygon - Vertex data can be • (x,y,z,w) coordinates of a vertex (glVertex) • Normal vector • Texture Coordinates • RGBA color • Other data: color indices, edge flags • Additional user-defined data in GLSL Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 6

Per-Vertex Operations

• Vertex locations are transformed by the model-view matrix into eye coordinates • Normals must be transformed with the inverse transpose of the model-view matrix so that v ·n=v’ ·n’ in both spaces - Assumes there is no scaling - May have to use autonormalization • Textures coordinates are generated if autotexture enabled and the texture matrix is applied Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 7

Lighting Calculations

• Done on a per-vertex basis Phong model I =k d I d

l

·

n

+ k s I s (

v

·

r

) a + k a I a • Phong model requires computation of

r

and

v

at every vertex Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 8

Calculating the Reflection Term

angle of incidence = angle of reflection cos q i = cos q r or

r ·n

=

l ·n r

,

n

, and

l

are coplanar

r

= a

l

+ b

n

normalize 1 =

r ·r

=

n ·n

=

l ·l

solving:

r

= 2(

l

·

n

)

n

-

l

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 9

OpenGL Lighting

• Modified Phong model - Halfway vector - Global ambient term • Specified in standard • Supported by hardware Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 10

Halfway Vector

Blinn proposed replacing

v ·r

by

n ·h

where

h

= (

l

+

v

)/|

l

+

v

| (

l

+

v

)/2 is halfway between

l

and

v

If

n

,

l

, and

v

y = f/2 are coplanar: Must then adjust exponent so that (

n ·h)

e’ ≈

(r.v)

e Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 11

Primitive Assembly

• Vertices are next assembled into objects - Polygons - Line Segements - Points • Transformation by projection matrix • Clipping - Against user defined planes - View volume, x= ±w, y=±w, z=±w - Polygon clipping can create new vertices • Perspective Division • Viewport mapping Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 12

Rasterization

• Geometric entities are rasterized into

fragments

• Each fragment corresponds to a point on an integer grid: a displayed pixel • Hence each fragment is a

potential pixel

• Each fragment has - A color - Possibly a depth value - Texture coordinates Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 13

Fragment Operations

• Texture generation • Fog • Antialiasing • Scissoring • Alpha test • Blending • Dithering • Logical Operation • Masking Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 14

Vertex Processor

• Takes in vertices - Position attribute - Possibly color - OpenGL state • Produces - Position in clip coordinates - Vertex color Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 15

Fragment Processor

• Takes in output of rasterizer (fragments) - Vertex values have been interpolated over primitive by rasterizer • Outputs a fragment - Color - Texture • Fragments still go through fragment tests - Hidden-surface removal - alpha Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 16

Programmable Shaders

• Replace fixed function vertex and fragment processing by programmable processors called

shaders

• Can replace either or both • If we use a programmable shader we must do

all

required functions of the fixed function processor Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 17

Development

• RenderMan Shading Language - Offline rendering • Hardware Shading Languages - UNC, Stanford - NVIDIA - OpenGL Vertex Program Extension - OpenGL Shading Language - Cg • • OpenGL Microsoft HLSL Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 18

RenderMan

• Developed by Pixar - S. Upstill,

The RenderMan Companion

, Addison-Wesley, 1989.

• Model interface file (RIB)

Modeler Renderer

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 19

Modeling vs Rendering

• Modeler outputs geometric model plus information for the renderer - Specifications of camera - Materials - Lights • May have different kinds of renderers - Ray tracer - Radiosity • How do we specify a shader?

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 20

Shading Trees

• Shaders such as the Phong model can be written as algebraic expressions I =k d I d

l

·

n

+ k s I s (

v

·

r

) s + k a I a • But expressions can be described by trees • Need now operators such as dot and cross products and new data types such as matrices and vectors • Environmental variables are part of state Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 21

Reflection Vector

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 22

Phong Model

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 23