csce 441: computer graphics ray tracing
DESCRIPTION
Ray Tracing Is a global illumination technique Provides rendering method with Refraction/Transparent surfaces Reflective surfaces Shadows Image taken from http://www.tjhsst.edu/~dhyatt/superap/samplex.jpgTRANSCRIPT
CSCE 441: Computer Graphics Ray Tracing
Jinxiang Chai
Ray Tracing
Is a global illumination technique
Provides rendering method with Refraction/Transparent surfaces Reflective surfaces Shadows
Image taken from http://www.tjhsst.edu/~dhyatt/superap/samplex.jpg
Ray Tracing
Is a global illumination technique
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?
Local Illumination vs. Ray Tracing
- Reflective surface- Realistic shadows
Overview
Ray Tracing Algorithm Shadows, Reflection, Refraction
Surface Intersection Infinite planes, spheres, polygons
OptimizationsReadings: HB 21-1
Essential Information for Ray Tracing
Eye pointScreen position/orientationObjects
Material properties Reflection/Refraction coefficients Index of refraction
Light sources
Direct and Indirect Light
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 (where the angle of reflection equals the angle
of incidence) - 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 (where the angle of reflection equals the angle
of incidence) - 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 (where the angle of reflection equals the angle
of incidence) - 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
1
2
3
4
L1
L2
Recursive Ray Tracing
1
2
3
4
L1
L2
Recursive Ray Tracing
1
2
3
4
L1
L2
Recursive Ray Tracing
refractedareflectededirect IIII 1
2
3
4
L1
L2
Recursive Ray Tracing
refractedareflectededirect IIII 1
2
3
4
L1
L2
Recursive Ray Tracing
refractedareflectededirect IIII 1
2
3
4
L1
L2
speculardiffuseambientdirect IIII
Recursive Ray Tracing
refractedareflectededirect IIII 1
2
3
4
L1
L2
Recursive Ray Tracing
1
2
3
4
L1
L2
Recursive Ray Tracing
1
2
3
4
L1
L2
Recursive Ray Tracing
1
2
3
4
L1
L2
What are 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!
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
L1Object 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 removalReflection direction - mirror directionRefraction direction - Snell’s law
Ray-object Intersection
eye
screen
Similar to ray casting!
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-Sphere Intersection
Ray-Triangle Intersection
• First, intersecting the 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 evaluate if the intersection point P is above or below the
plane(P-P0)∙N1=0P on the
equation:P above the plane:
(P-P0)∙N1>0
P below the plane:
(P-P0)∙N1<0
Ray-Triangle Intersection
Check if point is inside triangle algebraically
For each side of triangle
00
// P is outside triangle
Reflection
Mirror-like/Shiny objects
V
N
Surface
R
VNNVR )(2
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
V N1
Surface
2
N R
1
2
2
1
2
1
)sin()sin(
nn
cc
How to compute Transmission Ray?
V N1
Surface
2
N R
n1
n2
Given V and N, as well as n1 and n2, how to compute R?
Snell’s Law
V N1
Surface
2
N R
)sin()sin(
2
1
2
1
ccV
||V
Snell’s Law
N1
Surface
2
N R
)sin()sin(
2
1
2
1
cc
||)sin())(cos( 22 VVNR
V V
||V
Snell’s Law
N1
Surface
2
N R
)sin()sin(
2
1
2
1
cc
||)sin())(cos( 22 VVNR
V V
||V
Snell’s Law
N1
Surface
2
N R
)sin()sin(
2
1
2
1
cc
||)sin())(cos( 22 VVNR
V V
||V
Snell’s Law
V N1
Surface
2
N R
)sin()sin(
2
1
2
1
cc
||)()sin())(cos( 22 V
VNNVNR
Snell’s Law
V N1
Surface
2
N R
)sin()sin(
2
1
2
1
cc
)sin()()sin())(cos(
122
VNNVNR
Snell’s Law
V N1
Surface
2
N R
)sin()sin(
2
1
2
1
cc
))(())(cos(1
22 VNNV
ccNR
Snell’s Law
V N1
Surface
2
N R
)sin()sin(
2
1
2
1
cc
))(()()sin(11
222 VNNV
ccNR
Snell’s Law
V N1
Surface
2
N R
)sin()sin(
2
1
2
1
cc
))(()()sin(11
22
1
222
1 VNNVccN
ccR
Snell’s Law
V N1
Surface
2
N R
)sin()sin(
2
1
2
1
cc
))(()(1)sin(1
2
1
21
22
21 VNNV
ccN
cccR
Snell’s Law
V N1
Surface
2
N R
)sin()sin(
2
1
2
1
cc
))(()(1))(1(1
2
1
222
21 VNNV
ccN
cNVccR
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
Ray Tracing Results: Massive Models
Pros and Cons of Ray Tracing
Advantages of ray tracing All the advantages of the local illumination
model Also handles shadows, reflection, and
refractionDisadvantages 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)
Environment Mapping
An alternative way for modeling global reflections
How to create this effect?
Environment Mapping
An efficient technique for approximating the appearance of a reflective surface by means of a precomputed texture image.
Environment Mapping
Cheap attempt at modeling reflectionsMakes surfaces look metallic
The poor person’s ray tracing method (only consider reflection ray)
Use six textures to model faces of a cubeAssume cube faces infinitely far awayThe normal (or reflected eye vector) is used to
find which of the textures to use and what texture coordinate
Environment Mapping
Environment Mapping
Environment Mapping
Environment Mapping
reflective surface
viewer
environment texture image
v
n
r
Environment Mapping
Reflected ray: r=2(n·v)n-v
Texture is transferred in the direction of the reflected ray r from the environment map onto the objectWhat is in the map?
Incident ray reflected ray
How to represent the map
viewer
How to represent the map
viewer
How to represent the map
viewer
How to represent the map
viewer
Store colors of every possible direction in texture maps
How to represent the map
viewer
Store colors of every possible direction in texture maps
vc
cccc
How to represent the map
viewer
Store colors of every possible direction in texture maps
Look up texture maps based on reflected vector
vc
cccc
Cubic Mapping
The map resides on the surfaces of a cube around the object Typically, align the faces of the cube with the coordinate axes
To generate the map: For each face of the cube, render the world from the center
of the object with the cube face as the image plane Rendering can be arbitrarily complex (it’s off-line)
To use the map: Index the R ray into the correct cube face Compute texture coordinates
Cubic Map Example
How to represent the map
viewer
Store colors of every possible direction in texture maps
Sphere Mapping
Map lives on a sphereTo generate the map:
Render a spherical panorama from the designed center point
To use the map: Use the orientation of the R ray to index
directly into the sphere
Example
Environmental Mapping: Limitations
Assume distant environment
Only work for convex objects (i.e., no self-interreflections)