introduction to siggraph and interactive computer graphics...oregon state university computer...

85
Oregon State University Computer Graphics Introduction to SIGGRAPH and Interactive Computer Graphics Mike Bailey Oregon State University [email protected] Oregon State University Computer Graphics

Upload: others

Post on 15-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Introduction to SIGGRAPHand Interactive Computer Graphics

Mike Bailey

Oregon State University

[email protected]

Oregon State UniversityComputer Graphics

Page 2: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

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

[email protected]

Oregon State UniversityComputer Graphics

Page 3: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Course Goals

•• Understand the different venues at SIGGRAPH,Understand the different venues at SIGGRAPH,

and how to strategically attend the ones that are best for youand how to strategically attend the ones that are best for you

•• Provide a background for papers, panels, and other coursesProvide a background for papers, panels, and other courses

•• Help appreciate the Animation FestivalHelp appreciate the Animation Festival

•• Get more from the vendor exhibitsGet more from the vendor exhibits

•• Give our take on where the future isGive our take on where the future is

•• Provide pointers for further studyProvide pointers for further study

Oregon State UniversityComputer Graphics

Page 4: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Topics

•• How to Attend SIGGRAPH 2008How to Attend SIGGRAPH 2008

•• The Graphics ProcessThe Graphics Process

•• Graphics HardwareGraphics Hardware

•• GPU programmingGPU programming

•• Graphics Input DevicesGraphics Input Devices

•• Finding More InformationFinding More Information

Oregon State UniversityComputer Graphics

Page 5: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Introduction to SIGGRAPHand Interactive Computer Graphics

Mike Bailey

Oregon State University

[email protected]

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Page 6: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

How to Attend SIGGRAPH 2008

Mike Bailey

Oregon State University

[email protected]

Oregon State UniversityComputer Graphics

You can’t see it all, so …Think Strategically -- Make a Plan, Make a Schedule,

and set Priorities !

Page 7: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Courses

•• Monday Monday –– FridayFriday

•• Some are Some are ““standard knowledgestandard knowledge”” (e.g., this one(e.g., this one……))

•• Some are cutting edgeSome are cutting edge

•• Some are new topicsSome are new topics

•• You got the full set of notes on the courses DVDYou got the full set of notes on the courses DVD

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Courses Strategy

•• Choose courses that are usefulChoose courses that are useful

•• Choose courses that are meaningfulChoose courses that are meaningful

•• Chose courses where you really want to see the Chose courses where you really want to see the speaker(sspeaker(s))

•• Choose courses for which there will be great visualChoose courses for which there will be great visual

presentations which cannot be replicated in the notespresentations which cannot be replicated in the notes

•• Hop around between courses to catch the best topicsHop around between courses to catch the best topics

and speakersand speakers

Oregon State UniversityComputer Graphics

Page 8: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Papers

•• Tuesday Tuesday -- FridayFriday

•• Deep technical informationDeep technical information

•• Printed in the proceedings and on the conference DVDPrinted in the proceedings and on the conference DVD

•• Strategy: attend when an animation or interactiveStrategy: attend when an animation or interactivetechnique is being discussedtechnique is being discussed

•• Strategy: attend when you think you will not understandStrategy: attend when you think you will not understandthe topic from reading about it alonethe topic from reading about it alone

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Panels

•• Monday Monday -- FridayFriday

•• General discussion, opinion, sometimes controversialGeneral discussion, opinion, sometimes controversial

•• Important point: sometimes transcribed, usually notImportant point: sometimes transcribed, usually not

•• Strategy: attend when a topic, speaker, or animationStrategy: attend when a topic, speaker, or animationyou really want to see is being discussedyou really want to see is being discussed

Oregon State UniversityComputer Graphics

Page 9: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Talks

•• Tuesday Tuesday -- FridayFriday

•• PaperPaper--like content, but shorter and less formallike content, but shorter and less formal

•• Some of the work has been completedSome of the work has been completed

•• Some of it is Some of it is ““Work in ProgressWork in Progress””

•• OftentimeOftentime, the source of some really cool ideas, the source of some really cool ideas

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Special Events

•• FastFast--Forward Papers review: Monday 6:00Forward Papers review: Monday 6:00--8:008:00

