You are on page 1of 233

Introduction to SIGGRAPH and Computer Graphics

Course Speakers: Mike Bailey, Oregon State University Andrew Glassner, Coyote Wind Films

The SIGGRAPH conference is an exciting event, but it is often an intimidating experience for first-time attendees. There are so many new terms, new concepts, and new products to try to understand. It is like standing in a room with 100 doors and having no idea which door to open because you have no idea what the label on each door actually means. This leaves new attendees baffled and frustrated about how to spend their time. This course is designed to ease newcomers into the SIGGRAPH conference experience by presenting the fundamental concepts and vocabulary at a level that can be readily understood. Far from being made up of dry facts, this course will also portray the fun and excitement that led most of us here in the first place. Attendees in the course will become well-prepared to understand, appreciate, enjoy, network, and learn from the rest of the SIGGRAPH experience. This is a half-day Beginning course. This course will be given lecture-style. There will be live demos showing the use of computer graphics in applications such as modeling, animation, rendering, and visualization. These will be used to illustrate fundamental concepts and to illustrate those concepts in applications.

Lecturers:
Mike Bailey Computer Science Oregon State University 2117 Kelley Engineering Center Corvallis, OR 97331-5501 W: 541-737-2542 F: 541-737-1300 mjb@cs.oregonstate.edu Mike Bailey is a professor in Computer Science at Oregon State University. Mike holds a PhD from Purdue University. Mike has worked at Sandia National Labs, Purdue University, Megatek Corporation, and the San Diego Supercomputer Center. Mike has extensive experience with the SIGGRAPH courses, having been Courses Chair five times and Conference Co-Chair in 1991. Mike has taught numerous classes at conferences (SIGGRAPH, IEEE Visualization, Supercomputing), at the college level (Purdue, UC San Diego, San Diego State University, Oregon State University), and

commercially. Mike was five times voted Computer Science Teacher of the Year by the UCSD CS seniors.

Andrew Glassner Coyote Wind Films 726 North 47th Street Seattle, WA 98103 W: 206-632-7663 F: 206-632-7665 andrew@glassner.com Andrew Glassner is an independent writer and consultant. Andrew holds a PhD from the University of North Carolina at Chapel Hill. Andrew is well known in the SIGGRAPH community through his papers, panel presentations, and course speaking. Andrew has also worked at Xerox PARC, IBM Watson Research Lab, Bell Communications Research, Delft University, the New York Institute of Technology, and Microsoft Research. Andrew is familiar with the workings of SIGGRAPH, having been Papers Chair in 1994. Andrew is also known for his "unique" sense of humor that comes through in his presentations.

Prerequisites
The prerequisites for this course are a basic understanding of computers and algebra. We will fill in all other required knowledge by carefully planning the order of presentations.

Level of Difficulty
Beginner

Intended Audience
This course is intended for the complete newcomer to SIGGRAPH and computer graphics who wants to learn some of the basic terms and concepts in computer graphics as well as receive some guidance on how to get the most out of attending SIGGRAPH.

Course Syllabus

8:30: Welcome and Overview (Bailey) o Course goals and schedule 8:30 9:00: How to attend a SIGGRAPH, I (Bailey) o How to read the schedule and where to get more help o What other courses will attending this one qualify you for? o What is the difference between Papers and Panels? o What are Posters? o What is the Educators program? o What to look for in the Exhibition, and advice on getting the most from it in a short time 9:00 9:30: How to attend a SIGGRAPH, II (Glassner) o Why you want to attend the Electronic Theatre and when o How is the ET different from the Computer Animation Festival? o What is the difference between Papers and Sketches? o What is special about the Art Gallery? o What is Emerging technology about? o What is the Guerilla Studio? 9:30 9:45: Scientific and Data Visualization (Bailey) o What problems are you trying to solve? o How does this impact hardware and software decisions? 9:45 10:15: GPU Programming (Bailey) o Vertex, Geometry, Fragment shaders o Where does this fit in the graphics pipeline? o What you can do with shaders -- effects, visualization, geometry o How does this affect buying a graphics card? 10:15 10:30: Morning Break 10:30 11:00: Modeling (Glassner) o The creation of 3D models o Scene descriptions o Levels of detail o Model "robustness" versus complexity o Geometric primitives 11:00 11:30: Rendering (Glassner) o Efficiency, Accuracy, Effects o Two approaches: start at the object and start at the eye o Local and global illumination o Shading o Cel rendering o Toon rendering o Rendering in Hardware 11:30 12:00: Animation (Glassner)

o o o o

Keyframe interpolation Object geometry animation Camera animation Kinematics and inverse kinematics

12:00 12:30: Finding additional information (Bailey)

Introduction to SIGGRAPH and Computer Graphics


Mike Bailey Oregon State University Andrew Glassner Independent

Mike Bailey
Professor of Computer Science, Oregon State University PhD from Purdue University Has worked at Sandia Labs, Purdue University, Megatek, San Diego Supercomputer Center (UC San Diego), and OSU
mjb@cs.oregonstate.edu

Andrew Glassner
Author, screenwriter, artist from Coyote Wind Studios PhD from the University of North Carolina Chapel Hill Has worked at IBM, Bell Communications, Delft University, NYIT, Xerox PARC, Microsoft Research, and Coyote Wind Studios
andrew@glassner.com

Course Goals
Understand the different venues at SIGGRAPH, and how to strategically attend the ones that are best for you Provide a background for papers, panels, and other courses Help appreciate the Electronic Theater Get more from the vendor exhibits Give our take on where the future is Provide pointers for further study

Topics
How to Attend SIGGRAPH 2007 (Mike and Andrew) Scientific and Data Visualization (Mike) GPU Programming (Mike) Modeling (Andrew) Rendering (Andrew) Animation (Andrew) Finding More Information (Mike)

Introduction to SIGGRAPH and Computer Graphics


Mike Bailey Oregon State University Andrew Glassner Independent

How To Attend SIGGRAPH 2007


Mike Bailey
Oregon State University
mjb@cs.oregonstate.edu

