1 Ray Casting. CLASS 1 Ray Casting 2 3 Overview of Today Ray Casting Basics Camera and Ray...

Post on 20-Jan-2016

215 views 0 download

Tags:

Transcript of 1 Ray Casting. CLASS 1 Ray Casting 2 3 Overview of Today Ray Casting Basics Camera and Ray...

1

Ray Casting

CLASS 1Ray Casting

2

3

Overview of Today

• Ray Casting Basics

• Camera and Ray Generation

• Ray-Plane Intersection

4

Ray CastingFor every pixel

Construct a ray from the eye

For every object in the scene

Find intersection with the ray

Keep if closest

5

ShadingFor every pixel

Construct a ray from the eye

For every object in the scene

Find intersection with the ray

Keep if closest

Shade depending on light and normal vector

6

A Note on Shading• Surface/Scene Characteristics:

– surface normal

– direction to light

– viewpoint

• Material Properties– Diffuse (matte)

– Specular (shiny)

– …

• Much more soon!

Diffuse sphere Specular spheres

NL

V

7

Ray Tracing

• Secondary rays (shadows, reflection, refraction)

• In a couple of weeks

reflection

refraction

8

Ray Tracing

9

Ray CastingFor every pixel

Construct a ray from the eye For every object in the scene

Find intersection with the ray

Keep if closest

Shade depending on light and normal vector

N Finding the intersection and normal is the central part of ray casting

10

Ray Representation?

• Two vectors:– Origin– Direction (normalized is better)

• Parametric line– P(t) = origin + t * direction

origindirection

P(t)

11

Overview of Today

• Ray Casting Basics

• Camera and Ray Generation

• Ray-Plane Intersection

12

Cameras

For every pixel

Construct a ray from the eye

For every object in the scene

Find intersection with ray

Keep if closest

13

Pinhole Camera• Box with a tiny hole• Inverted image• Similar triangles

• Perfect image if hole infinitely small

• Pure geometric optics• No depth of field issue

14

Simplified Pinhole Camera

• Eye-image pyramid (frustum)

• Note that the distance/size of image are arbitrary

15

Camera Description?

• Eye point e (center)

• Orthobasis u, v, w (horizontal, up, -direction)

• Field of view angle

• Image rectangle height, width

16

Perspective vs. Orthographic

• Parallel projection

• No foreshortening

• No vanishing point

perspective orthographic

MIT EECS 6.837, Durand

17

Orthographic Camera

• Ray Generation?– Origin = center + (x-0.5)*size*horizontal + (y-0.5)*size*up

– Direction is constant

18

Other Weird Cameras

• E.g. fish eye, omnimax, panorama

19

Overview of Today

• Ray Casting Basics

• Camera and Ray Generation

• Ray-Plane Intersection

MIT EECS 6.837, Durand

20

Ray CastingFor every pixel

Construct a ray from the eye For every object in the scene

Find intersection with the ray

Keep if closest

First we will study ray-plane intersection

21

Recall: Ray Representation

• Parametric line

• P(t) = Ro + t * Rd

• Explicit representation

RdRo

origindirection

P(t)

22

3D Plane Representation?

• Plane defined by – Po = (x,y,z)

– n = (A,B,C)

• Implicit plane equation– H(P) = Ax+By+Cz+D = 0

= n·P + D = 0

• Point-Plane distance?– If n is normalized,

distance to plane, d = H(P)– d is the signed distance!

HPo

normalP

P'H(p) = d < 0

H(p) = d > 0

23

Explicit vs. Implicit?

• Ray equation is explicit P(t) = Ro + t * Rd

– Parametric– Generates points– Hard to verify that a point is on the ray

• Plane equation is implicit H(P) = n·P + D = 0– Solution of an equation– Does not generate points– Verifies that a point is on the plane

• Exercise: Explicit plane and implicit ray

24

Ray-Plane Intersection

• Intersection means both are satisfied