•• ACM Student Research Competition: Friday,ACM Student Research Competition: Friday,

10:30 10:30 –– 12:1512:15

Oregon State UniversityComputer Graphics

Page 10: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Exhibition

•• Tuesday Tuesday –– ThursdayThursday

•• Many vendors time their hottest product releasesMany vendors time their hottest product releases

for this week!for this week!

•• But, itBut, it’’s big, so go with a strategy!s big, so go with a strategy!

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Exhibition Strategy

•• The Exhibition is open 9:30The Exhibition is open 9:30--6:00 on Tuesday and6:00 on Tuesday and

Wednesday, and 9:30Wednesday, and 9:30--3:30 on Thursday3:30 on Thursday

•• The vendors are all listed in the Program andThe vendors are all listed in the Program and

BuyerBuyer’’s Guides Guide

•• They are listed both by alphabetical name and byThey are listed both by alphabetical name and by

product categoryproduct category

Oregon State UniversityComputer Graphics

Page 11: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

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

• Even-numbered booths are on the left (looking from the front of the hall),

odd numbers are on the right

• For example, Natural Point = booth 0733, which is Aisle 7; 165 feet from the front,

on the right

• Start at one end of the floor and work your way across

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Ais

le 5

Ais

le 7

Ais

le 8

Ais

le 9

Ais

le 1

0

Ais

le 1

1

Ais

le 1

2

Ais

le 1

3

Ais

le 1

4

Page 12: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Exhibition Warning

The Exhibition closes at The Exhibition closes at 3:303:30on Thursday afternoon,on Thursday afternoon,

not 6:00 !!!not 6:00 !!!

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Exhibitor Tech Talks

•• Tuesday Tuesday -- ThursdayThursday

•• 22--hour demos, tutorials, and interactive instructionhour demos, tutorials, and interactive instruction

•• Sometimes a raw sales pitch, but usually (hopefully) moreSometimes a raw sales pitch, but usually (hopefully) more

informative than thatinformative than that

•• Great chance to ask questions in a quieter setting thanGreat chance to ask questions in a quieter setting than

the Exhibitionthe Exhibition

Oregon State UniversityComputer Graphics

Page 13: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Computer Animation Festival

•• Monday Monday –– ThursdayThursday

•• Computer Computer GraphicsGraphics’’ss greatest animation hits forgreatest animation hits for

the past yearthe past year

•• It is considered It is considered coolcool to see it early in the weekto see it early in the week

•• This year, itThis year, it’’s divided into:s divided into:

TalksTalks

StereoscopicStereoscopic

ProductionProduction

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Reception !

•• Thursday, 7:00 Thursday, 7:00 –– 10:0010:00

Oregon State UniversityComputer Graphics

Page 14: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Art and Design Galleries

•• Monday Monday –– FridayFriday

•• Always fun and interesting !Always fun and interesting !

•• Be sure to see it, even if you just stroll through withoutBe sure to see it, even if you just stroll through withoutstoppingstopping

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

New Tech Demos

•• Monday Monday -- FridayFriday

•• Speculative research on graphics, visualization,Speculative research on graphics, visualization,robotics, music, audio, displays, robotics, music, audio, displays, hapticshaptics, sensors,, sensors,gaming, web, AI, and entertainmentgaming, web, AI, and entertainment

Oregon State UniversityComputer Graphics

Page 15: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

The Studio

•• Monday Monday -- FridayFriday

•• Working studio for 2D and 3D graphics, and 3D prototypingWorking studio for 2D and 3D graphics, and 3D prototyping

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Job Fair

•• Tuesday Tuesday –– ThursdayThursday

•• Good place to find information on who is hiringGood place to find information on who is hiring

•• Also a good place to post your resumeAlso a good place to post your resume

Oregon State UniversityComputer Graphics

Page 16: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Birds of a Feather

•• Opportunity for impromptu gatherings centeredOpportunity for impromptu gatherings centeredaround different topicsaround different topics

•• All weekAll week

•• Check the BOF signCheck the BOF sign--up boardup board

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Good Luck,Good Luck,and have fun !and have fun !

Oregon State UniversityComputer Graphics

Page 17: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

How to Attend SIGGRAPH 2008

Mike Bailey

Oregon State University

[email protected]

Page 18: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

The Graphics Process

