Download - Ray tracing
![Page 1: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/1.jpg)
1
Ray Tracing
![Page 2: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/2.jpg)
2
What is ray tracing
• Ray tracing is a technique for rendering three-dimensional graphics with very com-plex light interactions. This means you can create pictures full of mirrors, transparent surfaces, and shadows, with stunning results.
• A very simple method to both understand and implement.
• It is based on the idea that you can model re-flection and refraction by recursively follow-ing the path that light takes as it bounces through an environment
![Page 3: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/3.jpg)
3
PCKTWTCH by Kevin Odhner, POV-Ray
Raytraced Images
![Page 4: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/4.jpg)
4
Kettle, Mike Miller, POV-Ray
![Page 5: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/5.jpg)
5
![Page 6: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/6.jpg)
6
Ray Tracing Model
Source: wikipedia
![Page 7: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/7.jpg)
7
Ray tracing
Shadow rays
Reflection ray
refracted ray
![Page 8: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/8.jpg)
8
Ray tracing algorithm
• Builds the image pixel by pixel• Cast additional rays from the hit point to de-
termine the pixel color– Shoot rays toward each light. If they hit some-
thing, the object is shadowed from that light, otherwise use “standard model” for the light
– Reflection rays for mirror surfaces, to see what should be reflected in the mirror
– Refraction rays to see what can be seen through transparent objects
– Sum all the contributions to get the pixel color
![Page 9: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/9.jpg)
9
Recursive ray tracing
• When a reflected or refraction ray hits a sur-face, repeat the whole process from that point– Send more out shadow rays– Send out new reflected rays (if required)– Send out a new refracted ray (if required)– Generally, reduce the weight of each additional ray
when computing the contributions to the surface color
– Stop when the contribution from a ray is too small to notice or maximum recursion level has been reached
![Page 10: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/10.jpg)
10
Ray tracing implementation
• Ray tracing breakdown into two tasks– Constructing the ray to cast– Intersection rays with geometry
• The former problem is simple vector arithmetic
• Intersection calculation can be done in world coordinates or model coor-dinates
![Page 11: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/11.jpg)
11
Constructing Rays• Define rays by an initial point and a direction:
x(t)=x0+td• Eye rays: Rays from the eye through a pixel
– Construct using the eye location and the pixel’s location on the image plane. X0 = eye
• Shadow rays: Rays from a point on a surface to the light.– X0 = point on surface
• Reflection rays: Rays from a point on a surface in the re-flection direction– Construct using laws of reflection. X0 = surface point
• Transmitted rays: Rays from a point on a transparent sur-face through the surface– Construct using laws of refraction. X0 = surface point
![Page 12: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/12.jpg)
12
Ray-Object Intersections
• Aim: Find the parameter value, ti , at which the ray first meets object i
• Write the surface of the object implicitly: f(x)=0– Unit sphere at the origin is x•x-1=0– Plane with normal n passing through origin is: n•x=0
• Put the ray equation in for x– Result is an equation of the form f(t)=0 where we
want t– Now it’s just root finding
![Page 13: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/13.jpg)
13
Ray-Sphere Intersection
• Quadratic in t– 2 solutions: Ray passes through sphere - take mini-
mum value that is > 0– 1 solution: Ray is tangent - use it if >0– 0 solutions: Ray does not hit sphere
• Numerical stability is very important. For example, can a reflection ray hit the same sphere?
012:
01 :Substitute
01 :Sphere
)( :Ray
0002
00
0
xxdxdd
dxdx
xx
dxx
tt
tt
tt
![Page 14: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/14.jpg)
14
Sphere Intersection
A sphere is defined by its center, s, and its radius r. The intersec-tion of a ray with a sphere can be computed as follows:
![Page 15: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/15.jpg)
15
Ray-Plane Intersections
• This is plane going through the origin– What about an arbitrary plane?
• To do polygons, intersect with plane then do point-in-polygon test…
dn
xn
xndn
dxn
xn
dxx
0
0
0
0
:
0:
0 :Substitute
0 :Plane
)( :Ray
t
t
t
tt
![Page 16: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/16.jpg)
16
Intersections
• It is necessary to determine the in-tersection between a ray with objects to decide which pixel is
• Intersection with a sphere• Intersection with a plane• …
![Page 17: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/17.jpg)
Ray Tracing IlluminationRecursive
dtransmittereflecteddirect IIIVEI ),(
),( dtransmittetdtransmitte VPIkI
shinyn
sdlightambientadirect RVkLNkIIkI ˆˆˆˆ
I
V
E
PreflectedI
reflectedV
dtransmitteI dtransmitteV
N
L R
directIVEI ),( reflecteddirect IIVEI ),(
),( reflectedrreflected VPIkI
Check for shadowing (intersection with object along ray (P,L))
![Page 18: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/18.jpg)
The Ray Tree
R2
R1
R3
L2
L1 L3 N1
N2
N3
T1
T3
Ni surface normal
Ri reflected ray
Li shadow ray
Ti transmitted (refracted) ray
View-point
L1
T3 R3
L3 L2
T1 R1
R2
Eye
![Page 19: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/19.jpg)
19
Reflection Rays
• The laws of reflection
![Page 20: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/20.jpg)
20
Reflection
• Reflection angle = view angle
![Page 21: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/21.jpg)
21
Reflection
• The maximum depth of the tree affects the handling of re-fraction
• If we send another reflected ray from here, when do we stop? 2 solutions (complementary)– Answer 1: Stop at a fixed depth. – Answer 2: Accumulate product of reflection coefficients and
stop when this product is too small.
![Page 22: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/22.jpg)
22
Reflection
![Page 23: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/23.jpg)
23
Refraction
Snell’s Lawsin
sint i
ri t
NMT ttˆcosˆsinˆ
i
i INM
sin
)ˆcosˆ(ˆ
NINT tii
t ˆcos)ˆcosˆ(sin
sinˆ
INT rtirˆˆ)coscos(ˆ
))ˆˆ(1(1sin1sin1cos
ˆˆcos
22222 IN
IN
rirtt
i
INININT rrrˆˆ))ˆˆ(1(1)ˆˆ(ˆ 22
N
N
M
T
Ii
t
IN iˆcosˆ
iN cosˆ
Note that I is the nega-tive of the incoming ray
![Page 24: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/24.jpg)
24
Refraction
![Page 25: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/25.jpg)
25
Shadow Rays
• Shadows are important lighting effect that can be easily with ray tracing
• If we wish to compute the illinumination with shadows for a point, we shoot an additional ray from the point to every light source
• A light is only allowed to contribute to the final color if the ray doesn’t hit any-thing between the point and a light source
![Page 26: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/26.jpg)
26
Pseudo Code for Ray Tracingrgb lsou; // intensity of light source rgb back; // background intensity rgb ambi; // ambient light intensity
Vector L // vector pointing to light sourceVector N // surface normalObject objects [n] //list of n objects in scene float Ks [n] // specular reflectivity factor for each objectfloat Kr [n] // refractivity index for each object float Kd [n] // diffuse reflectivity factor for each object Ray r;
void raytrace() {for (each pixel P of projection viewport in raster order) { r = ray emanating from viewer through P
int depth = 1; // depth of ray tree consisting of multiple paths the pixel color at P = intensity(r, depth)}
}
![Page 27: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/27.jpg)
27
rgb intensity (Ray r, int depth) {Ray flec, frac;rgb spec, refr, dull, intensity;
if (depth >= 5) intensity = back; else {
find the closest intersection of r with all objects in scene
if (no intersection) { intensity =back;} else { Take closest intersection which is object[j] compute normal N at the intersection point if (Ks[j] >0) { // non-zero specular reflectivity compute reflection ray flec; refl = Ks[j]*intensity(flec, depth+1); } else refl =0; if (Kr[j]>0) { // non-zero refractivity compute refraction ray frac; refr = Kr[j]*intensity(frac, depth+1); } else refr =0; check for shadow; if (shadow) direct = Kd[j]*ambi else direct = Phong illumination computation; intensity = direct + refl +refr;
} } return intensity; }
![Page 28: Ray tracing](https://reader033.vdocuments.mx/reader033/viewer/2022051323/54b4d8b14a79592f4e8b4642/html5/thumbnails/28.jpg)
28
Thank for attention!