CS 445 / 645: Introductory Computer Graphics

29
CS 445 / 645: Introductory Computer Graphics Light

description

CS 445 / 645: Introductory Computer Graphics. Light. Fiat Lux. Learn more about Paul Debevec’s research http://www.debevec.org/FiatLux/h. Administrivia. Assignment 3 Due Sunday, October 21 st at Midnight Midterm Exam Tuesday, October 23 rd See web page for reading material - PowerPoint PPT Presentation

Transcript of CS 445 / 645: Introductory Computer Graphics

Page 1: CS 445 / 645:  Introductory Computer Graphics

CS 445 / 645: Introductory Computer Graphics

Light

Page 2: CS 445 / 645:  Introductory Computer Graphics

Fiat Lux

Learn more about Paul Debevec’s research– http://www.debevec.org/FiatLux/h

Page 3: CS 445 / 645:  Introductory Computer Graphics

Administrivia

Assignment 3 Due– Sunday, October 21st at Midnight

Midterm Exam– Tuesday, October 23rd

– See web page for reading material– More review info in class after break

Page 4: CS 445 / 645:  Introductory Computer Graphics

Lighting and Shading

Lighting Models– Ambient

Normals don’t matter

– Lambert/Diffuse Angle between surface normal and light

– Phong/Specular Surface normal, light, and viewpoint

Shading Models…

Page 5: CS 445 / 645:  Introductory Computer Graphics

Applying Illumination

We now have an illumination model for a point on a surface

Assuming that our surface is defined as a mesh of polygonal facets, which points should we use?

Keep in mind:– It’s a fairly expensive calculation– Several possible answers, each with different

implications for the visual quality of the result

Page 6: CS 445 / 645:  Introductory Computer Graphics

Applying Illumination

With polygonal/triangular models:– Each facet has a constant surface normal– If the light is directional, the diffuse reflectance is

constant across the facet

Page 7: CS 445 / 645:  Introductory Computer Graphics

Flat Shading

The simplest approach, flat shading, calculates illumination at a single point for each polygon:

If an object really is faceted, is this accurate?

Page 8: CS 445 / 645:  Introductory Computer Graphics

Is flat shading realistic for faceted object?

No:– For point sources, the direction to light varies

across the facet

– For specular reflectance, direction to eye varies across the facet

Page 9: CS 445 / 645:  Introductory Computer Graphics

Flat Shading

We can refine it a bit by evaluating the Phong lighting model at each pixel of each polygon, but the result is still clearly faceted:

To get smoother-looking surfaceswe introduce vertex normals at eachvertex– Usually different from facet normal– Used only for shading– Think of as a better approximation of the real

surface that the polygons approximate

Page 10: CS 445 / 645:  Introductory Computer Graphics

Vertex Normals

Vertex normals may be – Provided with the model– Computed from first principles – Approximated by averaging the normals of the

facets that share the vertex

Page 11: CS 445 / 645:  Introductory Computer Graphics

Gouraud Shading

This is the most common approach– Perform Phong lighting at the vertices– Linearly interpolate the resulting colors over faces

Along edges Along scanlines C1

C2

C3

c1 + t1(c2-c1)

c1 + t2(c3-c1)c1 + t1(c2-c1) + t3(c1 + t2(c3-c1)- c1 + t1(c2-c1))

– This is what OpenGL does Does this eliminate the facets?

Page 12: CS 445 / 645:  Introductory Computer Graphics

Gouraud Shading Artifacts

– Often appears dull, chalky– Lacks accurate specular component

If included, will be averaged over entire polygon

C1

C2

C3

Can’t shade that effect!

Page 13: CS 445 / 645:  Introductory Computer Graphics

Gouraud Shading

C1

C2

C3

Artifacts– Mach Banding

Artifact at discontinuities in intensity or intensity slope

C4

Discontinuity in rateof color change

occurs here

Page 14: CS 445 / 645:  Introductory Computer Graphics

Phong Shading

Phong shading is not the same as Phong lighting, though they are sometimes mixed up– Phong lighting: the empirical model we’ve been

discussing to calculate illumination at a point on a surface

– Phong shading: linearly interpolating the surface normal across the facet, applying the Phong lighting model at every pixel

Same input as Gouraud shading Usually very smooth-looking results: But, considerably more expensive

Page 15: CS 445 / 645:  Introductory Computer Graphics

Phong Shading

