1 / 34

Ray Tracing Implicit Surfaces

Ray Tracing Implicit Surfaces. Overview. Similar to CSG Combine primitive objects to form complex object Primitives are “ density fields ” Combine by summing densities The surface is all points at which the density equals a user-defined threshold. Implicit Surface.

kbyington
Télécharger la présentation

Ray Tracing Implicit Surfaces

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 Tracing Implicit Surfaces CSE 681

  2. Overview • Similar to CSG • Combine primitive objects to form complex object • Primitives are “density fields” • Combine by summingdensities • The surface is all points at which the density equals a user-defined threshold CSE 681

  3. Implicit Surface • A surface not explicitly represented • The surface consists of all points which satisfy a function F(x,y,z) = 0 • Usually, the implicit function is defined so that F(x,y,z) < 0 => inside the object F(x,y,z) > 0 => outside the surface Sometimes F(x,y,z) is based on a distance-to-a-central-element • The surface points have to be searched for! CSE 681

  4. For example: single metaball F(x,y,z) = x2+y2+z2-r2 f(x,y,z) < 0 f(x,y,z) = 0 f(x,y,z) > 0 CSE 681

  5. Multiple Implicits • Define each primitive as positive density field • Sum densities • Surface is defined at threshold • Usually have finite radius of influence CSE 681

  6. Organic shapes CSE 681

  7. 1.0 density 0.0 Distance from center R Density Function R CSE 681

  8. Threshold • Define threshold that defines density of surface • RT is the radius of the isosurface (blob) in isolation 1.0 R T f density RT 0.0 RT R Distance from center CSE 681

  9. Blended Blobs • Define surface as sum of densities CSE 681

  10. Weighted Density Functions • Define surface as weighted sum of densities F(p) = S wi fi (p) - T = 0 To keep the same radius, but increase blending, change weight, wi, and the threshold, T, simultaneously. Weights can be negative, too! CSE 681

  11. Display Considerations Find point of intersection Compute normal CSE 681

  12. Ray Intersection Need to search along the ray for the first time F(p) = 0 Search strategies? CSE 681

  13. Search for Intersection CSE 681

  14. Search for Intersection Identify spans of interest: bounds on intersection CSE 681

  15. Density Functions • Define a density function that is: • Easy to evaluate • Blends smoothly • Intuitive to use • Density functions proposed in the literature • Exponential • Piecewise cubic • Cubic in distance squared CSE 681

  16. Density Functions D(r) 0.5 r 0.5 CSE 681

  17. Distance-based Density Functions fi(p) = D(|P-Ci|/R) = D(r) r is normalized distance D1 ( r ) = (1-r2)3 0 <= r < 1 D2 ( r ) = 1 - (4/9)r6 + (17/9)r4 - (22/9)r2 0 <= r < 1 D3 ( r ) = exp(-ar2) D4 ( r ) = 1-3r2 0 <= r < 1/3 (3/2)(1-r) 2 1/3 <= r < 1 CSE 681

  18. Distance-based Density Functions D2 ( r ) = 1 - (4/9)r6 + (17/9)r4 - (22/9)r2 0 <= r < 1 CSE 681

  19. Distance-based Density Functions D3 ( r ) = exp(-ar2) CSE 681

  20. Distance-based Density Functions D4 ( r ) = 1-3r2 0 <= r < 1/3 (3/2)(1-r) 2 1/3 <= r < 1 CSE 681

  21. Distance-based Density Functions D1 ( r ) = (1-r2)3 0 <= r < 1 CSE 681

  22. Distance-based Primitives Point Polyline Line Polyhedron Polygon Anything you can efficiently compute the distance from Polygonal mesh CSE 681

  23. Distance-based Primitives Point Distance from point Distance from line or endpoints - partition by perpendiculars Line Distance from one of lines or points - partition by perpendiculars Polyline CSE 681

  24. Distance-based Primitives Partition space by planes perpendicular to plane through an edge Polygon Same, for each face - two planes per edge Polygonal mesh CSE 681

  25. Distance-based Primitives Polyhedra Convex? Concave? CSE 681

  26. Computing the Normal Form analytic expression of implicit function And take partial derivatives N = (dF/dx, dF/dy, dF/dz) Take discrete approximation by sampling function Compute gradient N = ( F(x+dx,y,z)-F(x,y,z), F(x,y +dy,z)-F(x,y,z), F(x,y,z +dz)-F(x,y,z) ) CSE 681

  27. Two side-by-side primitives One long primitive Bulge problem CSE 681

  28. CSG-approach to control blending Use nodes to combine primitives by either summing or taking max of functions CSE 681

  29. Complexity • Bounding volumes • Spatial subdivision - cellular bucket sort • Hierarchical spatial subdivision – quadtree • Binary spatial partitioning CSE 681

  30. Display alternative Marching cubes algorithm - construct surface fragments from isosurface intersections with grid cells CSE 681

  31. Distance-based Primitives CSE 681

  32. Examples CSE 681

  33. Examples CSE 681

  34. Examples CSE 681

More Related