Introduction to Computer Graphics

Introduction to
Computer Graphics
Kurt Akeley
CS248 Lecture 1
25 September 2007
http://graphics.stanford.edu/courses/cs248-07/
Instructor information
Education and employment

BEE University of Delaware, 1976-1980

MSEE Stanford, 1980-1982

SGI co-founder, chief engineer, CTO, 1982–2000

PhD (EE) Stanford, 2001-2004

NVIDIA graphics architect (part-time) 2001-2004

Microsoft Research Asia asst. director, 2005-2007

Principal Researcher, MSR Silicon Valley
CS248 Lecture 1
Kurt Akeley, Fall 2007
Instructor information
Professional experience

Graphics systems: GT, GTX, VGX, RealityEngine, …

OpenGL: specification, early extensions, ARB, …

SIGGRAPH: attend 1984-2007, papers chair 2000, …

SIGGRAPH Asia 2008: papers chair
Teaching experience

Co-taught CS448, Real-time Graphics Architecture,
with Pat Hanrahan fall 2001 and spring 2007

Lectured in several SIGGRAPH courses

Have given lots of talks
CS248 Lecture 1
Kurt Akeley, Fall 2007
Instructor information
“Newark” laser printer
controller (1979)
CS248 Lecture 1
GE4 without Clark
Geometry Engine (1987)
Kurt Akeley, Fall 2007
Instructor information
Fixed-viewpoint volumetric display (2004)
CS248 Lecture 1
Kurt Akeley, Fall 2007
Instructor information
This is my first

Stanford course on my own

time teaching an introductory graphics course

detailed exposure to some concepts
I’m learning too!

Let’s interact

I’ll try not to cram too much into the lectures
CS248 Lecture 1
Kurt Akeley, Fall 2007
Teaching assistants
Andrew Adams
Justin Talbot
Won game competition in ’04
TA’d course in ’05 and ’06
Second-year PhD student
BYU MS global illumination
CS248 Lecture 1
Kurt Akeley, Fall 2007
Course content
Based on the course as taught by Marc Levoy last year

http://graphics.stanford.edu/courses/cs248-06/
More emphasis on OpenGL and applied graphics

Z-buffer, tuning, hardware, details & depth (why)
Less emphasis on history and alternate approaches

Perspective in art, visibility algorithms, volume rendering
Projects

First is new (still under construction)

Second is the same (for now)

Third (game competition) remains

But we may de-emphasize game play requirement

This course really isn’t about game play
CS248 Lecture 1
Kurt Akeley, Fall 2007
Human perception
Interactive graphics is (typically) for human viewers

Guided-missile design is a counterexample

Human will be presumed in this course
Good designers know their customers’ needs and
problems

Have basic understanding of visual perception

NTSC is a great engineering design example
The evolution of computer graphics has been directed
by the quirks of human perception, e.g.,

Tri-color stimulus

Sensitivity to change in light reaching the eye
CS248 Lecture 1
Kurt Akeley, Fall 2007
Purpose of computer graphics?
Communication is the purpose
Human perception is the context

Techniques leverage visual perception
abilities
Fidelity is a tool, not (necessarily) the goal

Virtual reality is great, but

Don’t want to be limited to reality

Want to do super reality

Non-photorealistic rendering (NPR) is valuable
–

Bill Buxton, Sketching User Experiences,
2006
No apology is required for “approximations”

CS248 Lecture 1
Especially for interactive graphics
Kurt Akeley, Fall 2007
Color perception
Color is perceptual
Stimulus is spectral energy in
400-700 nm range
Monochromatic differentiation
requires:

Overlapping cone
sensitivities (ratios)

Only two cone types
Three cone types (a human quirk)

Enrich our perceptual
experience

Require stimulation with
(at least) three “colors”

CS248 Lecture 1
RGB is the display tuple
Normalized typical human cone cell
responses to monochromatic spectral
stimuli (Source: Wikipedia)
Kurt Akeley, Fall 2007
Pixels
graphics
LCD display
CS248 Lecture 1
imaging
pixel
CCD sensor
(Bayer pattern)
Kurt Akeley, Fall 2007
Pixels
Why do CCDs use the Bayer pattern?
Why don’t LCD monitors use the Bayer
pattern?
What is graphics missing?

