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