lecture03.ppt

Download Report

Transcript lecture03.ppt

CS 551/651:
Advanced Computer Graphics
Accelerating Ray Tracing
David Luebke
1
7/27/2016
Ray-Sphere Intersection

Ray R = O + tD
x = Ox + t * Dx
y = Oy + t * Dy
z = Oz + t * Dz

Sphere at (l, m, n) of radius r is:
(x - l)2 + (y - m)2 + (z - n)2 = r 2

Substitute for x,y,z and solve for t…
David Luebke
2
7/27/2016
Ray-Sphere Intersection

Works out as a quadratic equation:
at2 + bt + c = 0
where
a = Dx2 + Dy2 + Dz2
b = 2Dx (Ox - l) + 2Dy (Oy - m) + 2Dz (Oz - n)
c = l2 + m2 + n2 + Ox2 + Oy2 + Oz2
- 2(l Ox + m Oy + n Oz + r2)
David Luebke
3
7/27/2016
Ray-Sphere Intersection
If solving for t gives no real roots: ray does not
intersect sphere
 If solving gives 1 real root r, ray grazes sphere
where t = r
 If solving gives 2 real roots (r1, r2), ray
intersects sphere at t = r1 & t = r2



Ignore negative values
Smallest value is first intersection
David Luebke
4
7/27/2016
Ray-Sphere Intersection
Find intersection point Pi = (xi, yi, zi) by
plugging t back into ray equation
 Find normal at intersection point by
subtracting sphere center from Pi and
normalizing:

 xi  l yi  m zi  n 
N 
,
,

r
r
r


(When might we need the normal? When not?)
David Luebke
5
7/27/2016
Ray-Polygon Intersection
Polygons are the most common model
representation (Why?)
 Basic approach:




David Luebke
Find plane equation of polygon
Find intersection of ray and plane
Does polygon contain intersection point?
6
7/27/2016
Ray-Polygon Intersection

Find plane equation of polygon:
ax + by + cz + d = 0

y
How?
N
N = [a, b, c]
d = N  P1
P1
(How to find N ?)
David Luebke
P2
d
7
x
7/27/2016
Ray-Polygon Intersection

Find intersection of ray and plane:
t = -(aOx + bOy + cOz + d) / (aDx + bDy + cDz)

Does poly contain intersection point Pi ?

Book’s algorithm:
 Draw
line from Pi to each polygon vertex
 Measure angles between lines (how?)
 If sum of angles between lines is 360°,
polygon contains Pi
David Luebke
8
7/27/2016
Ray-Box Intersection
Often want to find whether a ray hits an axisaligned box (Why?)
 One way:



Intersect the ray with the pairs of parallel planes
that form the box
If the intervals of intersection overlap, the ray
intersects the box.
David Luebke
9
7/27/2016
Shadow Ray Problems:
Too Much Computation

Light buffer (Haines/Greenberg, 86)



Precompute lists of polygons surrounding light source in all
directions
Sort each list by distance to light source
Now shadow ray need only be intersected with appropriate
list!
Shadow
Ray
Light Buffer
Occluding Polys
David Luebke
10
Current Intersection 7/27/2016
Point
Shadow Ray Problems:
Sharp Shadows
Why are the shadows sharp?
 A: Infinitely small point light sources
 What can we do about it?
 A: Implement area light sources
 How?

David Luebke
11
7/27/2016
Shadow Ray Problems:
Area Light Sources

Could trace a conical beam from point of intersection
to light source:

Track portion of beam blocked by occluding
polygons:
30% blockage
David Luebke
12
7/27/2016
Shadow Ray Problems:
Area Light Sources
Too hard! Approximate instead:
 Sample the light source over its area and take
weighted average:

50% blockage
David Luebke
13
7/27/2016
Shadow Ray Problems:
Area Light Sources

Disadvantages:



Less accurate (50% vs. 30% blockage)
Oops! Just quadrupled (at least) number of
shadow rays
Moral of the story:

Soft shadows are very expensive in ray tracing
David Luebke
14
7/27/2016
The End
David Luebke
15
7/27/2016