1 / 25

Ray-tracing

Ray-tracing. Overview. Recursive Ray Tracing Shadow Feelers Snell’s Law for Refraction When to stop!. Recap: Light Transport. (. ). m. (. å. (. ). ). M. =. +. I. k. I. k. n. l. k. h. n. +. ×. ×. ,. r. a. i. j. d. j. s. j. =. 1. j. Recap: Local Illumination.

Télécharger la présentation

Ray-tracing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ray-tracing

  2. Overview • Recursive Ray Tracing • Shadow Feelers • Snell’s Law for Refraction • When to stop!

  3. Recap: Light Transport

  4. ( ) m ( å ( ) ) M = + I k I k n l k h n + × × , r a i j d j s j = 1 j Recap: Local Illumination • Ambient, diffuse & specular components • The sum is over the specular and diffuse components for each light I a

  5. Recap: Result of Ray Casting

  6. Correcting for Non-Visible Lights N H E L surface

  7. Where Sj is the result of intersecting the ray L with the scene objects • Note consider your intersection points along the ray L carefully • Hint – they might be beyond the light!

  8. Result of Shadow Feeler

  9. Recursive Ray-Tracing • We can simulate specular-specular transmission elegantly by recursing and casting secondary rays from the intersection points • We must obviously chose a termination depth to cope with multiple reflections

  10. Introducing Reflection N H R • Where E L surface

  11. Computing the reflection direction N E • Ideal reflection •  =  • R same plane as V and N R = aE + bN • E.N = N.R = a(N.E)+b • If a = -1, b = 2N.E R = -E + 2(N.E)N R  

  12. Computing Reflectance • Where Ilocal is computed as before • Ray r' is formed from intersection point and the direction R and is cast into the scene as before

  13. p’’ L2 R2 R1 p p’ L1 Recursive Ray Tracing

  14. Pseudo Code Color RayTrace(Point p, Vector direction, int depth) { Point pd /* Intersection point */ Boolean intersection if (depth > MAX) return Black intersect(p,direction, &pd, &intersection) if (!intersection) return Background Ilocal = kaIa + Ip.v.(kd(n.l) + ks.(h.n)m) return Ilocal + kr*RayTrace(pd, R, depth+1) } Normally kr = ks

  15. Result of Recursion

  16. Perfect Specular Transmission N H E R Snell’s Law L  1 is index of refraction 2 T ß

  17. Using Snell’s Law • Using this law it is possible to show that: • Note that if the root is negative then total internal reflection has occurred and you just reflect the vector as normal

  18. T2 p’’ L2 R2 R1 p p’ T1 L1 Recursive Ray Tracing Including Transparent Objects

  19. New Pseudo Code Color RayTrace(Point p, Vector D, int depth) { Point pd /* Intersection point */ Boolean intersection if (depth > MAX) return Black intersect(p,direction, &pd, &intersection) if (!intersection) return Background Ilocal = kaIa + Ip.v.(kd(n.l) + ks.(h.n)m) return Ilocal + kr*RayTrace(pd, R, depth+1) + kt*RayTrace(pd, T, depth+1) }

  20. Direct Specular Transmission N • A transparent surface can be illuminated from behind and this should be calculated in Ilocal H' E L

  21. Calculating H' • Use H‘ instead of H in specular term

  22. Putting Everything Together

  23. Discussion – What Can’t We Simulate?

  24. Remark • Specular and transmission only • What should be added to consider diffuse reflection? • Why it’s expensive • Intersection of rays with polygons (90%) • How to reduce the cost? • Reduce the number of rays • Reduce the cost on each ray • First check with bounding box of the object • Methods to sort the scene and make it faster

  25. Summary • Recursive ray tracing is a good simulation of specular reflections • We’ve seen how the ray-casting can be extended to include shadows, reflections and transparent surfaces • However this is a very slow process and still misses some types of effect!

More Related