<<

Tracing Assignment

 Goal is to reproduce the following So You Want to Write a Ray Tracer

Checkpoint 6 –

Whitted, 1980

Ray Tracing Assignment Assignment

 Seven checkpoints  Seven checkpoints

 Setting the Scene  Setting the Scene

 Modeling  Camera Modeling

 Basic Shading  Basic Shading

 Procedural Shading  Procedural Shading

 Recursive Ray Tracing –  Recursive Ray Tracing – Reflection

 Recursive Ray Tracing – Transmission  Recursive Ray Tracing – Transmission

 Tone Reproduction  Tone Reproduction

Refraction Recursive Ray Tracing

illuminate (ray, depth)  Perform recursive ray tracing by find closest intersect considering reflection and refraction if (!intersection) return background color else  Parameters to add: spawn shadow ray  For each object retcolor = local illumination if (depth < MAX_DEPTH)  kr, kt – reflection and transmission constants if (kr > 0)  kt ≠ 0 for this checkpoint spawn reflection ray retcolor += kr * illuminate (reflect ray, depth+1)  Index of refraction (example 0.95) if (kt > 0) spawn transmission ray

retcolor += kt * illuminate (trans ray, depth +1) return retcolor

1 Recursive Ray Tracing Calculating Transmission Ray

For each pixel Starting with Snell’s law d ! n spawn ray from camera pos to pixel i !i η sinθ =η sinθ pixel_color = illuminate (ray, 1) i i t t ηt θ t t Assume d and n are normalized. We can find the equation for t, the d is the incoming transmission ray: ray, t is the η (d −n(d •n)) η2 (1 −(d •n)2 ) transmission ray. t = i +n 1- i η η 2 t t If negative – total internal reflection

Total Internal Reflection Total Internal Reflection

 an optical phenomenon that occurs when is refracted (bent) at a medium boundary enough to send it backwards, effectively reflecting all of the light.

 In these cases, the transmission ray will be spawned in the reflection direction.

Wikipedia

Total Internal Reflection Calculating transmission ray

 Snell’s law applet

 http://www.physics.northwestern.edu/ugrad/vpl/opt ics/snell.html

 Index of refraction of air = 1.0

 Optimization

 If indices of are the same Total internal reflection occurs around boundary of  no bending transparent sphere  Transmission direction is the same as incoming direction

2 Things to think about Things to think about

 Must keep track if you are inside or  2 ways to deal

outside  If n • d < 0 then Index of  Inside  Use –n as normal for calculations η refraction  Use inside η as !i Normal vector

 Keep track as you are spawning rays

Things to think about Refraction

public Vector3f faceForward (Vector3f A Vector3f B)  For sake of checkpoint {  Make one sphere transparent (k = 0.8) // For acute angles, dot product will t // be positive  Make other sphere non-transparent if (A.dot(B) >= 0) return A;

// Obtuse angle, reverse the first vector  May wish to test first with index of refraction = 1.0 Vector3f V = new Vector3f (A); V.scale (-1.0f); return V; }

Refraction Refraction

 Note:  Due date:  If done correctly, you should now have a faithful reproduction of the target image.  Must be posted to Web site by May 2nd

 Sample parameters  Recall:

 10% penalty per day Sphere1 – front Sphere2 – rear Color (all) = Color (amb/diffuse)  Having trouble? (0.7, 0.7, 0.7) Ka = 0 .0 7 5 Color (spec) = white  Let me know EARLY. Kd = 0 .0 7 5 Ka = 0 .1 5 Ks = 0 .2  Kd = 0 .2 5 Questions? Ke = 2 0 .0 Ks = 1 .0 Kr = 0 .0 1 Ke = 2 0 .0 Kt = 0 .8 5 Kr = 0 .7 5

Kt = 0 .0

3 Extra extra

 For 5 points:

 Adjust shadow ray based upon transparency of objects.

4