1 Jernej Barbic University of Southern California CSCI 420 Computer Graphics Lecture 15 Ray Tracing Ray Casting Shadow Rays Reflection and Transmission [Ch. 13.2 - 13.3]
1
Jernej Barbic University of Southern California
CSCI 420 Computer Graphics Lecture 15
Ray Tracing
Ray Casting Shadow Rays Reflection and Transmission [Ch. 13.2 - 13.3]
2
Local Illumination
• Object illuminations are independent • No light scattering between objects • No real shadows, reflection, transmission • OpenGL pipeline uses this
3
Global Illumination
• Ray tracing (highlights, reflection, transmission) • Radiosity (surface interreflections) • Photon mapping • Precomputed Radiance Transfer (PRT)
4
Object Space:
• Graphics pipeline: for each object, render – Efficient pipeline architecture, real-time – Difficulty: object interactions (shadows, reflections, etc.)
• Ray tracing: for each pixel, determine color – Pixel-level parallelism – Difficulty: very intensive computation, usually off-line
Image Space:
5
First idea: Forward Ray Tracing
• Shoot (many) light rays from each light source • Rays bounce off the objects • Simulates paths of photons • Problem: many rays will
miss camera and not contribute to image!
• This algorithm is not practical
7
Generating Rays
• Camera is at (0,0,0) and points in the negative z-direction
• Must determine coordinates of image corners in 3D
8
Generating Rays
y
z x
side view
center of projection (COP)
image plane
field of view angle
(fov)
ray
frontal view
y
z x
h
w
aspect ratio = w / h
9
Generating Rays
y
z x
side view
COP
image plane
field of view angle
(fov)
y
z x
side view
image plane
f = 1
y = tan(fov/2) z = -1
y = -tan(fov/2) z = -1
y = 0 z = 0
10
Generating Rays
frontal view
y
z x
h
w
a = aspect ratio = w / h
x = a tan(fov/2) y = tan(fov/2) z = -1
x = a tan(fov/2) y = -tan(fov/2) z = -1
x = -a tan(fov/2) y = tan(fov/2) z = -1
x = -a tan(fov/2) y = -tan(fov/2) z = -1
x = 0 y = 0 z = -1
11
Determining Pixel Color
1. Phong model (local as before) 2. Shadow rays 3. Specular reflection 4. Specular transmission
Steps (3) and (4) require recursion.
12
Shadow Rays
• Determine if light “really” hits surface point
• Cast shadow ray from surface point to each light
• If shadow ray hits opaque object, no contribution from that light
• This is essentially improved diffuse reflection
n
light source camera
ray
shadow ray (blocked)
image plane
scene object 1
scene object 2
13
Phong Model
• If shadow ray can reach to the light, apply a standard Phong model
n l v
light source camera
ray shadow ray (unblocked)
image plane
scene object
15
Reflection Rays
• For specular component of illumination • Compute reflection ray (recall: backward!) • Call ray tracer recursively to determine color
16
Angle of Reflection
• Recall: incoming angle = outgoing angle • r = 2(l • n) n – l • Compute only for surfaces that are reflective
18
Transmission Rays
• Calculate light transmitted through surfaces • Example: water, glass • Compute transmission ray • Call ray tracer recursively to determine color
19
Transmitted Light
• Index of refraction is speed of light, relative to speed of light in vacuum – Vacuum: 1.0 (per definition) – Air: 1.000277 (approximate to 1.0) – Water: 1.33 – Glass: 1.49
• Compute t using Snell’s law – ηl = index for upper material – ηt = index for lower material
20
Translucency
• Most real objects are not transparent, but blur the background image
• Scatter light on other side of surface
• Use stochastic sampling (called distributed ray tracing)
22
The Ray Casting Algorithm
• Simplest case of ray tracing 1. For each pixel (x,y), fire a ray from COP through (x,y) 2. For each ray & object, calculate closest intersection 3. For closest intersection point p
– Calculate surface normal – For each light source, fire shadow ray – For each unblocked shadow ray, evaluate local Phong model for
that light, and add the result to pixel color
• Critical operations – Ray-surface intersections – Illumination calculation
23
Recursive Ray Tracing
• Also calculate specular component – Reflect ray from eye on specular surface – Transmit ray from eye through transparent surface
• Determine color of incoming ray by recursion • Trace to fixed depth • Cut off if contribution below threshold
24
Ray Tracing Assessment
• Global illumination method • Image-based • Pluses
– Relatively accurate shadows, reflections, refractions
• Minuses – Slow (per pixel parallelism, not pipeline parallelism) – Aliasing – Inter-object diffuse reflections require many bounces