Introduction
EL5130-Computer Graphics & GPU Programming
Computer Graphics
• Graphics created by computer• The representation and manipulation of
pictorial data by computer
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
Purpose of computer graphics?Communication is the purposeHuman perception is the context
– Techniques leverage visual perception abilitiesFidelity 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”
• Especially for interactive graphics
Color perceptionColor is perceptualStimulus is spectral energy in 400-700
nm rangeMonochromatic 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”• RGB is the display tuple Normalized typical human cone cell
responses to monochromatic spectral stimuli (Source: Wikipedia)
Dual (3D Realistic) Computer Graphics & Image Processing
Representation
Model
ImageReal-World
Computer Graphics Visualization
Image Processing
Pixelsgraphics
pixel
imaging
CCD sensor (Bayer pattern)
LCD display
PixelsWhy 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.
Basic 3D Graphics Pipeline
Scene Transformation Projection Rasterization
Model Lighting
Graphics
image (pixels)
lights (photons)
viewer
objects (triangles)
Physical reality (sort of)
image (pixels)
for (each photon)
for (each triangle)
for (each pixel)
draw;
lights (photons)
objects (triangles)
Ray tracing
image (pixels)
for (each pixel)
for (each triangle)
for (each light)
draw;
objects (triangles)
lights (photons)
Physical reality (sort of)
lights
image (pixels)
for (each light)
for (each triangle)
for (each pixel)
draw;
objects (triangles)
Traditional graphics pipeline (OpenGL)
lights
image (pixels)
for (each triangle)
for (each light)
for (each pixel)
draw;
objects (triangles)
Modern graphics pipeline (OpenGL 2.1)
lights
image (pixels)
for (each triangle)
for (each pixel)
for (each light)
draw;
objects (triangles)
Global illumination
Light paths are complex, not light triangle pixelNature finds equilibrium efficientlyComputers struggle
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
Interactive graphics
System latency
Frame rate and flicker rate
Impact of Computers
• Moore’s Law• Power of a CPU doubles every 18 months / 2
years
Impact of Video Games (Nvidia)
• Number of transistors on GPU doubles each 6 mos.– Three times Moore’s Law
• Good article on Jen-Hsun Huang, Nvidia CEO: http://www.wired.com/wired/archive/10.07/Nvidia_pr.html
"What we've done in the past five years is staggering,“ "What we can do in the next five years is going to blow your mind. In 10 years, we should be bigger than Intel."
How is come?
Topics
• (Conventional) Computer Graphics Pipeline– Core graphics pipeline: Modeling transformation, viewing
transformation, hidden surface removal, illumination / shading / textures, scan conversion / clipping
– OpenGL– Morphing, curves and surfaces, animation, etc.
• GPU Programming• Not a course about graphic design, using graphics
tools like PhotoShop or Maya but possibly you will use it in the assignments
Prerequisites
– You will be writing programs• Non-trivial data structures, pointers
– An ability to learn a programming library on your own• OpenGL
– Comfortable with matrix algebra and calculus• Basic linear algebra
Work
– Assignment & Programming assignments (30%)• C/C++ using OpenGL, GLUT, and UI libraries• Source will be read and documentation is req’d
– Product Development Project (50%)– Final Exam (20%)
Courses Workflow
Graphics Pipeline Conventional (8 weeks)
Contemporary Issues (1-2 weeks)
GPU Programming (5-6 weeks)
OpenGL/Glut Tutorial& Assignment (8 weeks)
ProjectTuesday, 10.00 – 11.40 Wednesday, 13.00 – 13.50
http://course.lskk.ee.itb.ac.id
Honor Code
– Specific honor code instructions will be provided with each assignment
– When in doubt…• Don’t use resources other than class notes and textbook
– Typically…• Using examples from the web is a great way to learn
and it is encouraged… reference what you use– Discuss things and working together is encouraged, but– In general, it is unethical and it is discouraged to share
assignment code with another student or debug assignment code together
1st Assignment
• Single page essay on the impact of graphics cards based on an article in http://www.wired.com/wired/archive/10.07/Nvidia.html
• Why do CCDs use the Bayer pattern?• Why don’t LCD monitors use the Bayer pattern?• Why do we need ClearType™ font? How it
works?