Professional Documents
Culture Documents
Chapter – 4 (part - C)
Ray Tracing
1
Outline
– Ray-tracing
– Camera Frame
– Image Plane and Raster Image
– Computing Viewing Rays
– Ray-sphere Intersection
– Shading
2
Ray-Tracing Algorithm
• for each pixel do:
– compute viewing ray
– find first object hit by ray and its surface normal n
– set pixel color computed from hit point, light, and n
M (i, j) = shading(L, H, n)
3
Camera Frame (1/11)
─z
ray origin
─x z
─y
4
Camera Frame (2/11)
x
• e: viewpoint
v
• u: right
u • v: up
e • w: back
w
5
Camera Frame (3/11)
• ray origin = e + u u + v v
• ray direction =−w
y
x
v
(u, v)
(u, v)
v
v
u
e
w
e u u
6
Camera Frame (4/11)
(u, v)
7
Camera Frame (5/11)
x
(u, v)
v
u
e
w
8
Camera Frame (6/11)
(u, v)
9
Camera Frame (7/11)
x
(u, v)
v
u
e
w
10
Camera Frame (8/11)
(u, v)
11
Camera Frame (9/11)
v
u
e
w
12
Camera Frame (10/11)
Camera frame: (Camera coordinate)
e: viewpoint
y And 3 basis vectors:
• u: right
x • v: up
• w: back
(u, v)
v View direction (−w)
u
e
w
13
Camera Frame (11/11)
Orthographic:
• ray direction = −w
• ray origin = e + u u + v v
y
e v
u
e
w
14
Image Plane (1/4)
y
u=r
x
u=l v
u
e
w
15
Image Plane (2/4)
y
v=t
x
u
e
w
v=b
16
Image Plane (3/4)
y
u=r
v =t
x
u =l v
u
e
w
v =b
17
Image Plane (4/4)
Q: determine the area of the image plane in
terms of l, r, t and b.
y
u=r
v =t
x
u =l v
u
e
w
v =b
18
Raster Image ↔Image Plane (1/8)
y
u=r
v =t
x nx × ny
u =l
v
u
e
w
u =l
v =b
19
Raster Image ↔Image Plane (2/8)
?
?
y
u=r
v =t
x nx × ny
u =l
v
u
e
w
v =b
20
Raster Image ↔Image Plane (3/8)
(r − l) / nx
(t − b) / ny
y
?
u=r
v =t
x nx × ny
u =l
v
u
e
w
v =b
21
Raster Image ↔Image Plane (4/8)
u = l + (r − l) (0.5) / nx
v = b + (t − b) (0.5) / ny
y
u=r
v =t
x nx × ny
u =l
v
u
e
w
v =b
22
Raster Image ↔Image Plane (5/8)
u = l + (r − l) (0.5) / nx
v = b + (t − b) (0.5) / ny
?
y
u=r
v =t
x nx × ny
u =l
v
u
e
w
v =b
23
Raster Image ↔Image Plane (6/8)
u = l + (r − l) (0.5) / nx
v = b + (t − b) (0.5) / ny
u = l + (r − l) (1 + 0.5) / nx
v = b + (t − b) (0.5) / ny
y
u=r
v =t
x nx × ny
u =l
v
u
e
w
v =b
24
Raster Image ↔Image Plane (7/8)
u = l + (r − l) (i + 0.5) / nx
v = b + (t − b) (j + 0.5) / ny (u, v)
y
u=r
v =t
x
u =l v
(u, v) u
e
w
v =b
z
Raster Image ↔Image Plane (8/8)
(i, j)
u = l + (r − l) (i + 0.5) / nx
v = b + (t − b) (j + 0.5) / ny
y u=r
v =t
x nx × ny
u =l
v =b
z
Computing Viewing Rays (1/4)
Ray’s end
Ray’s origin
y
s
x
27
Computing Viewing Rays (2/4)
Ray’s direction
y
s
x
28
Computing Viewing Rays (3/4)
29
Computing Viewing Rays (4/4)
30
Ray - Sphere Intersection (1/8)
We have, p = e + t (s − e) = e + t d
→ f (p) = 0
t=1 y → f (e + td) = 0
s f
p x
t=? t=0
e
31
Ray - Sphere Intersection (2/8)
→ (x − xc)2 + (y − yc)2 + (z − zc)2 − R2=0
→ (p − c) . (p − c) − R2= 0
32
Ray - Sphere Intersection (3/8)
→ (x − xc)2 + (y − yc)2 + (z − zc)2 − R2=0
→ (p − c) . (p − c) − R2= 0
→ (e + td − c) · (e + td − c) − R2 = 0
→ (d · d) t2 + 2d · (e − c) t + (e − c) · (e − c) − R2 = 0
y → At2 + Bt + C = 0
s
p x
t=?
e
33
Ray - Sphere Intersection (4/8)
→ (x − xc)2 + (y − yc)2 + (z − zc)2 − R2=0
→ (p − c) . (p − c) − R2= 0
→ (e + td − c) · (e + td − c) − R2 = 0
→ (d · d) t2 + 2d · (e − c) t + (e − c) · (e − c) − R2 = 0
y → At2 + Bt + C = 0
s
p x
t=?
e
34
Ray - Sphere Intersection (5/8)
35
Ray - Sphere Intersection (5/8)
36
Ray - Sphere Intersection (6/8)
1
1 p = e + t (s −e)
y 0
=e+td
s
t2 x
p2 t1
s
p1
t P e
s
e
e
z
37
Ray - Sphere Intersection (7/8)
Orthographic:
• ray direction =−w
• ray origin = e + u u + v v
y
e v
u
e
w
38
Ray - Sphere Intersection (8/8)
Perspective:
• ray direction = −d w + u u + v v Q: why?
• ray origin = e
y
d u
e
w
39
Shading (1/3)
Normal vector at point p:
• Gradient, n = 2 (p − c).
• unit normal is (p − c)/R.
y [See section 2.5.4]
s n
p e
40
Shading (2/3)
Lambertian Shading: L = kd P max (0, n · l)
l
where,
• L = pixel color
• kd = surface color
s n • P = intensity of the
light source.
p e
L
41
Shading (3/3)
Q: Are we considering angle in this formula? If yes – how?
Lambertian Shading: L = kd P max (0, n · l)
l
where,
• L = pixel color
• kd = surface color
s n • P = intensity of the
light source.
p e
L
42
Additional Reading
• 4.6: A Ray-Tracing Program
43
Practice Problem (1/3)
y Camera frame (orthographic):
x
• e = [4, 4, 6]; u = [1, 0, 0]; v = [0, 1, 0]; w = [0, 0, 1]
– Plot the camera frame on the given axis.
o Viewing Ray:
z • ray1.origin = e + 2u + 2v; ray1.end = [6, 6, 0]
• ray2.origin = e ─ 1u + 1v; ray2.end = [4, 4, 0]
– Plot the origins for ray1 and ray2.
o Image Plane:
z • left: u = - 5; right: u = 5; top: v = 4; bottom: v = -4
46
Practice Problem (3/3)
Solution steps:
• Find u and v
u = l + ( r - l ) ( i + 0.5 ) / nx
v = b + ( t - b ) ( j + 0.5 ) / ny
• Determine the ray origin, e = E + uU + vV
• Find ray end point, s = e + w(-W)
• Determine, d = s – e
• Determine, D = B2- 4AC
A=d.d
B = 2d . (e - c)
C = (e - c) . (e - c) - R2
• Determine the intersection parameter, t
t1 = (-B + √D) / (2A)
t2 = (-B - √D) / (2A)
• Determine the intersection point,
P1 = e + t1(s – e)
P2 = e + t2(s – e)
47
Exercise
• Textbook exercise
– no: 1
48