Transcript Interactive Computer Graphics Chapter 1
Cs 352:
Interactive 2D and 3D Computer Graphics
Chapter 1 - 2 Interactive Computer Graphics
This Class Interactive 2D and 3D Graphics Programming (with a taste of photorealistic graphics, image processing, and modeling) Top-down approach Course Information Syllabus Policies Platform Projects
Chapter 1 - 3 Interactive Computer Graphics
Aspects of Graphics Design vs. Programming Interactive vs. Photorealistic 2D vs. 3D Graphics vs. image processing vs. user interfaces
Chapter 1 - 4 Interactive Computer Graphics
Kinds of Graphics Software Photoshop, Illustrator, etc.
3D Modeling (CAD, animation) Rendering (ray tracing, radiosity) Animation tools Graphics programming APIs (OpenGL, DirectX) Scene graph libraries Game engines
Chapter 1 - 5 Interactive Computer Graphics
Comet Simulation COMET CRASH - Sandia supercomputer simulations of a one kilometer comet entering Earth's atmosphere, approaching the ocean's surface, and impacting the ocean, deforming the ocean floor and creating a giant high-pressure steam explosion rising into the stratosphere. The explosion ejects comet vapor and water vapor into ballistic trajectories that spread around the globe. The New York City skyline is shown for scale.
Chapter 1 - 6 Interactive Computer Graphics
Ray-traced Image
Chapter 1 - 7 Interactive Computer Graphics
Chapter 1 - 8 Interactive Computer Graphics
Intelligence Chart
Chapter 1 - 10 Interactive Computer Graphics Nvidia: Moore's Law is Dead, Multi-core Not Future
Chapter 1 - 11 Interactive Computer Graphics
History of Interactive Graphics http://www.geeks3d.com/20080810/graphics-rendering-pipelines/
Chapter 1 - 12 Interactive Computer Graphics
OpenGL OpenGL : a widely-used, open API for 3D graphics Old, originally from Silicon Graphics (SGI) Low-level, procedural (vs. scene graph retained mode) Designed for speed, control over hardware Need hardware support for top performance Widely used for CAD, VR, visualization, flight simulators Managed by non-profit “Khronos Group” consortium Support All major graphics cards, platforms have support Mobile devices (iOS, Android) use an embedded version HTML5 has experimental WebGL support Bindings for JavaScript, Java, C#, Perl, Python, Ruby, Scheme, Visual Basic, Ada, …
Chapter 1 - 13 Interactive Computer Graphics
Graphics Only OpenGL does not support windowing, interaction, UI, etc It must be used with another windowing system/library such as MS Windows—various Cocoa X11 Qt GLUT, GLFW HTML5 JavaScript?
Chapter 1 - 14 Interactive Computer Graphics
History GL (SGI), 1980s to early 1990s [ reality engine ?] OpenGL Architecture Review Board, 1992 Selected versions: 1.0, 1992 (Happy Twentieth birthday !) 1.3, 2001—better texture support 2.0, 2004—GLSL (GL Shading Language, user programmable vertex shaders) 3.0, 2008—plan: fundamental changes to the API—no longer state-based, requires use of GLSL 1.3. Compromise: old API deprecated (but still used) 4.1, 2010—new geometry control, shaders, OpenGL ES 2.0 compatibility 4.3, 4.4, 4.5
Chapter 1 - 15 Interactive Computer Graphics
http://wiki.maemo.org/OpenGL-ES
Chapter 1 - 16 Interactive Computer Graphics
Refraction using vertex shaders
Chapter 1 - 17 Interactive Computer Graphics
OpenGL ES OpenGL ES (for Embedded Systems) is a subset of OpenGL for mobile phones, consoles, etc Common and Common Lite profiles (lite profiles are fixed-point only) Version 2.0 released in 2007 GLSL for shaders Supported in iOS, Android, Maemo, WebGL, Blackberry, WebOS… Version 3.0, 2012: texture compression, new version of GLSL ES, 32-bit floats, enhanced texturing
Chapter 1 - 18 Interactive Computer Graphics
OpenGL vs. proprietary OpenGL Older Has survived the Direct3D challenge and emerged as undisputed standard for 3D graphics programming (apart from Windows games) Used more for professional applications Mobile gaming is mostly on OpenGL ES Unreal, Unity, other game engines on OpenGL ES DirectX: MS only Used more for games Latest versions are good Metal (Apple)
Chapter 1 - 19 Interactive Computer Graphics
WebGL OpenGL 2.0 ES in your Web browser, no plugins needed!
Supported by all major browsers except IE (Microsoft hates Web standards, OpenGL) Working group: Apple, Google, Mozilla, Opera (not Microsoft)
Chapter 1 - 20 Interactive Computer Graphics
Chapter 1 - 21 Interactive Computer Graphics
Other software we’ll use POV ray-tracer ImageMagick image manipulation library 3D Modeling: Google's SketchUp or Blender HTML5 Canvas element for 2D graphics The only cross-platform environment nowadays… Overview Three.js graphics library for WebGL
Chapter 1 - 22 Interactive Computer Graphics
Chapter 1: Graphics Systems and Models A Graphics System Processor Memory Frame Buffer Display Input Devices Output Devices
Chapter 1 - 23 Interactive Computer Graphics
Graphics Architecture
Chapter 1 - 24
Images Array of pixels Red , Green , Blue May also have an alpha value (opacity)
Interactive Computer Graphics
Chapter 1 - 25 Interactive Computer Graphics
Pixels and the Frame Buffer Pixels: picture elements 3 values: RGB, 0-255 or 0-65536 or 0.0-1.0
4 values: RGBA (Alpha = opacity) Frame buffer Depth: bits per pixel May have 24, 32, 64, or flexible depth
Chapter 1 - 26 Interactive Computer Graphics
Display terms Scan line Resolution Horizontal and vertical re-trace Refresh, refresh rate Interlace NTSC, PAL, S-video, Composite, Component HDTV
Chapter 1 - 27 Interactive Computer Graphics
LCD Display An unpowered LCD layer changes polarization of light
Chapter 1 - 28 Interactive Computer Graphics
The Human Visual System Rods: night vision Cones: day vision Three types of cones, with different color sensitivity We model and render for its capabilities
Chapter 1 - 29 Interactive Computer Graphics
Spectral Sensitivity Color spectrum: 780 nm (blue)…350 nm (red)
Chapter 1 - 30 Interactive Computer Graphics
Graphics Paradigms Modeling Rendering Photo-realistic: Ray tracing Radiosity Interactive: Projection – camera model Transformations, clipping Shading Texture mapping Rasterization
Interactive Computer Graphics Chapter 1 - 31
Ray Tracing
Ray Tracing
Chapter 1 - 32
Ray-traced blob
Interactive Computer Graphics
Chapter 1 - 33 Interactive Computer Graphics
How does Ray-Tracing work?
Modeling Build a 3D model of the world Geometric primitives Light sources Material properties Simulate the bouncing of light rays Trace ray from eye through image pixel to see what it hits From there, bounce ray in reflection direction, towards light source, etc.
Thus, model physics of emission, reflection, transmission, etc. (backwards)
Chapter 1 - 34 Interactive Computer Graphics
Modeling the World camera { location <0, 5, -5> look_at <0, 0, 0> angle 58 } light_source { <-20, 30, -25> color red 0.6 green 0.6 blue 0.6 } blob { threshold 0.5
sphere { <-2, 0, 0>, 1, 2 } cylinder { <-2, 0, 0>, <2, 0, 0>, 0.5, 1 } cylinder { <0, 0, -2>, <0, 0, 2>, 0.5, 1 } cylinder { <0, -2, 0>, <0, 2, 0>, 0.5, 1 } pigment { color red 1 green 0 blue 0 } finish { ambient 0.2 diffuse 0.8 phong 1 } rotate <0, 20, 0> }
Chapter 1 - 35
Ray thru pixel
Interactive Computer Graphics
Chapter 1 - 36
Flat blob
Interactive Computer Graphics
Chapter 1 - 37 Interactive Computer Graphics
Bounce toward lights
Chapter 1 - 38
Shadows
Interactive Computer Graphics
Chapter 1 - 39
Shaded blob
Interactive Computer Graphics
Chapter 1 - 40 Interactive Computer Graphics
Blob with Highlights
Chapter 1 - 41 Interactive Computer Graphics
Blob with ground plane
Chapter 1 - 42 Interactive Computer Graphics
Blob with transparency
Chapter 1 - 43 Interactive Computer Graphics
Blob with refraction
Chapter 1 - 44 Interactive Computer Graphics
Types of illumination Ambient – "light soup" that affects every point equally Diffuse – shading that depends on the angle of the surface to the light source Specular – 'highlights.' Falls off sharply away from the reflection direction Example: lighted teapot
Chapter 1 - 45 Interactive Computer Graphics
What are these made of?
Chapter 1 - 46 Interactive Computer Graphics
Material types Dielectrics (non-conductors): In body reflection, light penetrates the surface and is affected by material pigment Highlights are the color of the light source Examples: paint, plastic, wood, … Conductors (metals) No light penetrates the surface Highlight and "body" reflection are affected equally by the material Same color for diffuse and specular reflection
Chapter 1 - 47
Finishes
Interactive Computer Graphics
Chapter 1 - 48
Textures
Interactive Computer Graphics
Chapter 1 - 49
Surface (Ripples)
Interactive Computer Graphics
Chapter 1 - 50 Interactive Computer Graphics
POV-Ray Primitives
Chapter 1 - 51 Interactive Computer Graphics
Constructive Solid Geometry
Chapter 1 - 52
Sunsethf
Interactive Computer Graphics
Chapter 1 - 53 Interactive Computer Graphics
How to ray-trace… Transparency?
Refraction?
Reflection?
Fog?
Anti-aliasing?
Chapter 1 - 54 Interactive Computer Graphics
Drawbacks of ray tracing?
Time: many rays are needed per pixel… Up to 25 rays through each pixel Each ray may bounce and split many times Each ray tested for intersection with many objects E.g. 1M pixels * 25 rays per pixel * 40 rays per ray tree * 1000 objects = 1 trillion object intersection tests… Too slow for real time ?
Hard lighting No soft shadows, inter-object diffusion, etc
Chapter 1 - 55 Interactive Computer Graphics
POV-Ray An excellent, free ray tracer: POV-Ray We'll use for a brief intro to ray tracing Runs on PC, Unix, Mac, Beowolf clusters, … Installed on the computers in the Unix lab You may wish to install on your own computer First "lab": make a ray-traced image of four different types of primitives, one each plastic, glass, metal, and mirrored, over checked floor
Chapter 1 - 56 Interactive Computer Graphics
Beyond Ray Tracing Problems with ray tracing: hard shadows no color bleeding slow
Chapter 1 - 57 Interactive Computer Graphics
Radiosity in POV-Ray
Chapter 1 - 58 Interactive Computer Graphics
Radiosity Treat each patch as reflector and emitter of light Each patch affects every other patch depending on distance, orientation, occlusion etc.
Let light "bounce around" for a few iterations to compute the amount of light reaching a patch
Chapter 1 - 59
Radiosity image
Interactive Computer Graphics
Chapter 1 - 60
Radiosity - table
Interactive Computer Graphics
Chapter 1 - 61 Interactive Computer Graphics
Image: Wikipedia
Chapter 1 - 62 Interactive Computer Graphics
Radiosity example
Chapter 1 - 63 Interactive Computer Graphics
Source: ACM
Chapter 1 - 64 Interactive Computer Graphics
Form factors We need to know the percentage of the light leaving one patch that reaches another (form factor).
How to compute?
Chapter 1 - 65 Interactive Computer Graphics
Hemicube algorithm Hemicube algorithm for form factor computation: Put a hemicube around patch reference point Render an image in each of five directions Count pixels…
Chapter 1 - 66 Interactive Computer Graphics
Radiosity summary Radiosity gives wonderful soft shading But even slower than ray tracing… Can't do reflection, refraction, specular highlights with radiosity Can combine ray tracing and radiosity for best of both worlds (and twice the time)
Chapter 1 - 67 Interactive Computer Graphics
Interactive techniques Ray tracing and radiosity are too slow We'll concentrate on interactive techniques What kind of rendering can be done quickly ?
Chapter 1 - 68 Interactive Computer Graphics
Shutterbug - Orthographic
Chapter 1 - 69
- Perspective
Interactive Computer Graphics
Chapter 1 - 70
- Depth Cueing
Interactive Computer Graphics
Chapter 1 - 71
- Depth Clipping
Interactive Computer Graphics
Chapter 1 - 72
- Colored Edges
Interactive Computer Graphics
Chapter 1 - 73 Interactive Computer Graphics
- Hidden line removal
Chapter 1 - 74 Interactive Computer Graphics
- Hidden surface removal
Chapter 1 - 75
- Flat shading
Interactive Computer Graphics
Chapter 1 - 76 Interactive Computer Graphics
- Gouraud shading
Chapter 1 - 77 Interactive Computer Graphics
- Gouraud/specular
Chapter 1 - 78
- Gouraud/phong
Interactive Computer Graphics
Chapter 1 - 79
- Curved surfaces
Interactive Computer Graphics
Chapter 1 - 80 Interactive Computer Graphics
- Improved illumination
Chapter 1 - 81 Interactive Computer Graphics
- Texture mapping
Chapter 1 - 82 Interactive Computer Graphics
- Displacements, shadows
Chapter 1 - 83
- Reflections
Interactive Computer Graphics
Chapter 1 - 84 Interactive Computer Graphics
Rendering pipeline Transformations Clipping Projection Rasterization (what is done where?)