Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Ray Casting. CLASS 1 Ray Casting 2 3 Overview of Today Ray Casting Basics Camera and Ray Generation Ray-Plane Intersection.

Similar presentations


Presentation on theme: "1 Ray Casting. CLASS 1 Ray Casting 2 3 Overview of Today Ray Casting Basics Camera and Ray Generation Ray-Plane Intersection."— Presentation transcript:

1 1 Ray Casting

2 CLASS 1 Ray Casting 2

3 3 Overview of Today Ray Casting Basics Camera and Ray Generation Ray-Plane Intersection

4 4 Ray Casting For every pixel Construct a ray from the eye For every object in the scene Find intersection with the ray Keep if closest

5 5 Shading For 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 6 A Note on Shading Surface/Scene Characteristics: –surface normal –direction to light –viewpoint Material Properties –Diffuse (matte) –Specular (shiny) –… Much more soon! Diffuse sphereSpecular spheres N L V

7 7 Ray Tracing Secondary rays (shadows, reflection, refraction) In a couple of weeks reflection refraction

8 8 Ray Tracing

9 9 Ray Casting For 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 10 Ray Representation? Two vectors: –Origin –Direction (normalized is better) Parametric line –P(t) = origin + t * direction origin direction P(t)

11 11 Overview of Today Ray Casting Basics Camera and Ray Generation Ray-Plane Intersection

12 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 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 14 Simplified Pinhole Camera Eye-image pyramid (frustum) Note that the distance/size of image are arbitrary

15 15 Camera Description? Eye point e (center) Orthobasis u, v, w (horizontal, up, -direction) Field of view angle Image rectangle height, width

16 16 Perspective vs. Orthographic Parallel projection No foreshortening No vanishing point perspectiveorthographic

17 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 18 Other Weird Cameras E.g. fish eye, omnimax, panorama

19 19 Overview of Today Ray Casting Basics Camera and Ray Generation Ray-Plane Intersection

20 MIT EECS 6.837, Durand 20 Ray Casting For 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 21 Recall: Ray Representation Parametric line P(t) = R o + t * R d Explicit representation RdRd RoRo origin direction P(t)

22 22 3D Plane Representation? Plane defined by –P o = (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! H PoPo normal P P' H(p) = d < 0 H(p) = d > 0

23 23 Explicit vs. Implicit? Ray equation is explicit P(t) = R o + t * R d –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 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) = R o + t * R d H(P) = n·P + D = 0 n·(R o + t * R d ) + D = 0 t = -(D + n·R o ) / n·R d P(t)

25 25 Additional Housekeeping Verify that intersection is closer than previous Verify that it is not out of range (behind eye) P(t) > t min P(t) < t current P(t)

26 26 Normal For shading –diffuse: dot product between light and normal Normal is constant normal

27 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!

28 CLASS 2 Ray Casting 28

29 29 Overview of Today Ray-Sphere Intersection Ray-Triangle Intersection Implementing CSG

30 30 Sphere Representation? Implicit sphere equation –Assume centered at origin (easy to translate) –H(P) = P·P - r 2 = 0 RdRd RoRo

31 31 Ray-Sphere Intersection Insert explicit equation of ray into implicit equation of sphere & solve for t P(t) = R o + t*R d H(P) = P·P - r 2 = 0 (R o + tR d ) · (R o + tR d ) - r 2 = 0 R d ·R d t 2 + 2R d ·R o t + R o ·R o - r 2 = 0 RdRd RoRo

32 32 Ray-Sphere Intersection Quadratic: at 2 + bt + c = 0 –a = 1 (remember, ||R d || = 1) –b = 2R d ·R o –c = R o ·R o – r 2 with discriminant and solutions

33 33 Ray-Sphere Intersection 3 cases, depending on the sign of b 2 – 4ac What do these cases correspond to? Which root (t+ or t-) should you choose? –Closest positive! (usually t-)

34 MIT EECS 6.837, Durand 34 Ray-Sphere Intersection It's so easy that all ray-tracing images have spheres!

35 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?

36 MIT EECS 6.837, Durand 36 Geometric Ray-Sphere Intersection Is ray origin inside/outside/on sphere? –(R o ·R o r 2 / R o ·R o = r 2 ) –If origin on sphere, be careful about degeneracies… RoRo r O RdRd