Microsoft ClearType

Claude Betrisey, Jim Blinn, Bodin
Dresevic, Bill Hill, Greg Hitchcock,
Bert Kely, Don Mitchell, John Platt,
Turner Whitted, 20.4: Displaced
Filtering for Patterned Displays,
Society for Information Display,
2000.
CS248 Lecture 1
Kurt Akeley, Fall 2007
Graphics
lights
(photons)
objects
(triangles)
image
(pixels)
viewer
CS248 Lecture 1
Kurt Akeley, Fall 2007
Physical reality (sort of)
for (each photon)
lights
(photons)
for (each triangle)
for (each pixel)
draw;
objects
(triangles)
CS248 Lecture 1
image
(pixels)
Kurt Akeley, Fall 2007
Ray tracing
for (each pixel)
lights
(photons)
for (each triangle)
for (each light)
draw;
objects
(triangles)
CS248 Lecture 1
image
(pixels)
Kurt Akeley, Fall 2007
Physical reality (sort of)
for (each light)
for (each triangle)
lights
for (each pixel)
draw;
objects
(triangles)
CS248 Lecture 1
image
(pixels)
Kurt Akeley, Fall 2007
Traditional graphics pipeline (OpenGL)
for (each triangle)
for (each light)
lights
for (each pixel)
draw;
objects
(triangles)
CS248 Lecture 1
image
(pixels)
Kurt Akeley, Fall 2007
Modern graphics pipeline (OpenGL 2.1)
for (each triangle)
for (each pixel)
lights
for (each light)
draw;
objects
(triangles)
CS248 Lecture 1
image
(pixels)
Kurt Akeley, Fall 2007
Global illumination
Light paths are complex, not light  triangle  pixel
Nature finds equilibrium efficiently
Computers struggle 
CS248 Lecture 1
Kurt Akeley, Fall 2007
Animation
Sequence of still frames

Update rate: minimum of 24 hz or so

Flicker rate: minimum of 50 hz or so
“Rule 1”:
All discontinuous frame-to-frame changes
correspond to discontinuous scene or
visibility changes
CS248 Lecture 1
Kurt Akeley, Fall 2007
Interactive graphics
Frame rate and flicker rate
System latency
CS248 Lecture 1
Kurt Akeley, Fall 2007
API stacks
web application
application
Gears of War
VRML
scene graph
Unreal engine
OpenGL 2.1
graphics API
Direct3D 10
GeForce 8800
GPU
Radeon 9600
CS248 Lecture 1
Kurt Akeley, Fall 2007
Graphics APIs are architectures
web application
application
Gears of War
VRML
scene graph
Unreal engine
OpenGL 2.1
graphics API
Direct3D 10
GeForce 8800
GPU
Radeon 9600
CS248 Lecture 1
Kurt Akeley, Fall 2007
Summary
Communication is the purpose of computer graphics

Human perception is the context

Fidelity is a tool, not (necessarily) a goal
Our focus will be interactive graphics

Instructor’s bias

Emphasis on OpenGL
Your instructor is learning too

Your opinions, corrections, and concerns are
appreciated!
CS248 Lecture 1
Kurt Akeley, Fall 2007
Reading assignment
Before Thursday’s class, read

Mark Segal and Kurt Akeley, The Design of the OpenGL
Graphics Interface, unpublished

OpenGL Programming Guide

Chapter 1 - Introduction to OpenGL

Appendix D - Basics of GLUT: the OpenGL Utility Tool
Also become familiar with www.opengl.org:

OpenGL, GLU, and GLUT Specifications

Extension specifications

…
Optional:

David Blythe, The Direct3D 10 System, SIGGRAPH 2006

Set up your OpenGL/GLUT programming environment
CS248 Lecture 1
Kurt Akeley, Fall 2007
End
CS248 Lecture 1
Kurt Akeley, Fall 2007