Andrew Glassner
Coyote Wind Studios
andrew@glassner.com

You cant see it all, so Think Strategically -- Make a Plan and a Schedule !

Courses
Sunday Wednesday Some are standard knowledge (e.g., this one) knowledge one Some are cutting edge Some are new topics You got the full set of notes on the courses DVD

Courses Strategy
Choose courses that are useful Choose courses that are meaningful Chose courses where you really want to see the speaker(s) speaker(s) Choose courses for which there will be great visual presentations which cannot be replicated in the notes Hop around between courses to catch the best topics and speakers

Web Program
Wednesday - Thursday Covers issues such as: navigation, 3D interfaces, applications, animations, games, and standards

Opening Session
Monday, 1:15 3:15 Doors open 12:30 Only those with Full Conference or One Day badges can enter State of the SIGGRAPH message by the SIGGRAPH Chair SIGGRAPH

Opening Session Awards


Coons Award Achievement Award Significant New Researcher Award

Papers
Monday-Thursday Monday Deep technical information Printed in the proceedings and on the conference DVD Strategy: attend when an animation or interactive technique is being discussed Strategy: attend when you think you will not understand the topic from reading alone

Panels
Monday-Thursday Monday General discussion, opinion, sometimes controversial Important point: sometimes transcribed, usually not Strategy: attend when a topic, speaker, or animation you really want to see is being discussed

Sketches
Monday - Thursday Paper-like content, but shorter and less formal Paper Some of the work has been completed Some of it is Work in Progress Progress

Special Events
Fast-Forward Papers review: Sunday 6:00-8:00 Fast6:00 ACM Student Research Competition: Tuesday, 3:45-5:30 3:45-

Exhibition
Tuesday Thursday Many vendors time their hottest product releases for this week! But, its big, so go with a strategy! it

Exhibition Strategy
The Exhibition is open 10:00-6:00 on Tuesday and 10:00Wednesday, and 10:00-5:00 on Thursday 10:00 The vendors are all listed in the Program and Buyers Guide Buyer They are listed both by alphabetical name and by product category

Exhibition Strategy
Look at the list of vendors in the Program and Buyers Guide Make a list of the ones you really must see and sort the list by booth number Booth numbers are XXYY, where XX is the Aisle # and YY is (1/5)*the number of feet from the front For example, BunkSpeed = booth 1110, which is Aisle 11, 50 feet from the front Start at one end of the floor and work your way across

Exhibitor Tech Talks


Tuesday - Thursday 2-hour demos, tutorials, and interactive instruction Sometimes a raw sales pitch, but usually more informative than that

Exhibition Warning

The Exhibition closes at 5:00 on Thursday afternoon, not 6:00 !!!

Electronic Theatre
Monday Wednesday Computer Graphicss greatest animation hits for Graphics the past year It is considered cool to see it early in the week Watch to see whose piece goes first and whose goes last Sometimes includes an audience participation piece

Reception !
Wednesday 8:00 10:00

Pathfinders
Staffed by graphics veterans who can give advice on veterans attending the conference They are also very nice people Open Saturday Thursday

Art Gallery
Sunday Thursday Always fun ! Be sure to see it, even if you just stroll through without stopping

Get Involved !
Tuesday, 6:30 PM

Educators Program
Wednesday and Thursday Presentations of innovative educational uses of computer graphics Covers both teaching computer graphics and using computer graphics to teach other things

Emerging Technologies

Sunday - Thursday Speculative research on graphics, visualization, robotics, music, audio, displays, haptics, sensors, haptics, gaming, web, AI, and entertainment

Guerilla Studio
Sunday - Thursday Working studio for 2D and 3D graphics, and 3D prototyping

Job Fair
Tuesday Wednesday Good place to find information on who is hiring Also a good place to post your resume

Birds of a Feather
Opportunity for impromptu gatherings centered around different topics All week Check the BOF sign-up board sign-

Good Luck, and have fun !

How To Attend SIGGRAPH 2007


Mike Bailey
Oregon State University
mjb@cs.oregonstate.edu

Andrew Glassner
Coyote Wind Studios
andrew@glassner.com

Computer Graphics for Scientific Visualization


Mike Bailey
Oregon State University
mjb@cs.oregonstate.edu

Why Are We Covering This Topic?

Not all computer graphics is used for realistic rendering, animation, and games. Much of it is used for data exploration and education. Visualization provides very nice examples of that.

Computer Graphics

Geometry

Rendering

Display

A Gallery of Display Options


Points Lines Flat Shaded

Smooth Shaded

Transparent

Scientific Visualization

Data

Geometrizing

Geometry
Information & Insight

Rendering

Display

Visualization Dimensions
Spatial Dimension 2D 3D

Scalar Data Dimension

Vector

2D Scalar
Examples: Temperatures on a plane Barometric pressures on a map Heights on a map Techniques: Colored dots Contour lines Interpolated Colors

2D Color Interpolation

2D Contours

3D Scalar
Examples: Temperatures in a room Molecular potentials Techniques: Colored dots (point cloud) Cutting plane Isosurfaces

3D Orthographic Point Cloud

3D Perspective Point Cloud

3D Jittered Point Cloud

Cropping the Point Cloud: Range Sliders

Cropping in X, Y, Z

Cropping in S

Whats Happening on a Cutting Plane?

Whats Happening on More Than One Cutting Plane?

Whats Happening within the Volume? 3D Wireframe Isosurface

3D Polygonal Isosurface

10

Isosurface + Contour Plane

Isosurfaces of Medical Data

11

3D Vector
Examples: 3D flow field

Techniques: Arrows (vector cloud) Streamlines

3D Flow Field
Streamlines

Vector Cloud

12

3D Flow Field Probes


Ribbon Trace

Streamline Trace

3D Flow Blob Probes

13

3D Volume

Examples: 3D Medical Scan

Techniques: Volume Rendering

14

A Volume is Essentially a Point Cloud Where Each Point has Size

Original Data:

Range Crop the Scalar Value:

