Last Time

28
12/05/02 (c) 2002 University of Wi sconsin Last Time Subdivision techniques for modeling Very brief intro to global illumination

description

Last Time. Subdivision techniques for modeling Very brief intro to global illumination. This Week and Next. Some graphics topics that we will cover at a higher level Other ways of rendering Other ways of calculating lighting Animation Today: More global illumination and Raytracing. - PowerPoint PPT Presentation

Transcript of Last Time

Page 1: Last Time

12/05/02 (c) 2002 University of Wisconsin

Last Time

• Subdivision techniques for modeling

• Very brief intro to global illumination

Page 2: Last Time

12/05/02 (c) 2002 University of Wisconsin

This Week and Next

• Some graphics topics that we will cover at a higher level– Other ways of rendering

– Other ways of calculating lighting

– Animation

• Today: More global illumination and Raytracing

Page 3: Last Time

12/05/02 (c) 2002 University of Wisconsin

Reflectance Modeling

• Reflectance modeling is concerned with the way in which light reflects off surfaces– Clearly important to deciding what surfaces look like– Also important in solving the light transport problem

• Physical quantity is BRDF: Bidirectional Reflectance Distribution Function– A function of a point on the surface, an incoming light direction,

and an outgoing light direction– Tells you how much of the light that comes in from one direction

goes out in another direction– General BRDFs are difficult to work with, so simplifications are

made

Page 4: Last Time

12/05/02 (c) 2002 University of Wisconsin

Simple BRDFs

• Diffuse surfaces:– Uniformly reflect all the light they receive

• Sum up all the light that is arriving: Irradiance• Send it back out in all directions

– A reasonable approximation for matte paints, soot, carpet

• Perfectly specular surfaces:– Reflect incoming light only in the mirror direction

• Rough specular surfaces:– Reflect incoming light around the mirror direction

• Diffuse + Specular:– A diffuse component and a specular component

Page 5: Last Time

12/05/02 (c) 2002 University of Wisconsin

Light Sources

• Sources emit light: exitance

• Different light sources are defined by how they emit light:– How much they emit in each direction from each point on their

surface

– For some algorithms, “point” lights cannot exist

– For other algorithms, only “point” light can exist

Page 6: Last Time

12/05/02 (c) 2002 University of Wisconsin

Global Illumination Equation

• The total light leaving a point is given by the sum of two major terms:– Exitance from the point

– Incoming light from other sources reflected at the point

