cs 352: interactive 2d and 3d computer graphics. interactive computer graphicschapter 1 - 2 this...

Post on 15-Dec-2015

250 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Cs 352:

Interactive

2D and 3D

Computer Graphics

Interactive Computer GraphicsChapter 1 - 2

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

Interactive Computer GraphicsChapter 1 - 3

Aspects of Graphics Design vs. Programming Interactive vs. Photorealistic 2D vs. 3D Graphics vs. image processing vs. user

interfaces

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

Interactive Computer GraphicsChapter 1 - 4

Interactive Computer GraphicsChapter 1 - 5

Comet SimulationCOMET 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.

Interactive Computer GraphicsChapter 1 - 6

Ray-traced Image

Interactive Computer GraphicsChapter 1 - 7

Interactive Computer GraphicsChapter 1 - 8

Intelligence Chart

Nvidia: Moore's Law is Dead, Multi-core Not Future

Interactive Computer GraphicsChapter 1 - 10

History of Interactive Graphics

http://www.geeks3d.com/20080810/graphics-rendering-pipelines/

Interactive Computer GraphicsChapter 1 - 11

Interactive Computer GraphicsChapter 1 - 12

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, …

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?

Interactive Computer GraphicsChapter 1 - 13

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

Interactive Computer GraphicsChapter 1 - 14

http://wiki.maemo.org/OpenGL-ES

Interactive Computer GraphicsChapter 1 - 15

Refraction using vertex shaders

Interactive Computer GraphicsChapter 1 - 16

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

Interactive Computer GraphicsChapter 1 - 17

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)

Interactive Computer GraphicsChapter 1 - 18

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)

Interactive Computer GraphicsChapter 1 - 19

Interactive Computer GraphicsChapter 1 - 20

Interactive Computer GraphicsChapter 1 - 21

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

Interactive Computer GraphicsChapter 1 - 22

Chapter 1: Graphics Systems and Models A Graphics

System Processor Memory Frame Buffer

Display Input Devices Output Devices

Interactive Computer GraphicsChapter 1 - 23

Graphics Architecture

Interactive Computer GraphicsChapter 1 - 24

Images Array of pixels Red, Green, Blue May also have analpha value(opacity)

Interactive Computer GraphicsChapter 1 - 25

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

Interactive Computer GraphicsChapter 1 - 26

Display terms Scan line Resolution Horizontal and vertical re-trace Refresh, refresh rate Interlace NTSC, PAL, S-video, Composite,

Component HDTV

Interactive Computer GraphicsChapter 1 - 27

LCD Display An unpowered LCD layer changes

polarization of light

Interactive Computer GraphicsChapter 1 - 28

The Human Visual System Rods: night vision Cones: day vision Three types of

cones, with different color sensitivity

We model andrender for itscapabilities

Interactive Computer GraphicsChapter 1 - 29

Spectral Sensitivity

Color spectrum: 780 nm (blue)…350 nm (red)

Interactive Computer GraphicsChapter 1 - 30

Graphics Paradigms Modeling Rendering

Photo-realistic: Ray tracing Radiosity

Interactive: Projection – camera model Transformations, clipping Shading Texture mapping Rasterization

Interactive Computer GraphicsChapter 1 - 31

Ray Tracing

Ray Tracing

Interactive Computer GraphicsChapter 1 - 32

Ray-traced blob

Interactive Computer GraphicsChapter 1 - 33

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)

Interactive Computer GraphicsChapter 1 - 34

Modeling the Worldcamera { 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>}

Interactive Computer GraphicsChapter 1 - 35

Ray thru pixel

Interactive Computer GraphicsChapter 1 - 36

Flat blob

Interactive Computer GraphicsChapter 1 - 37

Bounce toward lights

Interactive Computer GraphicsChapter 1 - 38

Shadows

Interactive Computer GraphicsChapter 1 - 39

Shaded blob

Interactive Computer GraphicsChapter 1 - 40

Blob with Highlights

Interactive Computer GraphicsChapter 1 - 41

Blob with ground plane

Interactive Computer GraphicsChapter 1 - 42

Blob with transparency

Interactive Computer GraphicsChapter 1 - 43

Blob with refraction

Interactive Computer GraphicsChapter 1 - 44

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

Interactive Computer GraphicsChapter 1 - 45

What are these made of?

Interactive Computer GraphicsChapter 1 - 46

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

Interactive Computer GraphicsChapter 1 - 47

Finishes

Interactive Computer GraphicsChapter 1 - 48

Textures

Interactive Computer GraphicsChapter 1 - 49

Surface (Ripples)

Interactive Computer GraphicsChapter 1 - 50

POV-Ray Primitives

Interactive Computer GraphicsChapter 1 - 51

Constructive Solid Geometry

Interactive Computer GraphicsChapter 1 - 52

Sunsethf

Interactive Computer GraphicsChapter 1 - 53

How to ray-trace… Transparency? Refraction? Reflection? Fog? Anti-aliasing?

Interactive Computer GraphicsChapter 1 - 54

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

Interactive Computer GraphicsChapter 1 - 55

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

Beyond Ray Tracing Problems with ray tracing:

hard shadows no color bleeding slow

Interactive Computer GraphicsChapter 1 - 56

Interactive Computer GraphicsChapter 1 - 57

Radiosity in POV-Ray

Interactive Computer GraphicsChapter 1 - 58

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

Interactive Computer GraphicsChapter 1 - 59

Radiosity image

Interactive Computer GraphicsChapter 1 - 60

Radiosity - table

Image: Wikipedia

Interactive Computer GraphicsChapter 1 - 61

Interactive Computer GraphicsChapter 1 - 62

Radiosity example

Source: ACM

Interactive Computer GraphicsChapter 1 - 63

Form factors We need to know the percentage of the

light leaving one patch that reaches another (form factor).

How to compute?

Interactive Computer GraphicsChapter 1 - 64

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…

Interactive Computer GraphicsChapter 1 - 65

Interactive Computer GraphicsChapter 1 - 66

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)

Interactive Computer GraphicsChapter 1 - 67

Interactive techniques Ray tracing and radiosity are too slow We'll concentrate on interactive

techniques

What kind of rendering can be done quickly?

Interactive Computer GraphicsChapter 1 - 68

Shutterbug - Orthographic

Interactive Computer GraphicsChapter 1 - 69

- Perspective

Interactive Computer GraphicsChapter 1 - 70

- Depth Cueing

Interactive Computer GraphicsChapter 1 - 71

- Depth Clipping

Interactive Computer GraphicsChapter 1 - 72

- Colored Edges

Interactive Computer GraphicsChapter 1 - 73

- Hidden line removal

Interactive Computer GraphicsChapter 1 - 74

- Hidden surface removal

Interactive Computer GraphicsChapter 1 - 75

- Flat shading

Interactive Computer GraphicsChapter 1 - 76

- Gouraud shading

Interactive Computer GraphicsChapter 1 - 77

- Gouraud/specular

Interactive Computer GraphicsChapter 1 - 78

- Gouraud/phong

Interactive Computer GraphicsChapter 1 - 79

- Curved surfaces

Interactive Computer GraphicsChapter 1 - 80

- Improved illumination

Interactive Computer GraphicsChapter 1 - 81

- Texture mapping

Interactive Computer GraphicsChapter 1 - 82

- Displacements, shadows

Interactive Computer GraphicsChapter 1 - 83

- Reflections

Interactive Computer GraphicsChapter 1 - 84

Rendering pipeline

Transformations Clipping Projection Rasterization

(what is done where?)

top related