15

Cropping the Volume

Turbulent Flow Solar Wind

16

Bone Structure

Underground Rock Layers

Setting Colors
Red+Green=Yellow Green+Blue=Cyan Red+Blue=Magenta Red+Green+Blue=White Known as Additive Color, or RGB

glColor3f( r, g, b );

17

Color Rules: Your Eye

Rods: Provide perception of light intensity, or luminance. Lots of these, mostly concentrated in the periphery of your field of vision. Cones: Provide perception of colors. Much fewer of these, mostly concentrated in the center of your field of vision.

Color Rules
Remember the Luminance Equation: L = .30R + .59G + .11B Use it to decide what makes a good contrast and what doesnt

18

Black White

Black White

Black White

Black White

Black White

Black White

Black White

Black White

Black White

Red

Red

Red

Red

Red

Red

Red

Red

Red

Yellow Green Blue

Yellow Green Blue

Yellow Green Blue

Yellow Green Blue

Yellow Green Blue

Yellow Green Blue

Yellow Green Blue

Yellow Green Blue

Yellow Green Blue

Color Rules

Do not use Reds and Blues directly together

19

Reds and Blues are on opposite ends of the color spectrum. It is hard for your eyes to focus on both.

Color Rules
The best colors for fine detail are black-grey-white. This is especially true if you are going to be videotaping this display.

20

Color Rules
Surround contrasting color areas with a white or black line

21

Color Rules
Be aware that our perception of color changes with: The surrounding color The size of the object How close two objects are The ambient light The age of the viewer

22

23

24

Color Rules
Watch out for afterimage effects !

25

Color Rules
Watch out for afterimage effects !

Beware of Mach Banding

26

Beware of Mach Banding

Actual Intensity

Perceived Intensity

Beware of Mach Banding

Perceived Intensity Actual Intensity

27

Beware of Lots of Other Stuff

Visualization Hardcopy
Film recording Color printing Videotaping Manufacturing

28

NTSC Videotaping for Visualization Hardcopy


Resolution is 640x480, at best Interlaced Color bandwidth is given to, in order: 1. Luminance 267 cycles/scanline 2. Blue-Orange 96 cycles/scanline 3. Purple-Green 35 cycles/scanline Saturated (bright) colors dont come out well

Fabrication for Visualization Hardcopy

Black Beetle Virus

29

Oregon

Willamette Valley Geology

30

Example: Model of Southern California Fire Smoke

Example: Modeling Anabolic Aortic Aneurysms

CAT scan slices from the UCSD Medical School

Interaction in OSU vx (Volume Explorer)

Tesselated by OSU vs (Volume Solid) Fabricated at OSU Center for Visualization Prototypes

31

Summary

Scientific Visualization has no rules. Anything that turns data in the computer into information and insight in your brain is fair game.

Computer Graphics for Scientific Visualization


Mike Bailey
Oregon State University
mjb@cs.oregonstate.edu

32

GPU Shader Programming


Mike Bailey
Oregon State University
mjb@cs.oregonstate.edu

GPU Shader Programming

Allows programmers to load their own code into parts of the hardware graphics pipeline Gives a unique combination of control and speed This is a hot, new area in computer graphics These notes will focus on what can be done this way, not on how to do it (that would take lots more time) If you want to know more, catch me during a break!

The Generic Computer Graphics System

Input Devices

Vertex Processor CPU B u s Rasterizer Fragment Processor


TC RGBAZ Pixels Uniform variables

Network

Shader Memory
Uniform variables

Display List

Z-Buffer

Back

Front

Video Driver

Texture Memory

Double-buffered Framebuffers

A GLSL Vertex Shader Replaces These Operations:


Vertex transformations Normal transformations Normal normalization Handling of per-vertex lighting Handling of texture coordinates

A GLSL Fragment Shader Replaces These Operations:


Color computation Texturing Color arithmetic Handling of per-pixel lighting Fog Blending Discarding fragments

Bump Mapping with Shaders

Changing the Bump Height

Cube Mapping with Shaders

Cube Map of Nvidias Lobby

Using Noise in Shaders

Positional Noise

Gradient Noise

Image Representation of 2D Noise

4 Octaves

1 Octave

3D Surface Representation of 2D Noise

4 Octaves

How to Apply Noise


Have an equation to describe color assignment

Have actual coordinates at a pixel

Add Noise to the actual coordinates to produce new coordinates

Use the new coordinates in the old equation to assign a color at that pixel

Noise Examples

Color Blending for Marble

Color Blending for Fire

Color Blending for Clouds

Deciding when to Discard for Erosion

Using Shaders to Manipulate Imagery

Negatives

Brightness

Contrast

Sharpening

Embossing

Toon Rendering
Original Image Colors Quantized Outlines Added

Toon Rendering for Non-Photorealistic Effects


Use the GPU to enhance scientific and engineering illustration

Mandelbrot Set

zi+1 =

z +z
2 i

How fast does it converge, if ever?

Julia Set

zi+1 =

z +c
2 i

How fast does it converge, if ever?

Spectral Effects Using Shaders

Rainbow Effects

~ 41

Color
Red Green Blue

650 nm 500 nm 400 nm

1.510 1.519 1.528

42 41 40

cos
0.743 0.755 0.766

50.0 51.5 53.0

Rainbow Strategy

1. Draw one big quadrilateral across the scene 2. Anywhere that .7400 cos() .7700, paint the right color 3. If not, discard that fragment

Scientific Visualization using Shaders

Bump-Mapping for Terrain Visualization

Visualization by Nick Gebbie

2D Line Integral Convolution

Original image

At each fragment:
1. 2. 3. Find the flow field velocity vector there Follow that vector in both directions Blend in the colors at the other fragments along that vector

Rotational flow field

3D Line Integral Convolution

Visualization by Vasu Lakshmanan

Extruding Shapes Along Flow Lines

Adding moving humps to create a peristaltic effect

Adding bumpmapping to aid in understanding the orientation

Geometry Processing using Shaders