Oregon State UniversityComputer Graphics

Mike Bailey

Oregon State University

[email protected]

Oregon State UniversityComputer Graphics

The Graphics ProcessThe Graphics Process

3DGeometric

Models

3DAnimationDefinition

Rendering

TextureInformation

ImageStorage and

Display

LightingInformation

Oregon State UniversityComputer Graphics

Page 19: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

The Graphics Process:Geometric Modeling

3DGeometric

Models

3D Scanning

InteractiveGeometricModeling

ModelLibraries

Rendering

DisplacementMapping

Oregon State UniversityComputer Graphics

Page 20: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

The Graphics Process: 3D Animation

3DAnimationDefinition

MotionDesign

MotionComputation

MotionCapture

Rendering

DynamicDeformations

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

The Graphics Process: Texturing

TextureInformation

ScannedImages

ComputedImages

PaintedImages

Rendering

Oregon State UniversityComputer Graphics

Page 21: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

The Graphics Process: Rendering

3DGeometric

Models

3DAnimationDefinition

ImageStorage

andDisplay

Rendering

Transformation,Clipping,

Perspective

ImageGeneration

TextureInformation

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

The Graphics Process:Image Storage and Display

HardwareFramebuffer

Rendering

DiskFile

FilmRecorder

VideoRecorder

Oregon State UniversityComputer Graphics

Page 22: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

The Graphics Process: SummaryThe Graphics Process: Summary

3DGeometric

Models

3DAnimationDefinition

Rendering

TextureInformation

ImageStorage and

Display

LightingInformation

Oregon State UniversityComputer Graphics

The Graphics Process

Oregon State UniversityComputer Graphics

Mike Bailey

Oregon State University

[email protected]

Page 23: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Computer Graphics Hardware

Mike Bailey

Oregon State University

[email protected]

Oregon State UniversityComputer Graphics

The Generic Graphics ProcessThe Generic Graphics Process

3DGeometric

Models

3DAnimationDefinition

Rendering

TextureInformation

ImageStorage and

Display

LightingInformation

Oregon State UniversityComputer Graphics

Page 24: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

VideoDriver

CPU

InputDevices

Double-bufferedFramebuffers

Rasterizer

VertexProcessor

Bus

Network DisplayList

Texture Memory

Z-Buffer

FragmentProcessor

Front

Back

MC Vertices

SC Vertices

Pixel Parameters

RGBAZPixels

MC = Model CoordinatesWC = World CoordinatesEC = Eye CoordinatesCC = Clip CoordinatesNDC = Normalized Device CoordinatesSC = Screen CoordinatesTC = Texture Coordinates RGBA

Texels

TC

Varying variables

Varying variables

Generic Computer Graphics SystemGeneric Computer Graphics System

Oregon State UniversityComputer Graphics

The HumanThe Human

•• AcuityAcuity:: 1 arc1 arc--minute for those with 20/20 visionminute for those with 20/20 vision

•• Required Required refresh raterefresh rate: 40: 40--80 refreshes/second80 refreshes/second

•• Required Required update rateupdate rate: 15+ frames/second: 15+ frames/second

•• Red, Green, Blue receptors in the eyeRed, Green, Blue receptors in the eye

•• How many colors are we able to detect?How many colors are we able to detect?

Oregon State UniversityComputer Graphics

Page 25: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Page 26: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Page 27: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

The Computer Graphics The Computer Graphics Monitor(sMonitor(s))

VideoDriver

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Displaying Color on aDisplaying Color on aComputer Graphics CRT MonitorComputer Graphics CRT Monitor

•• 3 color guns3 color guns

•• RedRed--greengreen--blue phosphorsblue phosphors

•• Gun voltage Gun voltage ≈≈ color brightnesscolor brightness

Oregon State UniversityComputer Graphics

Page 28: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Displaying Color on aDisplaying Color on aComputer Graphics Plasma MonitorComputer Graphics Plasma Monitor

•• Gas cellGas cell

•• PhosphorPhosphor

•• Grid of electrodesGrid of electrodes

Source: http://electronics.howstuffworks.comOregon State University

Computer Graphics

Oregon State UniversityComputer Graphics

Displaying Color on aComputer Graphics LCD Monitor

•• Grid of electrodesGrid of electrodes

