Title: SI31 Advanced Computer Graphics AGR
1SI31Advanced Computer GraphicsAGR
- Lecture 13
- An Introduction to Ray Tracing
2Ray Tracing
- Ray tracing is an alternative rendering approach
to the polygon projection, shading and z-buffer
way of working - It is capable of high quality images through
taking account of global illumination
3Ray Tracing Example
4Firing Rays
light
The view plane is marked with a grid
corresponding to pixel positions on screen. A
ray is traced from the camera through each pixel
in turn.
5Finding Intersections
light
We calculate the intersection of the ray with
all objects in the scene. The nearest
inter- section will be the visible surface
for that ray
6Intensity Calculation
The intensity at this nearest intersection is
found from the usual Phong reflection
model. Stopping at this point gives us a
very simple rendering method. Often called ray
casting
7Phong Reflection Model
light source
N
R
L
eye
?
V
?
surface
dist distance attenuation factor
Here V is direction of incoming ray, N is normal,
L is direction to light source, and R is
direction of perfect spec. reflection.
Note R.V calculation replaced by H.N for speed -
H (LV)/2
8Intensity Calculation
Thus Phong reflection model gives us intensity
at point based on a local model I I
local where I local I ambient I diffuse I
specular
Intensity calculated separately for red, green,
blue
9Shadows
To determine if the point is in shadow, we can
fire a ray at the light source(s) - in direction
L. If the ray intersects another object, then
point is in shadow from that light. In this
case, we just use ambient component I local I
ambient Otherwise the point is fully lit.
shadow ray
Note this has to be done for every light source
in scene.
10Reflected Ray
Ray tracing models reflections by looking for
light coming in along a secondary ray, making a
perfect specular reflection.
11Reflected Ray- Intersection and Recursion
light
We calculate the intersection of this reflected
ray, with all objects in the scene. The
intensity at the nearest intersection point is
calculated, and added as a contribution attenuate
d by distance. This is done recursively.
12Reflected Ray - Intensity Calculation
light
The intensity calculation is now I I local k
r I reflected
Here I reflected is calculated recursively k r
is a reflection coefficient (similar to k s )
13Ray Termination
Rays terminate - on hitting diffuse surface - on
going to infinity - after several reflections -
why?
14Transmitted Ray
If the object is semi- transparent, we also need
to take into account refraction
light
Thus we follow also transmitted rays, eg T1.
15Refraction
?r
?i
Change in direction is determined by
the refractive indices of the materials, ??i and
??r
T
?r
N
?i
Snells Law sin ? r (? i / ? r ) sin ? i
V
T (? i / ? r ) V - ( cos ? r - (? i / ? r ) cos
? i ) N
16Refraction Contribution
- The contribution due to transmitted light is
taken as - kt It( ? )
- where
- kt is the transmission coefficient
- It( ? ) is the intensity of transmitted light,
again calculated separately for red, green, blue
17Intensity Calculation
The intensity calculation is now I I local k
r I reflected k t I transmitted
I reflected and I transmitted are calculated
recursively
18Binary Ray Tracing Tree
S4
light
S1
T1
R1
S2
S3
S2
S3
R1
T1
S1
S4
The intensity is calculated by traversing the
tree and accumulating intensities
19Calculating Ray Intersections
- A major part of ray tracing calculation is the
intersection of ray with objects - Two important cases are
- sphere
- polygon
20Ray - Sphere Intersection
Let camera position be (x1, y1, z1) Let pixel
position be (x2, y2, z2) Any point on ray
is x(t) x1 t (x2 - x1) x1 t i y(t)
y1 t (y2 - y1) y1 t j z(t) z1 t
(z2 - z1) z1 t k As t increases from zero,
x(t), y(t), z(t) traces out the line from (x1,
y1, z1) through (x2, y2, z2). Equation of
sphere, centre (l, m, n) and radius r (x - l)2
(y - m)2 (z - n)2 r2
21Ray - Sphere Intersection
Putting the parametric equations for x(t), y(t),
z(t) in the sphere equation gives a quadratic in
t at2 bt c 0 Exercise write down a, b,
c in terms of i, j, k, l, m, n, x1, y1,
z1 Solving for t gives the intersection
points b2 - 4ac lt 0 no intersections b2 - 4ac
0 ray is tangent b2 - 4ac gt 0 two
intersections, we want smallest positive
22Ray - Polygon Intersection
Equation of ray x(t) x1 t i y(t) y1 t
j z(t) z1 t k Equation of plane ax
by cz d 0 Intersection t - (ax1 by1
cz1 d) / (ai bj ck) Need to check
intersection within the extent of the polygon.
23Ray Tracing - Limitations
- This basic form of ray tracing is often referred
to as Whitted ray tracing after Turner Whitted
who did much of the early work... - Ray tracing in its basic form is computationally
intensive - Much research has gone into increasing the
efficiency and this will be discussed in next
lecture.
24Ray Tracing Example
25Depth 0
26Depth 1
27Depth 2
28Depth 3
29Depth 4
30Depth 7
31Acknowledgements
- As ever, thanks to Alan Watt for the excellent
images