A Shader-eye View of the Graphics Process, with Geometry Shaders


Vertex Processor
Transformed Vertices

Vertices

CPU

B u s

Assemble Geometry

Create New Geometry Assemble New Geometry

Assembled Primitive

Rasterizer
Interpolated Values

Fragment Processor

Pixels

Expanding 4 Points into a Bezier Curve with a Variable Number of Line Segments

FpNum = 5

FpNum = 25

Sphere Subdivision starting with 8 triangles


Level = 0 Level = 1

Level = 3

Level = 2

Shrinking Triangles

Geometry Silhouettes

Hedgehog Plots

Hedgehog Plots Gone Wild?

GPU Shader Programming


There are a lot of GPU shader programming resources at:

http://eecs.oregonstate.edu/~mjb/glman
Mike Bailey
Oregon State University
mjb@cs.oregonstate.edu

An Introduction To Modeling
Andrew Glassner Coyote Wind Studios

3D Computer Graphics The Big Picture

Why Create 3D Models?


Image Synthesis Design Manufacturing Simulation Art

Models for Image Synthesis


Camera
Viewpoint for image

Models for Simulation


Physics
An airplane wing

Light Sources
Radiate light Have size and shape

Mechanics
Fit between parts Manufacturability

Objects
Physical structures

Model Attributes
Structure
Geometry and Topology

Levels of Detail
Visual detail for images Structural detail for simulation

Appearance
Looks and surfaces

Seeing in 3D
The world in basic shapes Simple but not too simple

Detail for Image Synthesis


Real shapes are complex! More detail = more realism
Takes longer to model, longer to render, and occupies more disk space

Procedural objects
More detail when you want it

Detail for Simulation


Can affect accuracy of simulation Different simulations require detail in different places

Levels of Detail for Simulations

Does it fit in the box?

Does it fit with the cover on?

Types of Modelers
Interactive Scripted Data Collection Others

<A
Model Manipulation

A>
Primitives and Instances
Platonic ideal Shapes are instances of primitives Each instance may be different

Choosing a Model Representation


Cost Effectiveness Complexity Ease of Simulation Ease of Animation

Model Cost
Designers time Computer Storage Rendering Time Simulation Time Ease of Animation

Model Effectiveness
Geometry
Looks Accuracy

Model Complexity
Number of primitives Number of shapes Complexity of each instance

Appearance
Looks Accuracy

Model Simulation
Is shape matched to simulator? Cost of conversion
Time and storage Maintaining duplicate versions

Model Animation
Articulation
Getting at the part you want Getting it to move correctly

Physics of motion Constraints

Modeling and Rendering


Rendering adds light The renderer tracks the light Lights and cameras are part of the model.

Modeling and Animation


Animating is a model over time Different keys given by the animator are interpolated to give in-betweens

Levels of Detail
Use only enough detail
Complexity costs

Procedural Models
Create model on demand Models from coarse to fine Requires skillful programming

Switch levels of detail


Requires multiple models Switching is hard to hide

Automatic Methods

Basic Linear Operations on Primitives


Translate Rotate Scale

<B
Box Modifiers
9

10

11

B>
12

Free-Form Deformation
Change the space, not the object Great for animation Allows flexible transformations
Bend, twist, taper, melt, etc.

<C
FFD

13

C>
Types of Primitives
0 1 2 3 Dimensions: Points Dimension: Lines Dimensions: Surfaces Dimensions: Volumes

Point Primitives
Particle systems Requires many particles Often procedurally controlled

14

Surface Primitives
Polygons Patches

Polygons
Simple to define and use Assemble to make polyhedra Flat Flat Flat Really, really flat, always

<D
Polygon shading

15

16

D>

<E
Polygon counts
17

E>
Images by Neil Blevins

Images by Neil Blevins

18

Patches
Naturally curved Defined by control points or curves Interpolating Approximating

Interpolation and Approximation


Interpolation

Approximation

Continuity
0-order 1-order 2-order

Types of Patches
Bezier B-spline Bicubic NURBS many more

19

20

21

<F
Mesh Smooth
22

F>
Voxels
Small blocks of space Equally-sized (grid) Varying sizes (octree)

Volumetric Primitives
Volumes that enclose some space Open vs. closed Can be complex, e.g. a donut

Voxels for Approximation

Original Shape

Voxel Approximation

Constructive Solid Geometry


Combination rules for solids Each combines two solids Results can are new solid
CSG Tree

<G
CSG
23

Three (or four) rules

CSG

Difference is Not Symmetrical

B
Union: A + B

B
A- B B-A

Difference: A-B AIntersection: A&B

Difference is Useful for Cutting Holes

Block + Cylinder

Block - Cylinder

24

G>
Algebraic Functions

Fillets and Blends


Make a smooth join between surfaces Hard to do automatically

Blobs
Algebraic functions, usually spherical Add together to make smooth blends

F(x,y)=0

F(x,y)= x2 + y2 - radius2

25

<H
Blobby movie

SOR, Extrude, Loft

Surface of Revolution
Make an outline Revolve it

26

Extrusion
Make an outline Sweep it along a line or curve

H>

<J
Morph
27

J> K>

<K
Sheets
Shading

28

29

30

31

Texture

32

33

34

<L
Solid Texture

35

L>

Knotwork

36

37

38

39

40

Texturing Methods

41

Native Mapping

Planar Mapping

Native Mapping

Native Mapping

Cylindrical Mapping

Planar Mapping

42

Shrink Mapping

Spherical Mapping

43

Procedural Models
Fractals Graphtals Shape Grammars General Procedural Models

Fractals
Self-similar Infinite detail
Computer only approximates

Difficult to control Mountains and ferns

Graphtals
Make the structure first Add geometry later Useful for plants and organic forms Data Amplification

44

Shape Grammars
Shapes that turn into other shapes Details that work with substrate Data Amplification

45

2D Variations

46

47

48

49

50

3D Shape Grammars

51

52

53

54

55

56

57

58

General Procedural Models


