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 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” Especially for interactive graphics
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” RGB is the display tuple Normalized typical human cone cell responses to monochromatic spectral stimuli (Source: Wikipedia)
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, BodinDresevic, Bill Hill, Greg Hitchcock, Bert Kely, Don Mitchell, John Platt, Turner Whitted, 20.4: Displaced Filtering for Patterned Displays, Society for Information Display, 2000.
Physical reality (sort of) objects (triangles) for (each photon) for (each triangle) for (each pixel) draw; lights (photons) image (pixels)
Ray tracing objects (triangles) for (each pixel) for (each triangle) for (each light) draw; lights (photons) image (pixels)
Physical reality (sort of) objects (triangles) for (each light) for (each triangle) for (each pixel) draw; lights image (pixels)
Traditional graphics pipeline (OpenGL) objects (triangles) for (each triangle) for (each light) for (each pixel) draw; lights image (pixels)
Modern graphics pipeline (OpenGL 2.1) objects (triangles) for (each triangle) for (each pixel) for (each light) draw; lights image (pixels)
Global illumination Light paths are complex, not light triangle pixel Nature finds equilibrium efficiently Computers 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%)
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?