•• Color filtersColor filters

Source: http://electronics.howstuffworks.com

Oregon State UniversityComputer Graphics

Page 29: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Additive Color (RGB)

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Display ResolutionDisplay Resolution

•• PixelPixel resolutions (1024x768 resolutions (1024x768 -- 1600x1200 are common)1600x1200 are common)

•• Screen size (13", 16", 19", 21" are common)Screen size (13", 16", 19", 21" are common)

•• Human acuity: 1 arcHuman acuity: 1 arc--minute is achieved by viewing minute is achieved by viewing a 19" monitor with 1280x1024 resolution from a a 19" monitor with 1280x1024 resolution from a distance of ~40 inchesdistance of ~40 inches

•• FYI: HDTV is about resolutions in the 2048x1152 rangeFYI: HDTV is about resolutions in the 2048x1152 range

Oregon State UniversityComputer Graphics

Page 30: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

The Video DriverThe Video Driver

VideoDriverFront

Back

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

The Video DriverThe Video Driver

•• N N refreshesrefreshes/second/second (N is usually between 40 and 80)(N is usually between 40 and 80)

•• Framebuffer contains the R,G,B that define the color atFramebuffer contains the R,G,B that define the color ateach pixeleach pixel

•• CursorCursor-- Appearance is stored near the video driverAppearance is stored near the video driver

in a in a ““minimini--framebufferframebuffer””-- x,y is given by the CPUx,y is given by the CPU

•• Video inputVideo input

Oregon State UniversityComputer Graphics

Page 31: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

The FramebufferThe Framebuffer

VideoDriver

Double-bufferedFramebuffers

Z-Buffer

FragmentProcessor

(custom code can go here)

Front

Back

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

The FramebufferThe Framebuffer

•• Direct colorDirect color

4 24 = 166 26 = 648 28 = 256

# Bits/color # Shades per colorRR

BB

GG

Total colors:12 212 = 4K18 218 = 256K24 224 = 16.7M

# Bits/pixel

Oregon State UniversityComputer Graphics

Page 32: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

WhatWhat’’s New?s New?

•• 1616-- and 32and 32--bit floating point for each color componentbit floating point for each color component

RR

BB

GG

Why?Why?

Many modern algorithms do arithmetic on the framebuffer color components. They need the extra precision.

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

The FramebufferThe Framebuffer•• AlphaAlpha valuesvalues

–– Transparency per pixelTransparency per pixelα α = 0. is invisible= 0. is invisibleα α = 1. is opaque= 1. is opaque

–– Represented in 8Represented in 8--32 bits32 bits(integer or floating point)(integer or floating point)

–– Alpha blending equation:Alpha blending equation:

Color = α 1C + (1 − α ) 2C0.0 ≤ α ≤ 1.0

Human Heart

Page 33: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

The FramebufferThe Framebuffer

RR

BB

GG

Total Z Values:16 216 = 65K24 224 = 17M32 232 = 4B

# Bits / Z

•• ZZ--bufferbuffer

–– Used for hidden surface removalUsed for hidden surface removal

–– Holds pixel depthHolds pixel depth

–– Typically 16, 24, or 32Typically 16, 24, or 32bits deepbits deep

–– Integer or floating pointInteger or floating point

ZZ

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Z-Buffer Steps

1. Compare the incoming Z value with the Z value already in that pixel

2. If the incoming Z value is closer to the viewer than what is already there, open the gates

3. Write the new pixel color and Z value

Page 34: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

ZZ--Buffer OperationBuffer Operation

Compare

Allow

AllowZ

Color

IncomingExisting

Z

Color

11

2

3

23

On a pixel-by-pixel basis:

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

The Framebuffer

DoubleDouble--bufferingbuffering: Don't let the viewer see : Don't let the viewer see anyany of the of the scene until the entire scene is drawnscene until the entire scene is drawn

Update

Refresh

Update Refresh

VideoDriverFront

Back

VideoDriver

Back

Front

Oregon State UniversityComputer Graphics

Page 35: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

The Fragment ProcessorThe Fragment Processor

Rasterizer

Texture Memory

FragmentProcessor

(custom code can go here)

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

The Fragment ProcessorThe Fragment Processor

•• Takes in all information that describes this pixelTakes in all information that describes this pixel