Most powerful technique of all Smooth changes in detail Supports simulation, animation Allows models that interact with the scene

59

Modeling Environments
Interactive Scripted Captured Clip Art

Interactive Modeling
Interactive Exploratory Immediate Feedback

Scripted Modeling
Precise Repeatable

60

Physical Models
Build up 3D intuition Stretches visual imagination

61

62

Captured Modeling
Allows capturing real-world shapes Generates rich models Can be noisy Can have geometric restrictions

Clip Art
Fast acquisition Can be cheaper May not be articulated as you want Difficult to customize

Modeling for Animation


Rigid structures are easiest to make Articulated structures are easiest to animate Plan for where you want motion Built-in constraints

Conclusions
Many primitives Many modelers Use what you need modeler, primitive, construction
style, and level of detail

Think before you model!

63

64

65

An Introduction To Rendering
Andrew Glassner Coyote Wind Studios

Rendering Roots
The Visual Arts
Painting, Sculpture

Physics
Studying nature

Computers
Efficient algorithms

What is Rendering?
Turning ideas into pictures Communications tool A means to an end

Approaches to Rendering
Simulate Nature Anything else

Simulating Nature
Advantages
Precise goal Path is clear Practical value

Disadvantages
Ignores other styles

Photorealism
The Big Winner so far
coined in 1968 just one school of art alternatives emerging

Todays view
Rendering as commodity Buy, dont write Still requires care
Efficiency Accuracy Effects

Rendering
Transformation Inputs
Geometry, physics, programs, images, perception

Output
Images

Purpose of this talk


The basic ideas
Techniques Tradeoffs Vocabulary

The Rendering Equation


Unifies all algorithms Based on nuclear physics Trivial and self-evident

High-level understanding
Not programming!

The Big Picture


Fake a photo (almost) Data into picture
Geometry Surfaces
Reflection Transparency Emission

Camera and film

Light and Matter


Reflection Transmission Absorption

Rendering
Interaction of Light and Matter
Light Matter

The Flow of Light


Flux Photons in space

The Usual Question


Whats the color of the light
from this point on this surface in this direction

The Interaction
Light arrives Energy transfers Light departs

Shading
1. Calculate incident light 2. Interact with material 3. Calculate outgoing light

1. Gather Incident Light

2. Interact With Material

Visibility
What do I see? Paint by numbers

3. Calculate Outgoing Light

Shading and Visibility


Visibility
What we see

Shading
Fill in the numbers Dont stick to flat colors

Shading
How it looks

Local & Global Shading


Use environment, or fake it? Local shading
Fake it, fast and dirty Dont worry, be happy

Global shading
Do it slow and correct Worry, be happy

Visibility: Paint-by-numbers
8 4 5 7

Why do it globally?
Shadows Reflections Refraction (transparency) Emissions (light sources) Subtle touches

3 1

Shading: Object colors


Why do it locally?
Often close enough Fast! Hardware support Many effects can be faked Unlimited scene size

Ray Tracing 2
Shoot new rays to find illumination

Ray Tracing

Ray Tracing 1
Follow lines of sight

10

Ray Tracing Without Words

11

Radiosity 1
Discretize the environment

Radiosity 2
Bounce energy back and forth

Radiosity

12

Radiosity 3
View results

13

Radiosity Without Words

14

Lighting

Images by Neil Blevins

15

Comparing Ray Tracing and Radiosity

Images by Neil Blevins

Image by Neil Blevins

Image by Chris Pember

16

Hardware support
Z-buffers
Inifnite # of objects Local shading Fast Many tricks available

Image-Based Rendering
Some photos Some geometry

Rendering at extremes
Atoms
or sub-atomic particles

Sue Vision

Galaxies
or the Milky Way

Relativity Ocean depths Inside people

Bob Graphics Image-Based Rendering (IBR)

17

Computer Graphics
Output

Image Synthetic Camera

Model

Computer Vision
Output

<A
Alpha Maps

Model

Real Scene

Real Cameras

CG Meets CV

A>
18

<B
Street Barricade

B>
<C
Patio Table
19

20

C>
21

Fluorescence

Solar Halos

22

23

24

Halo Movie

Odd Output Media

25

Interference

26

Relativity

27

Polarization

Phosphorescence

28

29

Caustics
Focused light

Image by Johan Thorngren

Image by Johan Thorngren

30

Volumetric Effects

Non-Euclidean Space

31

Exposure
Cameras Lenses Films Intended viewing conditions

Animation
Film: 24 frames/second
30 minutes = 43,200 frames More for TV!

Motion blur

32

Color 2
Devices vary
Printers vs. monitors

Perception matters
Metamers Diet, recent conditions

Interpolation is tricky
RGB is not perceptually uniform

Non-Realistic Rendering

Color 1
The The The The The RGB Myth HSV Myth 8-bit Myth Constancy Myth Fifth Myth with pith

33

Real Materials
Absorption spectra Layers or coatings Phosphors, fluorescents Metals

34

Reflectivity of Paper

Images 1
Frame buffers
Pixels 8 bits/color

Samples
1 sample/pixel Supersampling

Images 2
Storage
Components
Integer, Floating point

Symbolic

Compression
Lossy (MPEG, JPEG) Non-lossy (GIF) Speed vs. space

35

Compositing
Layering of images Backgrounds, foregrounds Real Projection Mattes
Matte lines Matte operators Alpha buffers

36

Image by Michael Spaw

Image by Steven Blackmon

Image by Johan Thorngren

37

The future 1
Photorealism grows
More accuracy More speed Parallel algorithms

Where The Fun Is


Non-Realistic rendering Shaders The fuzzy space

Subjective Rendering grows


New opportunities More personal

Image by Tomek Baginski

Image by Jorge Seva & Sergio Miruri

The future 2
Desktop animation
Sophisticated support Standards and architectures Rendering one piece among many

