CS 551 / 645: Introductory Computer Graphics David Luebke

advertisement
CS 551 / 645:
Introductory Computer Graphics
David Luebke
cs551@cs.virginia.edu
http://www.cs.virginia.edu/~cs551
David Luebke
7/27/2016
Administrivia



Bio sheets
Name tents
Show the syllabus
–
–
–
–
–
–
David Luebke
Instructor/TA coordinates
Prereqs
Text
Grading & Honor Code
Topic list
Assignments
7/27/2016
Questions?
David Luebke
7/27/2016
The Basics

This course is about:
– Algorithms and data structures for presenting data
visually on a computer

This course is not about:
– Using graphic design programs like Photoshop or
3-D Studio Max
– Using graphics APIs like OpenGL or Direct3D
(though we will learn a little OpenGL)
David Luebke
7/27/2016
The Basics


Computer graphics: generating 2D images
of a 3D world represented in a computer.
Main tasks:
– modeling: creating and representing the geometry
of objects in the 3D world
– rendering: generating 2D images of the objects
– animation: describing how objects change in time
David Luebke
7/27/2016
Why Study Computer Graphics?

Graphics is cool
– I like to see what I’m doing
– I like to show people what I’m doing

Graphics is interesting
– Involves simulation, algorithms, architecture…

Graphics is important
– Just ask Intel…

Graphics is fun
– Roll the video…
David Luebke
7/27/2016
Graphics Applications

Entertainment: Cinema
Universal: Jurassic Park
David Luebke
Pixar: Geri’s Game
7/27/2016
Graphics Applications

Entertainment: Games
id: Quake II
Cyan: Riven
David Luebke
7/27/2016
Graphics Applications

Medical Visualization
The Visible Human Project
David Luebke
MIT: Image-Guided Surgery Project
7/27/2016
Graphics Applications

Computer Aided Design (CAD)
David Luebke
7/27/2016
Graphics Applications

Scientific Visualization
David Luebke
7/27/2016
Trick Question
What’s a pixel?
David Luebke
7/27/2016
Display Technologies

Cathode Ray Tubes (CRTs)
– Most common display device today
– Evacuated glass bottle (last
of the vacuum tubes)
– Heating element (filament)
– Electrons pulled towards
anode focusing cylinder
– Vertical and horizontal deflection plates
– Beam strikes phosphor coating on front of tube
David Luebke
7/27/2016
Display Technologies: CRTs

Vector Displays
–
–
–
–
–

Anybody remember Battlezone? Tempest?
Early computer displays: basically an oscilloscope
Control X,Y with vertical/horizontal plate voltage
Often used intensity as Z
Show: http://graphics.lcs.mit.edu/classes/6.837/F98/Lecture1/Slide11.html
Name two disadvantages
Just does wireframe
Complex scenes  visible flicker
David Luebke
7/27/2016
Display Technologies: CRTs

Raster Displays
– Black and white television: an oscilloscope with a
fixed scan pattern: left to right, top to bottom
– Paint entire screen 30 times/sec


Actually, TVs paint top-to-bottom 60 times/sec,
alternating between even and odd scanlines
This is called interlacing. It’s a hack. Why do it?
– To paint the screen, computer needs to
synchronize with the scanning pattern of raster

David Luebke
Solution: special memory to buffer image with scan-out
synchronous to the raster. We call this the framebuffer.
7/27/2016
Display Technology: Color CRTs

Color CRTs are much more complicated
– Requires manufacturing very precise geometry
– Uses a pattern of color phosphors on the screen:
Delta electron gun arrangement
In-line electron gun arrangement
– Why red, green, and blue phosphors?
David Luebke
7/27/2016
Display Technology: Color CRTs

Color CRTs have
– Three electron guns
– A metal shadow mask to differentiate the beams
David Luebke
7/27/2016
Display Technology: Raster

Raster CRT pros:
– Allows solids, not just wireframes
– Leverages low-cost CRT technology (i.e., TVs)
– Bright! Display emits light

Cons:
–
–
–
–
–
David Luebke
Requires screen-size memory array
Discreet sampling (pixels)
Practical limit on size (call it 40 inches)
Bulky
Finicky (convergence, warp, etc)
7/27/2016
Display Technology: LCDs