• So, insert explicit equation of ray into implicit equation of plane & solve for t

P(t) = Ro + t * Rd

H(P) = n·P + D = 0n·(Ro + t * Rd) + D = 0t = -(D + n·Ro) / n·Rd P(t)

25

Additional Housekeeping

• Verify that intersection is closer than previous

• Verify that it is not out of range (behind eye)P(t) > tmin

P(t) < tcurrent

P(t)

26

Normal

• For shading– diffuse: dot product between light and normal

• Normal is constant

normal

27

A moment of mathematical beauty• Duality : points and planes are dual when you

use homogeneous coordinates• Point (x, y, z, 1)• Plane (A, B, C, D)• Plane equation dot product• You can map planes to points and points to

planes in a dual space. • Lots of cool equivalences

– e.g. intersection of 3 planes define a point 3 points define a plane!

CLASS 2Ray Casting

28

29

Overview of Today

• Ray-Sphere Intersection

• Ray-Triangle Intersection

• Implementing CSG

30

Sphere Representation?

• Implicit sphere equation – Assume centered at origin (easy to translate)– H(P) = P·P - r2 = 0

Rd Ro

31

Ray-Sphere Intersection

• Insert explicit equation of ray into implicit equation of sphere & solve for t

P(t) = Ro + t*Rd H(P) = P·P - r2 = 0

(Ro + tRd) · (Ro + tRd) - r2 = 0

Rd·Rdt2 + 2Rd·Rot + Ro·Ro - r2 = 0

Rd Ro

32

Ray-Sphere Intersection

• Quadratic: at2 + bt + c = 0– a = 1 (remember, ||Rd|| = 1)

– b = 2Rd·Ro

– c = Ro·Ro – r2

• with discriminant

• and solutions

33

Ray-Sphere Intersection

• 3 cases, depending on the sign of b2 – 4ac

• What do these cases correspond to?

• Which root (t+ or t-) should you choose?– Closest positive! (usually t-)

MIT EECS 6.837, Durand

34

Ray-Sphere Intersection

• It's so easy that all ray-tracing images have spheres!

MIT EECS 6.837, Durand

35

Geometric Ray-Sphere Intersection

• Shortcut / easy reject

• What geometric information is important?– Ray origin inside/outside sphere?– Closest point to ray from sphere origin?– Ray direction: pointing away from sphere?

MIT EECS 6.837, Durand

36

Geometric Ray-Sphere Intersection• Is ray origin inside/outside/on sphere?

– (Ro·Ro < r2 / Ro·Ro

> r2 / Ro·Ro = r2)

– If origin on sphere, be careful about degeneracies…

Ro

r

O

Rd

37

Geometric Ray-Sphere Intersection• Is ray origin inside/outside/on sphere?• Find closest point to sphere center, tP = - Ro · Rd

– If origin outside & tP < 0 → no hit

Ro

O

Rd

tP

r

38

Geometric Ray-Sphere Intersection• Is ray origin inside/outside/on sphere?• Find closest point to sphere center, tP = - Ro · Rd.

• Find squared distance, d2 = Ro·Ro - tP2

– If d2 > r2 → no hit

Ro

O

Rd

d

tP

r

MIT EECS 6.837, Durand

39

Geometric Ray-Sphere Intersection

Ro

O

Rd

d

tt’

• Is ray origin inside/outside/on sphere?• Find closest point to sphere center, tP = - Ro · Rd.

• Find squared distance: d2 = Ro·Ro - tP2

• Find distance (t’) from closest point (tP) to correct intersection: t’2 = r2 - d2

– If origin outside sphere → t = tP - t’– If origin inside sphere → t = tP + t’

tP

r

40

Geometric vs. Algebraic

• Algebraic is simple & generic

• Geometric is more efficient– Timely tests– In particular for rays outside and pointing away

41

Sphere Normal

• Simply Q/||Q|| – Q = P(t), intersection point– (for spheres centered at origin)

Qnormal

