
Ray Tracing Assignment Goal is to reproduce the following So You Want to Write a Ray Tracer Checkpoint 6 – Refraction Whitted, 1980 Ray Tracing Assignment Ray Tracing Assignment Seven checkpoints Seven checkpoints Setting the Scene Setting the Scene Camera Modeling Camera Modeling Basic Shading Basic Shading Procedural Shading Procedural Shading Recursive Ray Tracing – Reflection Recursive Ray Tracing – Reflection Recursive Ray Tracing – Transmission Recursive Ray Tracing – Transmission Tone Reproduction Tone Reproduction Refraction Recursive Ray Tracing color 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 light 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 refractions 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) = white 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.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages4 Page
-
File Size-