•• Produces the RGBA for that pixelProduces the RGBA for that pixel’’s location in the framebuffers location in the framebuffer

Oregon State UniversityComputer Graphics

Page 36: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

The RasterizerThe Rasterizer

Rasterizer

PipelineProcessor

(custom code can go here)

FragmentProcessor

(custom code can go here)

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

RasterizationRasterization

•• Turn screen space vertex coordinates into pixels that Turn screen space vertex coordinates into pixels that make up lines and polygonsmake up lines and polygons

•• A great place for custom electronicsA great place for custom electronics

Oregon State UniversityComputer Graphics

Page 37: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

RasterizersRasterizers Interpolate:Interpolate:

•• X and YX and Y

•• RedRed--greengreen--blue valuesblue values

•• Alpha valuesAlpha values

•• Z valuesZ values

•• IntensitiesIntensities

•• Surface Surface normalsnormals

•• Texture map coordinatesTexture map coordinates

•• Custom values given by the shadersCustom values given by the shaders

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Anti-Aliasing

Page 38: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Texture MappingTexture Mapping

Texture Memory

FragmentProcessor

(custom code can go here)

Bus

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Texture MappingTexture Mapping

•• ““StretchStretch”” an image onto a piece of geometryan image onto a piece of geometry

•• Image can be generated by a program or scanned inImage can be generated by a program or scanned in

•• Useful for realistic scene generationUseful for realistic scene generation

Page 39: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Repeating Texture

Decal Mode Modulate Mode

Bilinear Texture Interpolation

Oregon State UniversityComputer Graphics

Something New:Something New:WriteWrite--YourYour--Own FragmentOwn Fragment--Processor CodeProcessor Code

Referred to as: Pixel Shaders or Fragment Shaders

Rasterizer

Texture Memory

FragmentProcessor

(custom code can go here)

Bump Mapping

Line Integral Convolution

Page 40: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Pipeline ProcessorPipeline Processor

•• Coordinates enter in world (application) coordinate spaceCoordinates enter in world (application) coordinate space

•• Coordinates leave in screen (pixel) coordinate spaceCoordinates leave in screen (pixel) coordinate space

•• Another great place for custom electronicsAnother great place for custom electronics

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

The Pipeline ProcessorThe Pipeline Processor

CPU

Rasterizer

PipelineProcessor

(custom code can go here)

DisplayList

Oregon State UniversityComputer Graphics

Page 41: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Pipeline Processor: TransformationsPipeline Processor: Transformations

•• Used to correctly place objects in the sceneUsed to correctly place objects in the scene

•• TranslationTranslation

•• RotationRotation

•• ScalingScaling

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Pipeline Processor:Pipeline Processor:Windowing and ClippingWindowing and Clipping

•• Declare which portion of the 3D universe you are Declare which portion of the 3D universe you are interested in viewinginterested in viewing

•• This is called the This is called the view volumeview volume

•• Clip away everything that is outside the viewing volumeClip away everything that is outside the viewing volume

Oregon State UniversityComputer Graphics

Page 42: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Pipeline Processor: ProjectionPipeline Processor: Projection

•• Turn 3D coordinates into 2DTurn 3D coordinates into 2D

–– Parallel projectionParallel projection

–– Perspective projectionPerspective projection

Parallel lines remain parallel

Some parallel lines appear to converge

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Pipeline Processor: ProjectionPipeline Processor: Projection

Parallel

Perspective

Oregon State UniversityComputer Graphics

Page 43: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Something New:Something New:WriteWrite--YourYour--Own Pipeline CodeOwn Pipeline Code

Referred to as:Vertex Shaders

CPU

Rasterizer

PipelineProcessor

(custom code can go here)

DisplayList

Wireframe Teapot Dome Projection

Mars PanoramDome Projection

Oregon State UniversityComputer Graphics

The CPU and BusThe CPU and Bus

4 Gb/sec4 Gb/secPCI Express

264 Mb/sec2 Gb/secAGP 8X

132 Mb/sec132 Mb/secPCI

Speed from Board

Speed to Board

Type of Board

CPU

InputDevices

Network DisplayList

PipelineProcessor

(custom code can go here)

Bus

Oregon State UniversityComputer Graphics

Page 44: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Display ListDisplay List