Ro

O

Rd

42

Questions?

43

Overview of Today

• Ray-Sphere Intersection

• Ray-Triangle Intersection

• Implementing CSG

46

Ray-Triangle Intersection

• Use general ray-polygon

• Or try to be smarter– Use barycentric coordinates

RoRd

c

a b

P

47

Barycentric Definition of a Plane

• P() = a + b + cwith =1

• Is it explicit or implicit?

[Möbius, 1827]

c

a b

P

P is the barycenter:the single point upon which the plane would balance if weights of size are placed on points a, b, & c.

48

Barycentric Definition of a Triangle

• P() = a + b + cwith =1

• AND 0 < < 1 & 0 < < 1 & 0 < < 1

c

a b

P

49

How Do We Compute • Ratio of opposite sub-triangle area to total area

– = Aa/A = Ab/A = Ac/A

• Use signed areas for points outside the triangle

c

a b

P

AaA

50

Intuition Behind Area Formula

• P is barycenter of a and Q

• Aa is the interpolation coefficient on aQ

• All points on lines parallel to bc have the same All such triangles have same height/area)

Q

c

a b

P

AaA

51

Simplify

• Since =1, we can write

P() = a + b + c

P() = a + b + c

= a + b-a) + c-a)c

a b

PNon-orthogonal

coordinate systemof the plane

rewrite

52

Intersection with Barycentric Triangle

• Set ray equation equal to barycentric equation

P(t) = P()

Ro + t * Rd = a + b-a) + c-a)

• Intersection if 0

(and t > tmin … )

RoRd

c

a b

P

53

Intersection with Barycentric Triangle

• Ro + t * Rd = a + b-a) + c-a)

Rox + tRdx = ax + bx-ax) + cx-ax)

Roy + tRdy = ay + by-ay) + cy-ay)

Roz + tRdz = az + bz-az) + cz-az)

• Regroup & write in matrix form:

3 equations, 3 unknowns

ozz

oyy

oxx

dzzzzz

dyyyyy

dxxxxx

Ra

Ra

Ra

Rcaba

Rcaba

Rcaba

t

54

Cramer’s Rule

A

RRaba

RRaba

RRaba

dzozzzz

dyoyyyy

dxoxxxx

A

Racaba

Racaba

Racaba

t ozzzzzz

oyyyyyy

oxxxxxx

A

RcaRa

RcaRa

RcaRa

dzzzozz

dyyyoyy

dxxxoxx

| | denotes the determinant

Can be copied mechanically

into code

• Used to solve for one variable at a time in system of equations

55

Advantages of Barycentric Intersection

• Efficient

• Stores no plane equation

• Get the barycentric coordinates for free– Useful for interpolation, texture mapping

RoRd

c

a b

P

56

Overview of Today

• Ray-Sphere Intersection

• Ray-Triangle Intersection

• Implementing CSG

MIT EECS 6.837, Durand

57

For example:

MIT EECS 6.837, Durand

58

How can we implement CSG?

Union Intersection Subtraction

Points on A, Outside of B

Points on B, Outside of A

Points on B, Inside of A

Points on A, Inside of B

MIT EECS 6.837, Durand

59

Collect all the intersections

Union Intersection Subtraction

MIT EECS 6.837, Durand

60

Implementing CSG1. Test "inside" intersections:

• Find intersections with A, test if they are inside/outside B

• Find intersections with B,test if they are inside/outside A

2. Overlapping intervals:• Find the intervals of "inside"

along the ray for A and B

• Compute union/intersection/subtractionof the intervals

61

Precision

• What happens when – Origin is on an object?– Grazing rays?

• Problem with floating-point approximation

62

The evil • In ray tracing, do NOT report intersection for

rays starting at the surface (no false positive)– Because secondary rays– Requires epsilons

reflection

refraction

shadow

63

The evil a hint of nightmare

• Edges in triangle meshes– Must report intersection (otherwise not watertight)– No false negative