Linearly interpolate the vertex normals– Compute lighting equations at each pixel– Can use specular component

N1

N2

N3

N4

lights

i

n

sdiambientatotalshinyRVkLNkIIkI

#

1

ˆˆˆˆ

Remember: Normals used in diffuse and specular terms

Discontinuity in normal’s rate of change is harder to detect

Page 16: CS 445 / 645:  Introductory Computer Graphics

Shortcomings of Shading

Polygonal silhouettes remain

Gouraud Phong

Page 17: CS 445 / 645:  Introductory Computer Graphics

Perspective Distortion

Z – into the scene

Imageplane

Notice that linear interpolation in screen spacedoes not align with linear interpolation in world space

Break up large polygonswith many smaller ones

Page 18: CS 445 / 645:  Introductory Computer Graphics

Perspective Distortion

Notice that linear interpolation in screen spacedoes not align with linear interpolation in world space

Z – into the scene

Imageplane

Break up large polygonswith many smaller ones

Page 19: CS 445 / 645:  Introductory Computer Graphics

Interpolation dependent on polygon orientation

A

D

C

B

B

A

D

C

Interpolate betweenAB and AD

Interpolate betweenAB and BC

Rotate -90o

and colorsame point

Page 20: CS 445 / 645:  Introductory Computer Graphics

Problems at Shared Vertices

B

A

C

Vertex B is shared by the two rectangles on the right, but not by the one on the left

E

D

F

H

GThe first portion of the scanlineis interpolated between DE and AC

The second portion of the scanlineis interpolated between BC and GH

A large discontinuity could arise

Page 21: CS 445 / 645:  Introductory Computer Graphics

Bad Vertex Averaging

Page 22: CS 445 / 645:  Introductory Computer Graphics

Global Illumination

We’ve glossed over how light really works And we will continue to do so… One step better

Global Illumination– The notion that a point is illuminated by more than

light from local lights; it is illuminated by all the emitters and reflectors in the global scene

Page 23: CS 445 / 645:  Introductory Computer Graphics

The ‘Rendering Equation’

Jim Kajiya (Current head of Microsoft Research) developed this in 1986

· I(x, x’) is the total intensity from point x’ to x· G(x, x’) = 0 when x/x’ are occluded and 1/d2

otherwise (d = distance between x and x’) (x, x’) is the intensity emitted by x’ to x (x, x’,x’’) is the intensity of light reflected from x’’ to

x through x’ S is all points on all surfaces

S

dxxxIxxxxxxxgxxI '''',''',',',',',

Page 24: CS 445 / 645:  Introductory Computer Graphics

The ‘Rendering Equation’

The light that hits x from x’ is the direct illumination from x’ and all the light reflected by x’ from all x’’

To implement:– Must handle recursion effectively– Must support diffuse and specular light– Must model object shadowing

Page 25: CS 445 / 645:  Introductory Computer Graphics

Recursive Ray Tracing

Cast a ray from the viewer’s eye through each pixel

Compute intersection of this ray with objects from scene

Closest intersecting object determines color

Page 26: CS 445 / 645:  Introductory Computer Graphics

Recursive Ray Tracing

Cast a ray from intersected object to light sources and determine shadow/lighting conditions

Also spawn secondary rays– Reflection rays and refraction rays– Use surface normal as guide (angle of

incidence equals angle of reflection)– If another object is hit, determine the

light it illuminates by recursing through ray tracing

Page 27: CS 445 / 645:  Introductory Computer Graphics

Recursive Ray Tracing

Stop recursing when:– ray fails to intersect an object– user-specified maximum depth is reached– system runs out of memory

Common numerical accuracy error– Spawn secondary ray from intersection point– Secondary ray intersects another polygon on

same object

Page 28: CS 445 / 645:  Introductory Computer Graphics

Recursive Ray Tracing

Still producing PhD’s after all these years Many opportunities to improve efficiency and

accuracy of ray tracing– Reduce the number of rays cast– Accurately capture shadows caused by non-lights

(ray tracing from the light source)– Expensive to recompute as eyepoint changes

Page 29: CS 445 / 645:  Introductory Computer Graphics

Radiosity

Ray tracing models specular reflection and refractive transparency, but still uses an ambient term to account for other lighting effects

Radiosity is the rate at which energy is emitted or reflected by a surface

By conserving light energy in a volume, these radiosity effects can be traced