Ray Tracing Implicit Surfaces Overview Implicit Surface For

Ray Tracing Implicit Surfaces Overview Implicit Surface For

Overview • Similar to CSG Ray Tracing Implicit Surfaces – 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 CSE 681 CSE 681 Implicit Surface For example: single metaball f(x,y,z) = x2+y2+z2-r2 • A surface not explicitly represented f(x,y,z) < 0 • The surface consists of all points which satisfy a function F(x,y,z) = 0 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! f(x,y,z) > 0 CSE 681 CSE 681 1 Multiple Implicits Organic shapes • Define each primitive as positive density field • Sum densities • Surface is defined at threshold • Usually have finite radius of influence CSE 681 CSE 681 Density Function Threshold • Define threshold that defines density of surface •RT is the radius of the isosurface (blob) in isolation 1.0 1.0 R R d T density density RT 0.0 0.0 RT Distance from center R Distance from center R {}p d( p) −T = 0 CSE 681 CSE 681 2 Blended Blobs Weighted Density Functions • Define surface as weighted sum of densities • Define surface as sum of densities f(p) = Σ wi di (p) - T = 0 To keep the same radius, but increase blending, change weight, w , and the {p d ( p) −T = 0} i ∑ i threshold, T, simultaneously. {p ∑ widi ( p) −T = 0} Weights can be negative, too! CSE 681 CSE 681 Ray Intersection Search for Intersection Need to search along the ray for the first time f(P(t)) = 0 Shortcuts and Search strategies? CSE 681 CSE 681 3 Search for Intersection Density Functions Identify spans of interest: bounds on intersection Define a density function that is: Easy to evaluate Blends smoothly Intuuveouseitive to use Density functions proposed in the literature Exponential Piecewise cubic Cubic in distance squared CSE 681 CSE 681 Density Functions Distance-based Density Functions di(p) = D(|P-Ci|/R) = D(r) r is normalized distance 2 3 D(r) D1 ( r ) = (1-r ) 0 <= r < 1 0.5 6 4 2 D2 ( r ) = 1 - (4/9)r + (17/9)r - (22/9)r 0 <= r < 1 2 D3 ( r ) = exp(-ar ) 2 0.5 r D4 ( r ) = 1-3r 0 <= r < 1/3 (3/2)(1-r) 2 1/3 <= r < 1 CSE 681 CSE 681 4 Distance-based Density Distance-based Density Functions Functions 6 4 2 D ( r ) = exp(-ar2) D2 ( r ) = 1 - (4/9)r + (17/9)r - (22/9)r 0 <= r < 1 3 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0.2 0.4 0.6 0.8 1 0.2 0.4 0.6 0.8 1 CSE 681 CSE 681 Distance-based Density Distance-based Density Functions Functions 2 2 3 D4 ( r ) = 1-3r 0 <= r < 1/3 D1 ( r ) = (1-r ) 0 <= r < 1 (3/2)(1-r) 2 1/3 <= r < 1 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0.2 0.4 0.6 0.8 1 0.2 0.4 0.6 0.8 1 CSE 681 CSE 681 5 Distance-based Primitives Distance-based Primitives Point Point Distance from point Polyline Line Distance from Line line or endpoints Polyhedron - partition by Polygon perpendiculars Distance from Anything you can Polygonal mesh Polyline one of lines or efficiently compute the points - partition distance from by perpendiculars CSE 681 CSE 681 Distance-based Primitives Distance-based Primitives Partition space by planes Polyhedra Polygon perpendicular to plane through an edge Convex? Polygonal mesh Same, for each face - two planes per edge Concave? CSE 681 CSE 681 6 Display Considerations Computing the Normal Form analytic expression of implicit function Find point of intersection along ray: F(P(t)) = 0 And take partial derivatives Compute normal N = (δF/δx, δF/δy, δF/δz) 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 CSE 681 Bulge problem CSG-approach to control blending One long primitive Use nodes to combine priiiimitives by e ihither summing or taking max of functions Two side-by-side primitives CSE 681 CSE 681 7 Display alternative Complexity Marching cubes algorithm - construct surface fragments from isosurface intersections with grid cells •Bounding volumes •Spatial subdivision - cellular bucket sort •Hierarchical spatial subdivision – quadtree •Binary spatial partitioning CSE 681 CSE 681 Distance-based Primitives Examples CSE 681 CSE 681 8 Examples Examples CSE 681 CSE 681 9.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    9 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us