1 / 61

Ray Casting

Ray Casting. Ray Casting. Class 1. Overview of Today. Ray Casting Basics Camera and Ray Generation Ray-Plane Intersection. 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. Shading.

avedis
Télécharger la présentation

Ray Casting

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ray Casting

  2. Ray Casting Class 1

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

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

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

  8. Ray Tracing

  9. Ray Casting For every pixel Construct a ray from the eye For every object in the scene Find intersectionwith the ray Keep if closest Shade depending on light and normal vector Finding the intersection and normal is the central part of ray casting N

  10. Ray Representation? • Two vectors: • Origin • Direction (normalized is better) • Parametric line • P(t) = origin + t * direction P(t) direction origin

  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. Box with a tiny hole Inverted image Similar triangles Perfect image if hole infinitely small Pure geometric optics No depth of field issue Pinhole Camera

  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

  17. MIT EECS 6.837, Durand 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

  20. MIT EECS 6.837, Durand 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. Recall: Ray Representation • Parametric line • P(t) = Ro + t * Rd • Explicit representation P(t) direction origin Rd Ro

  22. 3D Plane Representation? H(p) = d > 0 P normal Po H P' H(p) = d < 0 • 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!

  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 = 0 n·(Ro + t * Rd) + D = 0 t = -(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) < tcurrent P(t) > tmin 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!

  28. Ray Casting Class 2

  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*RdH(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-)

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

  35. MIT EECS 6.837, Durand 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 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… O r Ro 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 O r Ro Rd tP

  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 O r d Ro Rd tP

  39. MIT EECS 6.837, Durand 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 • 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’ O r d Ro Rd tP t t’

  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) O Ro Rd Q normal

  42. Questions?

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

  44. Ray-Triangle Intersection • Use general ray-polygon • Or try to be smarter • Use barycentric coordinates c P Rd Ro a b

  45. Barycentric Definition of a Plane [Möbius, 1827] • P(a, b, g) = aa + bb + gcwith a + b + g =1 • Is it explicit or implicit? c P is the barycenter:the single point upon which the plane would balance if weights of size a, b, & g are placed on points a, b, & c. P a b

  46. Barycentric Definition of a Triangle • P(a, b, g) = aa + bb + gcwith a + b + g =1 • AND 0 < a < 1 & 0 < b < 1 & 0 < g < 1 c P a b

  47. How Do We Compute a, b, g ? • Ratio of opposite sub-triangle area to total area • a = Aa/A b = Ab/A g = Ac/A • Use signed areas for points outside the triangle c Aa A P a b

  48. 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 a(All such triangles have same height/area) c Aa A Q P a b

  49. Simplify • Since a + b + g =1, we can write a =1- b - g P(a, b, g) = aa + bb + gc P(b, g) = (1-b-g)a + bb + gc = a + b(b-a) + g(c-a) rewrite c Non-orthogonal coordinate systemof the plane P a b

  50. Intersection with Barycentric Triangle • Set ray equation equal to barycentric equation P(t) = P(b, g) Ro + t * Rd = a + b(b-a) + g(c-a) • Intersection if b + g < 1 & b > 0 & g > 0 (and t > tmin … ) c P Rd Ro a b

More Related