CSCE 441: Computer Graphics Ray Tracing Jinxiang Chai
Ray Tracing Provides rendering method with Refraction/Transparent surfaces Reflective surfaces Shadows Image taken from http://www.tjhsst.edu/~dhyatt/superap/samplex.jpg
Any difference for rendering three pixels? Ray Tracing Provides rendering method with Refraction/Transparent surfaces Reflective surfaces Shadows Any difference for rendering three pixels? Image taken from http://www.tjhsst.edu/~dhyatt/superap/samplex.jpg
Local Illumination vs. Ray Tracing
Ray Tracing Results Click here
Overview Ray Tracing Algorithm Shadows, Reflection, Refraction Surface Intersection Infinite planes, spheres, polygons Optimizations Readings: HB 10-11
Essential Information for Ray Tracing Eye point Screen position/orientation Objects Material properties Reflection/Refraction coefficients Index of refraction Light sources
Ray Tracing Assumption The illumination of a point is determined by - illumination/shadow ray (direct lighting from light sources)
Ray Tracing Assumption The illumination of a point is determined by - illumination/shadow ray (direct lighting from light sources)
Ray Tracing Assumption The illumination of a point is determined by - illumination/shadow ray (direct lighting from light sources) - reflection ray (light reflected by an object)
Ray Tracing Assumption The illumination of a point is determined by - illumination/shadow ray (direct lighting from light sources) - reflection ray (light reflected by an object) - transparent ray (light passing through an object)
Ray Tracing Assumption The illumination of a point is determined by - illumination/shadow ray (direct lighting from light sources) - reflection ray (light reflected by an object) - transparent ray (light passing through an object)
Ray Tracing Assumption The illumination of a point is determined by - illumination/shadow ray (direct lighting from light sources) - reflection ray (light reflected by an object) - transparent ray (light passing through an object)
Illumination / Shadow Rays A ray is cast from an object’s surface towards a light. If the light is not occluded, then the light contributes to the object’s surface color. If the light is occluded, then the light does not contribute to the object’s surface color. If ray hits a semi-transparent object, scale the contribution of that light and continue to look for intersections Occluder Pixels
Reflected Rays A ray is cast from the surface of an object based on its material properties. The contribution results in the specular reflection.
Transparency/transmission/refracted Rays Some objects are transparent or translucent. The transmitted light also contributes to the surface color, called specular transmission. The ray can be refracted based on the object’s composition.
Recursive Ray Tracing 3 L1 L2 4 1 2
Recursive Ray Tracing 3 L1 L2 4 1 2
Recursive Ray Tracing 3 L1 L2 4 1 2
Recursive Ray Tracing 3 L1 L2 4 1 2
Recursive Ray Tracing 3 L1 L2 4 1 2
Recursive Ray Tracing 3 L1 L2 4 1 2
Recursive Ray Tracing 3 L1 L2 4 1 2
Recursive Ray Tracing 3 L1 L2 4 1 2
Recursive Ray Tracing 3 L1 L2 4 1 2
What are real light paths? Recursive Ray Tracing 3 L1 L2 4 1 2 What are real light paths?
Recursive Ray Tracing and Light path 3 L1 L2 4 1 2 Ray tracing paths just reverses real light paths!
Recursive Ray Tracing and Light path 3 L1 L2 4 1 2 Ray tracing paths just reverses real light paths!
Recursive Ray Tracing and Light path 3 L1 L2 4 1 2 Ray tracing paths just reverses real light paths!
Recursive Ray Tracing and Light path 3 L1 L2 4 1 2 Ray tracing paths just reverses real light paths!
Recursive Ray Tracing and Light path 3 L1 L2 4 1 2 Ray tracing paths just reverses real light paths!
Recursive Ray Tracing and Light path 3 L1 L2 4 1 2 Ray tracing paths just reverses real light paths!
Ray Tree Eye Shadow of Obj 4 Object 1 L2 Reflection Transmission L1 L1
Recursive Ray Tracing For each pixel Intersect ray from eye through pixel with all objects in scene Find closest (positive) intersection to eye Compute lighting at intersection point Recur for reflected and refracted rays (if necessary)
Recursive Ray Tracing
Termination Criterion 1. The ray intersects no surfaces 2. The ray intersects a light source that is not a reflecting surface 3. The tree has been generated to its maximum allowable depth.
Three Issues Ray-object intersection - hidden surface removal Reflection direction - mirror direction Refraction direction - Snell’s law
Ray-object Intersection screen eye Similar to ray casting!
Ray-object Intersection screen eye Similar to ray casting! But how to determine the intersection point between a ray and an object such as sphere or triangle?
Ray Casting Implementation - Parameterize each ray as - Each object Ok returns tk>0 such that first intersection with ok occurs at r(tk) - Q: given the set {tk}, what is the first intersection point?
Ray-Sphere Intersection
Ray-Triangle Intersection First, intersection ray with plane Then, check if point is in triangle
Ray-Plane Intersection
Ray-Triangle Intersection Check if point is inside triangle algebraically For each side of triangle
Reflection Mirror-like/Shiny objects Surface
Refraction Bending of light caused by different speeds of light in different medium Each (semi-)transparent object has an index of refraction ni Use Snell’s law to find refracted vector Image taken from http://hyperphysics.phy-astr.gsu.edu/hbase/geoopt/refr2.html
Snell’s Law Surface
How to compute Transmission Ray? Surface n2
Snell’s Law Surface
Snell’s Law Surface
Snell’s Law Surface
Snell’s Law Surface
Snell’s Law Surface
Snell’s Law Surface
Snell’s Law Surface
Snell’s Law Surface
Snell’s Law Surface
Snell’s Law Surface
Snell’s Law Surface
Recursive Ray Tracing Recur for reflective/transparent objects
Recursive Ray Tracing Recur for reflective/transparent objects
Optimizations Lots of rays to cast! Ray-Surface intersections are expensive Associate with each object Bounding box in 3-space If ray doesn’t intersect box, then ray doesn’t intersect object
Parallel Processing Ray tracing is a trivially parallel algorithm! Cast rays in parallel Cast reflection, refraction, shadow rays in parallel Calculate ray/surface intersections independently in parallel
Ray Tracing Results: Special Effects Copyright Newline Cinema
Ray Tracing Results: Video Games These images are from a prototype computer game running in realtime on the ray tracer. It consists of more than 40 million polygons and all optical effects are fully simulated at rendering time. All trees are fully models and no LOD is being used.
Ray Tracing Results: Massive Models Ray tracing has been the first and (to our knowledge) only technology to interactively render the entire Boeing 777 data set. It consists of 350 million polygons and takes up to 30 GB of data on disk. Every detail is models including tiny screws, cables, pipes, values, and many more. With ray tracing this model can be rendered interactively even on a dual-processor PC with 2-3 fps at video resolution. The right image contains 365 000 plants with a total of roughly 1.5 billion polygons. All leafs use alpha-mapped textures leading to an extremely high depth complexity. Still the scene can be rendered with interactive performance on a decent PC cluster. Even smooth lighting from the sky dome can be integrated. An good approximation is then shown during interaction but the image converges to a high quality solution with a few seconds.
Pros and Cons of Ray Tracing Advantages of ray tracing All the advantages of the local illumination model Also handles shadows, reflection, and refraction Disadvantages of ray tracing Computational expense No diffuse inter-reflection between surfaces (i.e., color bleeding) Not physically accurate Other techniques exist to handle these shortcomings, at even greater expense!
Ray Tracing References Peter Shirley, “Realistic Ray Tracing”, ISBN 1-56881-110-1 Andrew Glassner, “An Introduction to Ray Tracing”, ISBN 0-12-286160-4 Steve Pettifer (http://www.cs.man.ac.uk/people/srp) Anselmo Lastra (http://www.cs.unc.edu/~lastra) Paul Rademacher (http://www.cs.unc.edu/~rademach) Mark Harris (http://www.cs.unc.edu/~harrism) Kenny Hoff (http://www.cs.unc.edu/~hoff) POV-Ray (http://www.povray.org)