Liquid Crystal Displays (LCDs)
– LCDs: organic molecules, naturally in crystalline
state, that liquefy when excited by heat or E field
– Crystalline state twists polarized light 90º.
David Luebke
7/27/2016
Display Technology: LCDs

Liquid Crystal Displays (LCDs)
– LCDs: organic molecules, naturally in crystalline
state, that liquefy when excited by heat or E field
– Crystalline state twists polarized light 90º
David Luebke
7/27/2016
Display Technology: LCDs

Transmissive & reflective LCDs:
– LCDs act as light valves, not light emitters, and
thus rely on an external light source.
– Laptop screen: backlit, transmissive display
– Palm Pilot/Game Boy: reflective display
David Luebke
7/27/2016
Display Technology: Plasma

Plasma display panels
– Similar in principle to
fluorescent light tubes
– Small gas-filled capsules
are excited by electric field,
emits UV light
– UV excites phosphor
– Phosphor relaxes, emits
some other color
David Luebke
7/27/2016
Display Technology

Plasma Display Panel Pros
– Large viewing angle
– Good for large-format displays
– Fairly bright

Cons
–
–
–
–
David Luebke
Expensive
Large pixels (~1 mm versus ~0.2 mm)
Phosphors gradually deplete
Less bright than CRTs, using more power
7/27/2016
Display Technology: DMDs

Digital Micromirror Devices (projectors)
– Microelectromechanical (MEM) devices,
fabricated with VLSI techniques
David Luebke
7/27/2016
Display Technology: DMDs






DMDs are truly digital pixels
Vary grey levels by modulating pulse length
Color: multiple chips, or color-wheel
Great resolution
Very bright
Flicker problems
David Luebke
7/27/2016
Display Technologies:
Organic LED Arrays

Organic Light-Emitting Diode (OLED) Arrays
– The display of the future? Many think so.
– OLEDs function like regular semiconductor LEDs
– But with thin-film polymer construction:


David Luebke
Thin-film deposition or vacuum deposition process…not
grown like a crystal, no high-temperature doping
Thus, easier to create large-area OLEDs
7/27/2016
Display Technologies:
Organic LED Arrays

OLED pros:
–
–
–
–
–
–

Transparent
Flexible
Light-emitting, and quite bright (daylight visible)
Large viewing angle
Fast (< 1 microsecond off-on-off)
Can be made large or small
OLED cons:
– Not quite there yet (96x64 displays…)
– Not very robust, display lifetime a key issue
David Luebke
7/27/2016
Framebuffers



So far we’ve talked about the physical
display device
How does the interface between the device
and the computer’s notion of an image look?
Framebuffer: A memory array in which the
computer stores an image
– On most computers, separate memory bank from
main memory (why?)
– Many different variations, motivated by cost of
memory
David Luebke
7/27/2016
Framebuffers: True-Color




A true-color (aka 24-bit or 32-bit) framebuffer
stores one byte each for red, green, and blue
Each pixel can thus be one of 224 colors
Pay attention to
Endian-ness
How can 24-bit
and 32-bit mean
the same thing
here?
David Luebke
7/27/2016
Framebuffers: Indexed-Color




An indexed-color (8-bit or PseudoColor)
framebuffer stores one byte per pixel
This byte indexes into a color map:
How many colors
can a pixel be?
Cute trick:
color-map animation
David Luebke
7/27/2016
Framebuffers: Hi-Color




Hi-Color is a popular PC SVGA standard
Packs R,G,B into 16-bits with 5 bits/channel:
Each pixel can be one of 215 colors
Hi-color images can exhibit worse
quantization artifacts than a
well-mapped 8-bit image
David Luebke
7/27/2016
UNIX

You should familiarize yourself with UNIX
–
–
–
–

Getting around: cd, mkdir/rmdir, cp/mv/rm
Using make and Makefiles
Using gdb
Carlton will be available to help with this in the lab
We will use 2 libraries: OpenGL and Xforms
– OpenGL native on SGIs; on other platforms Mesa
David Luebke
7/27/2016
XForms Intro

Xforms: a toolkit for easily building Graphical
User Interfaces, or GUIs
– See http://bragg.phys.uwm.edu/xforms
– Lots of widgets: buttons, sliders, menus, etc.
– Plus, an OpenGL canvas widget that gives us a
viewport or context to draw into with GL or Mesa.


Quick tour now
You’ll learn the details yourself in
Assignment 1
David Luebke
7/27/2016
Download