Transcript
Page 1: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

1

Ray-tracing

Page 2: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

2

Overview

Recursive Ray Tracing Shadow Feelers Snell’s Law for Refraction When to stop!

Page 3: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

3

Recap: Light Transport

Page 4: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

4

Recap: Local Illumination

Ambient, diffuse & specular components The sum is over the specular and diffuse

components for each light

M

j

m

jsjdjiar nhklnkIkI1 ,Ia

Page 5: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

5

Recap: Result of Ray Casting

Page 6: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

6

Correcting for Non-Visible Lights

EN H

L

surface

Page 7: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

7

Where Sj is the result of intersecting the ray L with the scene objects

Note consider your intersection points along the ray L carefully• Hint – they might be beyond the light!

M

j

mjsjdjijaar nhklnkISIkI

1 ,

Page 8: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

8

Result of Shadow Feeler

Page 9: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

9

Recursive Ray-Tracing

We can simulate specular-specular transmission elegantly by recursing and casting secondary rays from the intersection points

We must obviously chose a termination depth to cope with multiple reflections

Page 10: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

10

Introducing Reflection

Where

EN H

L

surface

R

NENER 2

Page 11: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

11

Computing the reflection direction

Ideal reflection = • R same plane as V and N

R = aE + bN

• E.N = N.R = a(N.E)+b• If a = -1, b = 2N.E

R = -E + 2(N.E)N

N

R

E

Page 12: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

12

Computing Reflectance

'rrlocalr IkII Where Ilocal is computed as before Ray r' is formed from intersection point

and the direction R and is cast into the scene as before

Page 13: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

13

Recursive Ray Tracing

L1

L2

p

p’

p’’

R1R2

Page 14: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

14

Pseudo Code

Color RayTrace(Point p, Vector direction, int depth) {

Point pd /* Intersection point */

Boolean intersection

if (depth > MAX) return Black

intersect(p,direction, &pd, &intersection)

if (!intersection) return Background

Ilocal = kaIa + Ip.v.(kd(n.l) + ks.(h.n)m)

return Ilocal + kr*RayTrace(pd, R, depth+1)

}

Normally kr = ks

Page 15: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

15

Result of Recursion

Page 16: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

16

Perfect Specular Transmission

N H

L

E

T

R

Snell’s Law

1

2

sin

sin

is index ofrefraction

1

Page 17: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

17

Using Snell’s Law

Using this law it is possible to show that:

Note that if the root is negative then total internal reflection has occurred and you just reflect the vector as normal

211

2

sin

sin

1cos1cos 22121212 NET

Page 18: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

18

Recursive Ray Tracing Including Transparent Objects

L1

L2

p

p’

p’’

R1R2

T2

T1

Page 19: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

19

New Pseudo Code

Color RayTrace(Point p, Vector D, int depth) { Point pd /* Intersection point */ Boolean intersection if (depth > MAX) return Black intersect(p,direction, &pd, &intersection) if (!intersection) return Background

Ilocal = kaIa + Ip.v.(kd(n.l) + ks.(h.n)m)

return Ilocal + kr*RayTrace(pd, R, depth+1) + kt*RayTrace(pd, T, depth+1)

}

Page 20: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

20

Direct Specular Transmission

A transparent surface can be illuminated from behind and this should be calculated in Ilocal

NH'

L

E

Page 21: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

21

Calculating H'

Use H‘ instead of H in specular term

1'

1

2

1

2

LE

H

Page 22: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

22

Putting Everything Together

Page 23: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

23

Discussion – What Can’t We Simulate?

Page 24: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

24

Remark

Specular and transmission only• What should be added to consider diffuse reflection?

Why it’s expensive• Intersection of rays with polygons (90%)

How to reduce the cost?• Reduce the number of rays• Reduce the cost on each ray

– First check with bounding box of the object– Methods to sort the scene and make it faster

Page 25: 1 Ray-tracing. 2 Overview n Recursive Ray Tracing n Shadow Feelers n Snell’s Law for Refraction n When to stop!

25

Summary

Recursive ray tracing is a good simulation of specular reflections

We’ve seen how the ray-casting can be extended to include shadows, reflections and transparent surfaces

However this is a very slow process and still misses some types of effect!