Interactive Computer Graphics Chapter 1

advertisement
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 onekilometer 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
http://wiki.maemo.org/OpenGL-ES
Interactive Computer Graphics
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






DirectX:




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
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
Chapter 1 - 31
Interactive Computer Graphics
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
look_at
angle 58
}
<0, 5, -5>
<0, 0, 0>
light_source { <-20, 30, -25>
color red 0.6 green 0.6 blue 0.6 }
blob {
threshold 0.5
sphere
{ <-2, 0, 0>,
cylinder { <-2, 0, 0>,
cylinder { <0, 0, -2>,
cylinder { <0, -2, 0>,
pigment { color red 1
finish
{ ambient 0.2
rotate <0, 20, 0>
}
1, 2 }
<2, 0, 0>, 0.5, 1
<0, 0, 2>, 0.5, 1
<0, 2, 0>, 0.5, 1
green 0 blue 0 }
diffuse 0.8 phong
}
}
}
1 }
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
Interactive Computer Graphics
Surface (Ripples)
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
Interactive Computer Graphics
- Gouraud/phong
Chapter 1 - 79
Interactive Computer Graphics
- Curved surfaces
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?)



Download