Image Credits
Discontinuity Meshing: Dani Lischinski, Filippo Tampieri, Donald P. Greenberg Opera Lighting: Julie O'B. Dorsey, Francois X. Sillion, Donald P. Greenberg Radiosity Factory and Museum: Michael F. Cohen, Shenchang Eric Chen, John R. Wallace, Donald P. Greenberg Two Pass Rendering: John R. Wallace, Michael F. Cohen,Donald P. Greenberg 3 teapots, Caustic Pool: Eric Veach Summer Lake: Matt Pharr, Craig Kolb, Reid Gershbein, Pat Hanrahan Color Head: Philippe Lacroute, Marc Levoy Material Vases: Rob Cook, Kenneth Torrance 1984: Tom Porter, Rob Cook, Loren Carpenter The Compleat Angler: Turner Whitted Still Life: Cassidy Curtis Focused Caustics: Paul Heckbert TV Room: Bob Zeleznik, Andy Forsberg, Loring Holden Big Cloud: David Ebert Interior: Michael Fowler Sphereflake, Counter, Camshaft, Liberty Set, Ronchamps: Eric Haines

You did what, Grandpa?

38

Thanks
Michael F. Cohen Peter-Pike Sloan Jonathan Shade Paul Debevec Marc Levoy

39

40

41

Image by Steven Blackmon

42

An Introduction To Computer Animation


Andrew Glassner Coyote Wind Studios

Why Animation Works


Many still images Rapid succession Persistence of vision
Must overcome flicker

Animation is Expensive!
30 frames/second 30 minutes = 54,000 frames 5 minutes/frame, 12 hours/day ~ 1 year Limited animation Computer-assisted animation

Thinking About Animation


Low level: Individual frames Mid level: Sequences & scenes High level: Story and message Computer helps all 3 levels

Traditional 2D Animation
Hand-drawn cels Stacks of cels over background Only redraw cels that change
Limited animation

Experimental forms

Traditional 3D Animation
Individual frames Stop motion
King Kong, Wizard of Space & Time

Puppetry
Claymation

Experimental forms

Computer-Assisted Animation

2D
Create & draw frames Computer helps ink & paint

Computer-Assisted Animation
3D
Create models, sets, poses Computer interpolates Computer renders, composes

2D Computer Animation
What gets interpolated?
Strokes Outlines Colors

High-quality compositing

2D Morphing
Image interpolation Feature matching Multiple layers

3D Computer Animation
What gets interpolated?
Shape geometry Shape appearance Light source information Cameras Anything!

3D Computer Animation
1. Interpolate 2. Render 3. Compose

Object Animation
Location Geometry Transformations & deformations Appearance and textures Light sources

10

Camera Animation
FOV Focal length Position & orientation

Object Interpolation
Parameterized transformation
Rotation Scaling Deformation

Interpolate parameters Build new transformations

11

12

3D Animation Methods 1
Low level manual High level manual Automated

Parametric Interpolation
Any number of parameters User-specified smoothness Transformation & deformations Parameter source
User Measured (rotoscope, mocap) Procedural

13

Kinematics
Specify position and time Give velocity, acceleration of parts Nested interpolation Each transformation accessible

14

Bouncing Ball

15

16

Bounce

Ball vertical position

17

Squash

Ball squash percentage

18

Path

Ball track position

19

Ball track percent

Path

20

Inverse Kinematics
Goal-driven Supports constraints Control what you care about
Let computer fill in the rest

21

IK

22

Constraints
Parametric restrictions Aids in inverse kinematics
Put the foot on the ground

Restricts model to sensible poses and motion Can be frustrating

23

Dynamics
Physical simulation Based on physics Requires physical data
Mass, center of mass, moments of inertia, friction, etc.

Accurate motion Difficult to control

24

Simulation
Precompute model parameters May be expensive Many methods available Complex motion
Flocking Cloth Liquids

25

Dynamics

26

Cloth films

27

28

29

30

Wizard

31

Parameterized Motion
Capture Synthesize

MOCAP processing

The Process of Motion Capture: Dealing with the Data Bodenheimer, Rose, Rosenthal, Pella

Computer Animation and Simulation 1997

32

Compositing
Multiple renders Overlay results Huge time savings Extra control

33

34

35

Particle Systems
Points Born, Live, Die Color Motion Geometry

Smoke

36

Bubbles

37

Scripting
Programming language Results of simulation
With constraints

Can include 2D transitions

38

Artificial Intelligence
High level directors language Conversations Shots Scripts?

39

Combined Methods
Key-framing major components Simulation for details
Secondary motion

40

Slide Credits
Charles F. Rose Michael F. Cohen Bobby Bodenheimer

41

Conclusions
The computer is not the animator! Many types of motion control Different skills involved Emotion still requires acting

Thank you!
andrew_glassner@yahoo.com www.glassner.com

42

Where to Find More Information about Computer Graphics and Scientific Visualization
Mike Bailey Oregon State University

1. References 1.1 General SIGGRAPH Online Bibliography Database:


http://www.siggraph.org/publications/bibliography

F. S. Hill, Computer Graphics Using OpenGL, Prentice Hall, 2001. Edward Angel, Interactive Computer Graphics: A Top-down Approach with OpenGL, AddisonWesley, 2003. Alan Watt, 3D Computer Graphics, 3rd Edition, Addison-Wesley, 2000. Peter Shirley, Fundamentals of Computer Graphics, AK Peters, 2005. Donald Hearn and Polly Baker, Computer Graphics with OpenGL, Pearson/Prentice-Hall, 2004. Olin Lathrop, The Way Computer Graphics Works, John Wiley & Sons, 1997. Andrew Glassner, Graphics Gems, Academic Press, 1990. James Arvo, Graphics Gems 2, Academic Press, 1991. David Kirk, Graphics Gems 3, Academic Press, 1992. Paul Heckbert, Graphics Gems 4, Academic Press, 1994. Alan Paeth, Graphics Gems 5, Academic Press, 1995. Jim Blinn, A Trip Down the Graphics Pipeline, Morgan Kaufmann, 1996. Jim Blinn, Dirty Pixels, Morgan Kaufmann, 1998. David Rogers, Procedural Elements for Computer Graphics, McGraw-Hill, 1997. SIGGRAPH Conference Final program. 1.2 Math and Geometry Eric Lengyel, Mathematics for 3D Game Programming and Computer Graphics, Charles River Media, 2002. Jean Gallier, Curves and Surfaces in Geometric Modeling, Morgan Kaufmann, 2000.