dLLL ioobdooeoo cos),,(),,,,(),,(),,( xxxx

Light leaving

Exitance Sum BRDF Incominglight

Incoming light reflected at the point

Page 7: Last Time

12/05/02 (c) 2002 University of Wisconsin

Photorealistic Lighting

• Photorealistic lighting requires solving the equation!– Not possible in the general case with today’s technology

• Light transport is concerned with the “incoming light” part of the equation– Notice the chicken and egg problem

• To know how much light leaves a point, you need to know how much light reaches it

• To know how much light reaches a point, you need to know light leaves every other point

• Reflectance modeling is concerned with the BRDF– Hard because BRDFs are high dimensional functions that tend to

change as surfaces change over time

Page 8: Last Time

12/05/02 (c) 2002 University of Wisconsin

Classifying Rendering Algorithms

• One way to classify rendering algorithms is according to the type of light interactions they capture

• For example: The OpenGL lighting model captures:– Direct light to surface to eye light transport

– Diffuse and rough specular surface reflectance

– It actually doesn’t do light to surface transport correctly, because it doesn’t do shadows

• We would like a way of classifying interactions: light paths

Page 9: Last Time

12/05/02 (c) 2002 University of Wisconsin

Classifying Light Paths

• Classify light paths according to where they come from, where they go to, and what they do along the way

• Assume only two types of surface interactions:– Pure diffuse, D– Pure specular, S

• Assume all paths of interest:– Start at a light source, L– End at the eye, E

• Use regular expressions on the letters D, S, L and E to describe light paths– Valid paths are L(D|S)*E– Light, followed by either diffuse or specular, zero or more times, ending at

the eye

S or D

S or DS or D

Light Eye

Page 10: Last Time

12/05/02 (c) 2002 University of Wisconsin

Simple Light Path Examples

• LE– The light goes straight from the source to the viewer

• LDE– The light goes from the light to a diffuse surface that the

viewer can see

• LSE– The light is reflected off a mirror into the viewer’s eyes

• L(S|D)E– The light is reflected off either a diffuse surface or a

specular surface toward the viewer

• Which do OpenGL (approximately) support?

Page 11: Last Time

12/05/02 (c) 2002 University of Wisconsin

Radiosity Cornell box, due to Henrik wann Jensen,http://www.gk.dtu.dk/~hwj, rendered with ray tracer

More Complex Light Paths• Find the

following:– LE

– LDE

– LSE

– LDDE

– LDSE

– LSDE

Page 12: Last Time

12/05/02 (c) 2002 University of Wisconsin

The OpenGL Model

• The “standard” graphics lighting model captures only L(D|S)E

• It is missing:– Light taking more than one diffuse bounce: LD*E

• Should produce an effect called color bleeding, among other things

• Approximated, grossly, by ambient light

– Light refracted through curved glass• Consider the refraction as a “mirror” bounce: LDSE

– Light bouncing off a mirror to illuminate a diffuse surface: LS+D+E

– Many others

Page 13: Last Time

12/05/02 (c) 2002 University of Wisconsin

Raytracing

• Cast rays out from the eye, through each pixel, and determine what they hit first– Builds the image pixel by pixel, one at a time

• Cast additional rays from the hit point to determine the pixel color– Shadow rays toward each light. If they hit something, then the object is

shadowed from that light, otherwise use “standard” model for the light

– Reflection rays for mirror surfaces, to see what should be reflected in the mirror

– Transmission rays to see what can be seen through transparent objects

– Sum all the contributions to get the pixel color

Page 14: Last Time

12/05/02 (c) 2002 University of Wisconsin

Raytracing

Shadow rays

Reflection ray

Transmitted ray

Page 15: Last Time

12/05/02 (c) 2002 University of Wisconsin

Recursive Ray Tracing

• When a reflected or refracted ray hits a surface, repeat the whole process from that point– Send out more shadow rays

– Send out new reflected ray (if required)

– Send out a new refracted ray (if required)

– Generally, reduce the weight of each additional ray when computing the contributions to surface color

– Stop when the contribution from a ray is too small to notice

• What light paths does recursive ray tracing capture?

Page 16: Last Time

12/05/02 (c) 2002 University of Wisconsin

PCKTWTCH by Kevin Odhner, POV-Ray

Page 17: Last Time

12/05/02 (c) 2002 University of Wisconsin

Kettle, Mike Miller, POV-Ray

Page 18: Last Time

12/05/02 (c) 2002 University of Wisconsin

Page 19: Last Time

12/05/02 (c) 2002 University of Wisconsin

Ray-traced Cornell box, due to Henrik Jensen,http://www.gk.dtu.dk/~hwj

Which paths are missing?

Page 20: Last Time

12/05/02 (c) 2002 University of Wisconsin

Page 21: Last Time

12/05/02 (c) 2002 University of Wisconsin

Missing Paths

• Raytracing cannot do:– LS*D+E: Light bouncing off a shiny surface like a mirror and illuminating a

diffuse surface

– LD+E: Light bouncing off one diffuse surface to illuminate others

• Basic problem: The raytracer doesn’t know where to send rays out of the diffuse surface to capture the incoming light

• Also a problem for rough specular reflection– Fuzzy reflections in rough shiny objects

• Next lecture: Rendering algorithms that get more paths

Page 22: Last Time

12/05/02 (c) 2002 University of Wisconsin

Raytracing Implementation

• Raytracing breaks down into two tasks:– Constructing the rays to cast

– Intersecting rays with geometry

• The former problem is simple vector arithmetic

• The intersection problem arises in many areas of computer graphics– Collision detection

– Other rendering algorithms

• Intersection is essentially root finding (as we will see)– Any root finding technique can be applied

Page 23: Last Time

12/05/02 (c) 2002 University of Wisconsin

Constructing Rays

• Define rays by an initial point and a direction: x(t)=x0+td• Eye rays: Rays from the eye through a pixel

– Construct using the eye location and the pixel’s location on the image plane. x0=eye

• Shadow rays: Rays from a point on a surface to the light.– x0=point on surface

• Reflection rays: Rays from a point on a surface in the reflection direction– Construct using laws of reflection. x0=surface point

• Transmitted rays: Rays from a point on a transparent surface through the surface– Construct using laws of refraction. x0=surface point

Page 24: Last Time

12/05/02 (c) 2002 University of Wisconsin

Ray-Object Intersections

• Aim: Find the parameter value, ti, at which the ray first meets object i

• Transform the ray into the object’s local coordinate system– Makes ray-object intersections generic: ray-sphere, ray-plane, …

• Write the surface of the object implicitly: f(x)=0– Unit sphere at the origin is x•x-1=0

– Plane with normal n passing through origin is: n•x=0

• Put the ray equation in for x– Result is an equation of the form f(t)=0 where we want t

– Now it’s just root finding

Page 25: Last Time

12/05/02 (c) 2002 University of Wisconsin

Ray-Sphere Intersection

• Quadratic in t– 2 solutions: Ray passes through sphere - take minimum value that is > 0

– 1 solution: Ray is tangent - use it if >0

– 0 solutions: Ray does not hit sphere

012:

01 :Substitute

01 :Sphere

)( :Ray

0002

00

0

xxdxdd

dxdx

xx

dxx

tt

tt

tt

Page 26: Last Time

12/05/02 (c) 2002 University of Wisconsin

Ray-Plane Intersections

• To do polygons, intersect with plane then do point-in-polygon test…

dn

xn

xndn

dxn

xn

dxx

0

0

0

0

:

0:

0 :Substitute

0 :Plane

)( :Ray

t

t

t

tt

Page 27: Last Time

12/05/02 (c) 2002 University of Wisconsin

Ray-Patch Intersection

• Equation in 3 parameters, two for surface and two for ray• Solve using Newton’s method for root finding

– Have derivatives from basis functions– Starting point from control polygon, or random guess, or try a whole set of different

starting values• Intersect with a bounding box first to avoid wasteful, complex test

0)()( :Substitute

0)()(),( :Patch

)( :Ray

3

0i

3

00

3

0i

3

0

0

jjiij

jjiij

vBuBt

vBuBvu

tt

Pdx

Px

dxx

Page 28: Last Time

12/05/02 (c) 2002 University of Wisconsin

Details

• Must find first intersection of ray from the eye– Find all candidate intersections, sort them and take soonest

– Techniques for avoiding testing all objects• Bounding boxes that are cheap to test

• Octrees for organizing objects in space

– Take care to eliminate intersections behind the eye

– Same rules apply for reflection and transmission rays

• Shadow ray just has to find any intersection shadowing the light source– Speedup: Keep a cache of shadowing objects - test those first