37 37 Geometric Ray-Sphere Intersection Is ray origin inside/outside/on sphere? Find closest point to sphere center, t P = - R o · R d –If origin outside & t P < 0 → no hit RoRo O RdRd tPtP r

38 38 Geometric Ray-Sphere Intersection Is ray origin inside/outside/on sphere? Find closest point to sphere center, t P = - R o · R d. Find squared distance, d 2 = R o ·R o - t P 2 –If d 2 > r 2 → no hit RoRo O RdRd d tPtP r

39 MIT EECS 6.837, Durand 39 Geometric Ray-Sphere Intersection RoRo O RdRd d t t’t’ Is ray origin inside/outside/on sphere? Find closest point to sphere center, t P = - R o · R d. Find squared distance: d 2 = R o ·R o - t P 2 Find distance (t ’ ) from closest point (t P ) to correct intersection: t ’ 2 = r 2 - d 2 –If origin outside sphere → t = t P - t ’ –If origin inside sphere → t = t P + t ’ tPtP r

40 40 Geometric vs. Algebraic Algebraic is simple & generic Geometric is more efficient –Timely tests –In particular for rays outside and pointing away

41 41 Sphere Normal Simply Q/||Q|| –Q = P(t), intersection point –(for spheres centered at origin) Q normal RoRo O RdRd

42 42 Questions?

43 43 Overview of Today Ray-Sphere Intersection Ray-Triangle Intersection Implementing CSG

44 Ray-Triangle Intersection First, intersect ray with plane Then, check if point is inside triangle P P0P0 V

45 Ray-Triangle Intersection Check if point is inside triangle parametrically P P0P0 Compute  P =  (T 2 -T 1 ) +  (T 3 -T 1 ) Check if point inside triangle. 0   1 and 0   1  V   T1T1 T2T2 T3T3

46 46 Ray-Triangle Intersection Use general ray-polygon Or try to be smarter –Use barycentric coordinates RoRo RdRd c a b P

47 47 Barycentric Definition of a Plane P(  ) =  a +  b +  c with  =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 48 Barycentric Definition of a Triangle P(  ) =  a +  b +  c with  =1 AND 0 <  < 1 & 0 <  < 1 & 0 <  < 1 c a b P

49 49 How Do We Compute  Ratio of opposite sub-triangle area to total area –  = A a /A  = A b /A  = A c /A Use signed areas for points outside the triangle  c a b P AaAa A

50 50 Intuition Behind Area Formula P is barycenter of a and Q A a 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 AaAa A

51 51 Simplify Since  =1, we can write  P(  ) =  a +  b +  c P(  ) =  a +  b +  c = a +  b-a) +  c-a) c a b P Non-orthogonal coordinate system of the plane rewrite

52 52 Intersection with Barycentric Triangle Set ray equation equal to barycentric equation P(t) = P(  ) R o + t * R d = a +  b-a) +  c-a) Intersection if  0 (and t > t min … ) RoRo RdRd c a b P

53 53 Intersection with Barycentric Triangle R o + t * R d = a +  b-a) +  c-a) R ox + tR dx = a x +  b x -a x ) +  c x -a x ) R oy + tR dy = a y +  b y -a y ) +  c y -a y ) R oz + tR dz = a z +  b z -a z ) +  c z -a z ) Regroup & write in matrix form: 3 equations, 3 unknowns      ozz oyy oxx dzzzzz dyyyyy dxxxxx Ra Ra Ra Rcaba Rcaba Rcaba                                t  

54 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 55 Advantages of Barycentric Intersection Efficient Stores no plane equation Get the barycentric coordinates for free –Useful for interpolation, texture mapping RoRo RdRd c a b P

56 56 Overview of Today Ray-Sphere Intersection Ray-Triangle Intersection Implementing CSG

57 MIT EECS 6.837, Durand 57 For example:

58 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

59 MIT EECS 6.837, Durand 59 Collect all the intersections Union Intersection Subtraction

60 MIT EECS 6.837, Durand 60 Implementing CSG 1.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/subtraction of the intervals

61 61 Precision What happens when –Origin is on an object? –Grazing rays? Problem with floating-point approximation

62 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 63 The evil  a hint of nightmare Edges in triangle meshes –Must report intersection (otherwise not watertight) –No false negative


Download ppt "1 Ray Casting. CLASS 1 Ray Casting 2 3 Overview of Today Ray Casting Basics Camera and Ray Generation Ray-Plane Intersection."

Similar presentations


Ads by Google