April 20, 2007

Walter Taylor, The Geometry of Computer Graphics, Wadsworth & Brooks/Cole, 1992. Gerald Farin, Curves and Surfaces for Computer Aided Geometric Design, 3rd Edition, Academic Press, 2000. Gerald Farin and Dianne Hansford, The Geometry Toolbox for Graphics and Modeling, AK Peters, 1998. Joe Warren and Henrik Weimer, Subdivision Methods for Geometric Design: A Constructive Approach, Morgan Kaufmann, 2001. Barrett ONeil, Elementary Differential Geometry, Academic Press, 1997. Joseph ORourke, Computational Geometry in C, Cambridge University Press, 1996. Christopher Hoffman, Geometric & Solid Modeling, Morgan Kaufmann, 1989. Michael Mortenson, Geometric Modeling, John Wiley & Sons, 1985. I.D. Faux and M.J. Pratt, Computational Geometry for Design and Manufacture, Ellis-Horwood, 1979. Eric Stollnitz, Tony DeRose, and David Salesin, Wavelets for Computer Graphics, MorganKaufmann, 1996. Ronen Barzel, Physically-Based Modeling for Computer Graphics, Academic Press, 1992. David Rogers and J. Alan Adams, Mathematical Elements for Computer Graphics, McGraw-Hill, 1989. John Snyder, Generative Modeling for Computer Graphics and Computer Aided Design, Academic Press, 1992. 1.3 Scientific Visualization Klaus Engel, Markus Hadwiger, Joe Kniss, Christof Rezk-Salama, and Daniel Weiskopf, RealTime Volume Graphics, A.K. Peters, 2006. Christopher Johnson and Charles Hansen, The Visualization Handbook, Elsevier Academic Press, 2005. David Thompson, Jeff Braun, and Ray Ford, OpenDX: Paths to Visualization, Visualization and Imagery Solutions, Inc., 2001. Chandrajit Bajaj, Data Visualization Techniques, John Wiley & Sons, 1999. Min Chen, Arie Kaufman, and Roni Yagel, Volume Graphics, Springer-Verlag, 2000. William Schroeder, Ken Martin, and Bill Lorensen, The Visualization Toolkit, 3rd Edition, Prentice-Hall, 2004.

April 20, 2007

Luis Ibanez and William Schroeder, The ITK Software Guide: The Insight Segmentation and Registration Toolkit (version 1.4), Prentice-Hall, 2003. Greg Nielson, Hans Hagen, and Heinrich Mller, Scientific Visualization: Overviews, Methodologies, Techniques, IEEE Computer Society Press, 1997. Lenny Lipton, The CrystalEyes Handbook, StereoGraphics Corporation, 1991. Brand Fortner, The Data Handbook: A Guide to Understanding the Organization and Visualization of Technical Data, Spyglass, 1992. William Kaufmann and Larry Smarr, Supercomputing and the Transformation of Science, Scientific American Library, 1993. Robert Wolff and Larry Yaeger, Visualization of Natural Phenomena, Springer-Verlag, 1993. David McAllister, Stereo Computer Graphics and Other True 3D Technologies, Princeton University Press, 1993. Peter Keller and Mary Keller, Visual Cues: Practical Data Visualization, IEEE Press, 1993. 1.4 Color and Perception Maureen Stone, A Field Guide to Digital Color, AK Peters, 2003. Roy Hall, Illumination and Color in Computer Generated Imagery, Springer-Verlag, 1989. David Travis, Effective Color Displays, Academic Press, 1991. L.G. Thorell and W.J. Smith, Using Computer Color Effectively, Prentice Hall, 1990. Edward Tufte, The Visual Display of Quantitative Information, Graphics Press, 1983. Edward Tufte, Envisioning Information, Graphics Press, 1990. Edward Tufte, Visual Explanations, Graphics Press, 1997. Edward Tufte, Beautiful Evidence, Graphics Press, 2006. Howard Resnikoff, The Illusion of Reality, Springer-Verlag, 1989. 1.5 Rendering Andrew Glassner, Principles of Digital Image Synthesis, Morgan Kaufmann, 1995. Michael Cohen and John Wallace, Radiosity and Realistic Image Synthesis, Morgan-Kaufmann, 1993. Andrew Glassner, An Introduction to Ray Tracing, Academic Press, 1989. Rosalee Wolfe, 3D Graphics: A Visual Approach, Oxford Press.

April 20, 2007

Ken Joy et al, Image Synthesis, IEEE Computer Society Press, 1988. 1.6 Images David Ebert et al, Texturing and Modeling, 2nd Edition, Academic Press, 1998. Alan Watt and Fabio Policarpo, The Computer Image, Addison-Wesley, 1998. Ron Brinkman, The Art and Science of Digital Compositing, Morgan Kaufmann, 1999. John Miano, Compressed Image File Formats, Addison-Wesley, 1999. 1.7 Animation Alan Watt and Mark Watt, Advanced Animation and Rendering Techniques, Addison-Wesley, 1998. Nadia Magnenat Thalmann and Daniel Thalmann, Interactive Computer Animation, PrenticeHall, 1996. Philip Hayward and Tana Wollen, Future Visions: New Technologies of the Screen, Indiana University Press, 1993. 1.8 Games Alan Watt and Fabio Policarpo, Advanced Game Development with Programmable Graphics Hardware, AK Peters, 2005. David Eberly, 3D Game Engine Design: A Practical Approach to Real-Time Computer Graphics, Morgan Kaufmann, 2006. Alan Watt and Fabio Policarpo, 3D Games: Real-time Rendering and Software Technology, Addison-Wesley, 2001. Eric Lengyel, Mathematics for 3D Game Programming and Computer Graphics, Charles River Media, 2002. David Bourg, Physics for Game Developers, OReilly and Associates, 2002. Munlo Coutinho, Dynamic Simulations of Multibody Systems, Springer Verlag, 2001. Mark DeLoura, Game Programming Gems, Charles River Media, 2000. Mark DeLoura, Game Programming Gems 2, Charles River Media, 2001. Mark DeLoura, Game Programming Gems 3, Charles River Media, 2002.
http://www.gamedev.net http://www.gamasutra.net