•• A list of graphics instructions created ahead of time and thenA list of graphics instructions created ahead of time and then““played backplayed back”” when neededwhen needed

•• May or may not be editable once it is createdMay or may not be editable once it is created

•• Sometimes the structure of display lists is in theSometimes the structure of display lists is in theform of a form of a scene graphscene graph

•• Display lists can live in CPU memory or on theDisplay lists can live in CPU memory or on thegraphics card (graphics card (display objectsdisplay objects))

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

The Limitations of usingNTSC Video

•• Cannot display saturated colors wellCannot display saturated colors well

•• Expect an effective resolution of (at best) ~640x480Expect an effective resolution of (at best) ~640x480

•• Do not use singleDo not use single--pixel thick linespixel thick lines

•• Stay away from the edges of the screenStay away from the edges of the screen

•• Some colors have better video resolution than othersSome colors have better video resolution than others

Oregon State UniversityComputer Graphics

Page 45: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

NTSC Cycles of Encodingper Scanline

Intensity

Orange-Blue

Purple-Green

What: Cycles/Scanline:

267

96

35

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

VideoDriver

CPU

InputDevices

Double-bufferedFramebuffers

Rasterizer

VertexProcessor

Bus

Network DisplayList

Texture Memory

Z-Buffer

FragmentProcessor

Front

Back

MC Vertices

SC Vertices

Pixel Parameters

RGBAZPixels

MC = Model CoordinatesWC = World CoordinatesEC = Eye CoordinatesCC = Clip CoordinatesNDC = Normalized Device CoordinatesSC = Screen CoordinatesTC = Texture Coordinates RGBA

Texels

TC

Varying variables

Varying variables

All Together Now !All Together Now !

Page 46: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

The Whole Process on a Card

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Computer Graphics Hardware

Mike Bailey

Oregon State University

[email protected]

Page 47: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

GPU Programming

Mike Bailey

Oregon State University

[email protected]

Oregon State UniversityComputer Graphics

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!

Page 48: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

The Generic Computer Graphics System

VideoDriver

CPU

InputDevices

Double-bufferedFramebuffers

Rasterizer

VertexProcessor

Bus

Network DisplayList

Texture Memory

Z-Buffer

FragmentProcessor

Front

Back

RGBAZPixels

TC

ShaderMemory

Uniformvariables

Uniformvariables

Oregon State UniversityComputer Graphics

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

Page 49: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Bump Mapping with Shaders

Oregon State UniversityComputer Graphics

Changing the Bump Height

Page 50: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Cube Mapping with Shaders

Oregon State UniversityComputer Graphics

Cube Map of Nvidia’s Lobby

Page 51: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Page 52: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Using Noise in Shaders

Oregon State UniversityComputer Graphics

Positional Noise

Page 53: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Gradient Noise

Oregon State UniversityComputer Graphics

Image Representation of 2D Noise

1 Octave

4 Octaves

Page 54: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

3D Surface Representation of 2D Noise

4 Octaves

Oregon State UniversityComputer Graphics

Have actual coordinates at a pixel

Add Noise to the actual coordinates to

produce new coordinates

Have an equation to describe color assignment

Use the new coordinates in the old equation to assign a

color at that pixel

How to Apply Noise

Page 55: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Noise Examples

Deciding when to Discard for Erosion

Color Blending for Clouds

Color Blending for Fire

Color Blending for Marble

Oregon State UniversityComputer Graphics

Using Shaders to Manipulate Imagery

Page 56: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Negatives

Oregon State UniversityComputer Graphics

Brightness

Page 57: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Contrast

Oregon State UniversityComputer Graphics

Sharpening

Page 58: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Embossing

Oregon State UniversityComputer Graphics

Toon RenderingOriginal Image

Colors Quantized

Outlines Added

Page 59: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Use the GPU to enhance scientific and engineering illustration

Toon Rendering for Non-Photorealistic Effects

Oregon State UniversityComputer Graphics

Mandelbrot Set

zzz ii 02

1 +=+

How fast does itconverge, if ever?

Page 60: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Julia Set

czz ii +=+

21

How fast does itconverge, if ever?

Oregon State UniversityComputer Graphics

Spectral Effects Using Shaders

Page 61: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

~ 41 °

Rainbow Effects

