CSCE 641: Computer Graphics Ray Tracing Jinxiang Chai.
-
date post
22-Dec-2015 -
Category
Documents
-
view
225 -
download
2
Transcript of CSCE 641: 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
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?
Overview
Ray Tracing Algorithm
Shadows, Reflection, Refraction
Surface Intersection
Infinite planes, spheres, polygons
Optimizations
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
refractedareflectededirect IIII 1
2
3
4
L1
L2
speculardiffuseambientdirect IIII
Recursive Ray Tracing and Light path
1
2
3
4
L1
L2
Ray tracing paths just reverses real light paths!
Recursive Ray Tracing and Light path
1
2
3
4
L1
L2
Ray tracing paths just reverses real light paths!
Recursive Ray Tracing and Light path
1
2
3
4
L1
L2
Ray tracing paths just reverses real light paths!
Recursive Ray Tracing and Light path
1
2
3
4
L1
L2
Ray tracing paths just reverses real light paths!
Recursive Ray Tracing and Light path
1
2
3
4
L1
L2
Ray tracing paths just reverses real light paths!
Recursive Ray Tracing and Light path
1
2
3
4
L1
L2
Ray tracing paths just reverses real light paths!
Ray Tree
Object 1 L2
Shadow of Obj 4
Object 3
Reflection
ReflectionL2
L1
Object 2
Transmission
ReflectionL2
L1
Eye
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
refractedareflectededirect IIII
speculardiffuseambientdirect IIII
directI
reflectedI refractedI
refractedIrefractedIreflectedI reflectedI
e
e e
a
aa
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
eye
screen
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?
)()( cptctr ij
Ray-Triangle Intersection
• First, intersection ray with plane
• Then, check if point is in triangle
Ray-Triangle Intersection
Check if point is inside triangle algebraically
For each side of triangle
0
0
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
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
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)