April 20, 2007

1.9 Virtual Reality John Vince, Virtual Reality Systems, Addison-Wesley, 1995. 1.10 The Web Gene Davis, Learning Java Bindings For OpenGL (JOGL), AuthorHouse, 2004. Andrea Ames, David Nadeau, John Moreland, The VRML 2.0 Sourcebook, John Wiley & Sons, 1997. Bruce Eckel, Thinking in Java, Prentice-Hall, 1998. David Flanagan, Java in a Nutshell, OReilly & Associates, 5th edition, 2005. David Flanagan, Java Examples in a Nutshell, OReilly & Associates, 3rd edition, 2004. Henry Sowizral, Kevin Rushforth, and Michael Deering, The Java 3D API Specification, Addison-Wesley, 1998. Rasmus Lerdorf and Kevin Tatroe, Programming PHP, OReilly, 2002. Yukihiro Matsumoto, Ruby in a Nutshell, OReilly, 2003. 1.11 Shaders Randi Rost, OpenGL Shading Language, Addison-Wesley, 2006 (2nd edition). Steve Upstill, The RenderMan Companion, Addison-Wesley, 1990. Tony Apodaca and Larry Gritz, Advanced RenderMan: Creating CGI for Motion Pictures, Morgan Kaufmann, 1999. Randima Fernando, GPU Gems, NVIDIA, 2004. Matt Pharr, Randima Fernando, GPU Gems 2, NVIDIA, 2005. 1.12 Miscellaneous OpenGL 2.0 Reference Manual, Addison-Wesley, 2006. OpenGL 2.0 Programming Guide, Addison-Wesley, 2005 (5th edition). Tom McReynolds and David Blythe, Advanced Graphics Programming Using OpenGL, Morgan Kaufmann, 2005. Edward Angel, OpenGL: A Primer, Addison-Wesley, 2002. Andrew Glassner, Recreational Computer Graphics, Morgan Kaufmann, 1999.

April 20, 2007

Anne Spalter, The Computer in the Visual Arts, Addison-Wesley, 1999. Jef Raskin, The Humane Interface, Addison-Wesley, 2000. Ben Shneiderman, Designing the User Interface, Addison-Wesley, 1997. Clark Dodsworth, Digital Illusion, Addison-Wesley, 1997. Isaac Victor Kerlow, The Art of 3-D: Computer Animation and Imaging, 2000. Isaac Victor Kerlow and Judson Rosebush, Computer Graphics for Designers and Artists, Van Nostrand Reinhold, 1986. Mehmed Kantardzic, Data Mining: Concepts, Models, Methods, and Algorithms, Wiley, 2003. William Press, Saul Teukolsky, William Vetterling, and Brian Flannery, Numerical Recipes in C, Second Edition, Cambridge University Press, 1997. James Skakoon and W. J. King, The Unwritten Laws of Engineering, ASME Press, 2001.

2. Periodicals Computer Graphics and Applications: published by IEEE (http://www.computer.org, 714-821-8380) Computer Graphics World: published by Pennwell (http://www.cgw.com, 603-891-0123) Journal of Graphics Tools: published by A.K. Peters (http://www akpeters.com, 617-235-2210) Game Developer: published by CMP Media (http://www gdmag.com, 415-905-2200) (Once a year publishes the Game Career Guide.) Computer Graphics Quarterly: published by ACM SIGGRAPH (http://www.siggraph.org, 212-869-7440) Transactions on Visualization and Computer Graphics: published by IEEE (http://www.computer.org, 714-821-8380) Transactions on Graphics: published by ACM (http://www.acm.org, 212-869-7440) Cinefex

(http://www.cinefex.com, 951-781-1917)

April 20, 2007

3. Professional organizations ACM................ Association for Computing Machinery http://www.acm.org, 212-869-7440 SIGGRAPH ..... ACM Special Interest Group on Computer Graphics http://www.siggraph.org, 212-869-7440 SIGCHI............ ACM Special Interest Group on Computer-Human Interfaces http://www.acm.org/sigchi, 212-869-7440 IEEE ................ Institute of Electrical and Electronic Engineers http://www.computer.org, 202-371-0101 NAB ................ National Association of Broadcasters http://www.nab.org, 800-521-8624 ASME.............. American Society of Mechanical Engineers http://www.asme.org, 800-THE-ASME

4. Conferences ACM SIGGRAPH: 2008: Los Angeles August 11-15


http://www.siggraph.org/s2008

IEEE Visualization: 2007: Sacramento, CA October 27-November 1


http://vis.computer.org

Game Developers Conference: 2008: San Francisco, CA February 18-22


http://www.gdconf.com

Electronic Entertainment Expo: 2007: Santa Monica, CA July 11-13 2008: ???, July
http://www.e3expo.com

ASME International Design Engineering Technical Conferences (includes the Computers and Information in Engineering conference):: 2007: Las Vegas, NV September 4-7
http://www.asmeconferences.org/IDETC07

National Association of Broadcasters (NAB): 2008: Las Vegas, NV April 12-17


http://www.nab.org

ACM SIGCHI: 2007: San Jose, CA April 28-May 3

April 20, 2007

http://www.acm.org/sigchi

ACM SIGARCH / IEEE Supercomputing:


2007: Reno, NV -- November 10-16
http://sc07.supercomputing.org

5. Graphics Performance Characterization The GPC web site tabulates graphics display speeds for a variety of vendors' workstation products. To get the information, visit:
http://www.spec.org/benchmarks.html#gpc

April 20, 2007

You might also like