53.0°0.76640°1.528≈ 400 nmBlue

51.5°0.75541°1.519≈ 500 nmGreen

50.0°0.74342°1.510≈ 650 nmRed

ΘΘcosΘΘηλColor

Oregon State UniversityComputer Graphics

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

Page 62: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Scientific Visualization using Shaders

Oregon State UniversityComputer Graphics

Bump-Mapping for Terrain Visualization

Visualization by Nick Gebbie

Page 63: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

2D Line Integral Convolution

At each fragment:1. Find the flow field

velocity vector there

2. Follow that vector in both directions

3. Blend in the colors at the other fragments along that vector

Rotational flow field

Original image

Oregon State UniversityComputer Graphics

3D Line Integral Convolution

Visualization by Vasu Lakshmanan

Page 64: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Geometry Processing using Shaders

Oregon State UniversityComputer Graphics

Vertices

CPU

Rasterizer

VertexProcessor

Bus

FragmentProcessor

Pixels

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

Interpolated Values

Transformed Vertices

Assembled Primitive

Create NewGeometry

Assemble NewGeometry

AssembleGeometry

Page 65: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Expanding 4 Points into a Bezier Curvewith a Variable Number of Line Segments

FpNum = 5 FpNum = 25

Oregon State UniversityComputer Graphics

Sphere Subdivision starting with 8 trianglesLevel = 0

Level = 1

Level = 3

Level = 2

Page 66: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Shrinking Triangles

Oregon State UniversityComputer Graphics

Geometry Silhouettes

Page 67: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

GPU Programming

Mike Bailey, [email protected]

There are a lot of GPU shader programming resources at:

http://cs.oregonstate.edu/~mjb/cs519

http://cs.oregonstate.edu/~mjb/glman

Page 68: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Input Devices and Interaction

Mike Bailey

Oregon State University

[email protected]

Oregon State UniversityComputer Graphics

Logical Input Device Types

•• ChoiceChoice

•• KeyboardKeyboard

•• ValuatorsValuators

•• LocatorsLocators

Oregon State UniversityComputer Graphics

Page 69: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

ChoiceChoice

•• Return a choice that has been madeReturn a choice that has been made

•• Examples: function keypad, button box, foot switchExamples: function keypad, button box, foot switch

•• Often provide sensorial feedback: lights, Often provide sensorial feedback: lights,

clicks, feel, . . .clicks, feel, . . .

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Button BoxButton Box

Oregon State UniversityComputer Graphics

Page 70: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

KeyboardKeyboard

•• Returns keys with specific meaningsReturns keys with specific meanings

•• Letters, numbers, etc.Letters, numbers, etc.

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Valuators

• Return a value for something

• Example: knobs

• Can usually specify gain, minimum, and maximum

• All locators can also double as valuators

Oregon State UniversityComputer Graphics

Page 71: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Dial Box

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Locators

• Return the location of the screen cursor

• Examples: mouse, tablet, trackball, touchscreen

• Display-to-Input ratio

Oregon State UniversityComputer Graphics

Page 72: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Locator Display-to-Input Ratio

DTI Ratio: the amount of cursor movement on the screen divided by the amount of hand movement

Large: good for speed

Small: Good for accuracy

Also called Gain

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Ways to Read an Input Device

• Sampling: What is its input right now ?

• Event-based: Wait until the user does something

Oregon State UniversityComputer Graphics

Page 73: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

3D Input devices

• Read a 3D position

• Returns 3 numbers to the program: an (x,y,z) triple

• Some also return 3 more numbers to the

program: three rotation angles

• Examples: digitizer, spaceball, glove

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

3D Electromagnetic Tracker

Page 74: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

3D Mechanical Tracker

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

3D Scanners

Page 75: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Other 3D Input Devices

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Force Feedback in 3D

Oregon State UniversityComputer Graphics

Page 76: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Force Feedback in 3D

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Force Feedback in 2D

Oregon State UniversityComputer Graphics

Page 77: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

Oregon State UniversityComputer Graphics

Other Input Devices

Game ControllerMechanical 3 DOF

Orientation Tracker

Oregon State UniversityComputer Graphics

Oregon State UniversityComputer Graphics

Input Devices and Interaction

Mike Bailey

Oregon State University

[email protected]

Page 78: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

May 6, 2008 1

Where to Find More Information about Computer Graphics

Mike Bailey Oregon State University

1. References 1.1 General Computer Graphics

SIGGRAPH Online Bibliography Database:

http://www.siggraph.org/publications/bibliography Francis Hill, Computer Graphics Using OpenGL, 3rd Edition, Prentice Hall, 2006. Edward Angel, Interactive Computer Graphics: A Top-down Approach with OpenGL, 4th Edition,

Addison-Wesley, 2005. Alan Watt, 3D Computer Graphics, 3rd Edition, Addison-Wesley, 2000. Peter Shirley, Fundamentals of Computer Graphics, 2nd Edition, 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

Michael Mortenseon, Geometric Transformations for 3D Modeling, 2nd Edition, Industrial press,

2007. Michael Mortenson, Geometric Modeling, John Wiley & Sons, 2006.

Page 79: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

May 6, 2008 2

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. 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, 2001. 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 O’Neil, Elementary Differential Geometry, Academic Press, 1997. Joseph O’Rourke, Computational Geometry in C, Cambridge University Press, 1996. Christopher Hoffman, Geometric & Solid Modeling, Morgan Kaufmann, 1989. 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, Morgan-

Kaufmann, 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, Real-

Time 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,

Page 80: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

May 6, 2008 3

Prentice-Hall, 2004. 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 Müller, 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.

Page 81: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

May 6, 2008 4

Rosalee Wolfe, 3D Graphics: A Visual Approach, Oxford Press. 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, Prentice-

Hall, 1996. Philip Hayward and Tana Wollen, Future Visions: New Technologies of the Screen, Indiana

University Press, 1993. 1.8 Games

David Hodgson, Bryan Stratten, and Alice Rush, Paid to Play: An Insider’s Guide to Video Game

Careers, Prima, 2006. Alan Watt and Fabio Policarpo, Advanced Game Development with Programmable Graphics

Hardware, AK Peters, 2005. Jacob Habgood and Mark Overmars, The Game Maker’s Apprentice, Apress, 2006. 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, O’Reilly 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.

Page 82: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

May 6, 2008 5

Mark DeLoura, Game Programming Gems 3, Charles River Media, 2002. http://www.gamedev.net http://www.gamasutra.net

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, O’Reilly & Associates, 5th edition, 2005. David Flanagan, Java Examples in a Nutshell, O’Reilly & 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, O’Reilly, 2002. Yukihiro Matsumoto, Ruby in a Nutshell, O’Reilly, 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. Saty Raghavachary, Rendering for Beginners: Image Synthesis using RenderMan, Focal Press,

2005. Randima Fernando, GPU Gems, NVIDIA, 2004. Matt Pharr, Randima Fernando, GPU Gems 2, NVIDIA, 2005. Hubert Nguyen, GPU Gems 3, NVIDIA, 2007. http://www.clockworkcoders.com/oglsl

Page 83: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

May 6, 2008 6

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

Page 84: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

May 6, 2008 7

(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) 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 IGDA............... International Game Developers Association http://www.igda.org, 856-423-2990

4. Conferences

ACM SIGGRAPH: 2008: Los Angeles – August 11-15 2009: New Orleans http://www.siggraph.org/s2008

IEEE Visualization:

2008: Columbus, OH – October 19-24 http://vis.computer.org

Game Developers Conference:

2009: San Francisco, CA – March 23-27 http://www.gdconf.com

Page 85: Introduction to SIGGRAPH and Interactive Computer Graphics...Oregon State University Computer Graphics Papers • Tuesday - Friday • Deep technical information • Printed in the

May 6, 2008 8

EforAll:Expo

2008: Los Angeles, CA -- October 3-5 http://www.eforallexpo.com ASME International Design Engineering Technical Conferences (includes the Computers and

Information in Engineering conference): 2008: New York, NY – August 3-6 http://www.asmeconferences.org/idetc08

National Association of Broadcasters (NAB):

2009: Las Vegas, NV – April 18-23 http://www.nab.org

ACM SIGCHI:

2009: Boston, MA – April 5-9 http://www.acm.org/sigchi

ACM SIGARCH / IEEE Supercomputing:

2008: Austin, TX -- November 15-21 http://www.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#gwpg