Feature Sensitive Surface Extraction from Volume Data Leif P. Kobbelt Mario Botsch Ulrich Schwanecke Hans-Peter Seidel Computer Graphics Group, RWTH-Aachen Computer Graphics Group, MPI Saarbrucken Proc. Of ACM SIGGRAPH 2001 , page 57 66 Abstract • A new technique to extract high quality triangle meshes from volume data. • The main two contributions are: – Enhanced distance field representation – Extended Marching Cubes (EMC) • About Standard Marching Cubes (MC) Abstract uniform 65×65×65 grid Standard MC Standard MC + Enhanced distance field Extended MC Extended MC + Enhanced distance field • The above figures show reconstructions of the well-known “fandisk” dataset. About Standard Marching Cubes Introduction • The volume data is usually sampled on a regular grid with a given step width. • We often observe severe alias artifacts at sharp features on the extracted surfaces. – Reduce these alias effect – Keep the simple algorithmic structure of the standard MC algorithm Alias artifacts • The Marching-Cubes-type algorithm process discrete volume data. • The sampling of the implicit surface f(x,y,z)=0 is performed on the basis of a uniform spatial grid. Parametric surfaces v.s. Implicit surfaces • Parametric surfaces – A mapping from R2(u,v) to R3(x,y,z) – Parametrized by u and v. x=f(u,v) y=g(u,v) z=h(u,v) – Allows easy enumeration of points. Just plug in values for u and v. Parametric surfaces v.s. Implicit surfaces • Implicit surfaces – Defined by f(x,y,z)=0 • Advantages x2+y2+z2-R2=0 – Easy to check whether a point is “inside” and “outside” – Inside: f(x,y,z) < 0 • Disadvantages – One cannot easily enumerate points on the surface. Introduction • The central contributions of this paper are: – Enhanced representation of the distance field • This allows us to find more accurate surface. • Store directed distance in x, y, and z directions. – Extended Marching Cubes algorithm • Reduce alias (converge to the original surface’s normals.) Distance field representation • For a given surface S 3 , a volume representation consists of a scalar valued function f : 3 such that [ x, y , z ] S f ( x, y , z ) 0 • Signed distance field function f ( x, y, z ) : dist ([ x, y, z ], S ) > 0 outside the surface < 0 inside the surface = 0 on the surface Operation U A B [ x, y, z ] S1 S2 max{ f1 ( x, y, z), f 2 ( x, y, z)} 0 [ x, y, z ] S1 S2 min{ f1 ( x, y, z), f 2 ( x, y, z)} 0 A-B [ x, y, z] S1 S2 max{ f1 ( x, y, z), f 2 ( x, y, z)} 0 Distance field representation • The standard way to sample f on a uniform spatial grid gi,j,k = [ ih, jh, kh ]. • The sampled distances di,j,k = f ( ih, jh, kh ) can be interpolated on each grid cell. Ci,j,k (h) = [ ih, (i+1)h ] × [ jh, (j+1)h ] × [ kh, (k+1)h ] Distance field representation • The major limitation of this technique is that the samples on S* are not necessarily close to S in the vicinity of sharp features. S S* Distance field representation • To improve the approximation one could refine the discretization grid h h’ < h or switch to higher order polynomial interpolants within each cell Ci,j,k (h). • First case: – output a larger number of triangles. • Second case: – local computations are getting more complicated. Distance field representation • Therefore we suggest a third alternative to avoid these difficulties by using the directed distance field. • We store at each grid point gi,j,k three directed distances in x, y, and z direction. dist x d i , j ,k dist y dist z > 0 outside the surface < 0 inside the surface = 0 on the surface The three directed distances at one grid point always have the same sign. ( inside / outside status ) Distance field representation • The intersection point (Interpolation) s (1 | di , j ,k [ x ] | / h) gi , j ,k (| di , j ,k [ x ] | / h) gi 1, j ,k • It is valid if d i , j ,k [ x ] and di1, j ,k [ x ] have opposite signs. h gi,j,k S gi+,j,k Distance field representation Standard MC Standard MC + Enhanced distance field Extended marching cubes • Marching cubes in general cannot reconstruct very sharp features and result in aliasing artifacts. – Problem : normals don’t converge – Alias errors in surfaces generated by the MC algorithm. – By decreasing the grid size, the effect becomes less and less visible. Extended marching cubes • What we can do – By using point and normal information on both sides of the sharp feature one can find a good estimate for the feature point at the intersection of the tangent elements. Extended marching cubes Y D2Y > 0 X Surface Exact intersection point D1Y < 0 D3X > 0 D1X < 0 Extended marching cubes tangent element normal Reconstructed surface normal tangent element Extended marching cubes • This works only if there is at most one sharp feature. • Just like the standard MC, the extended algorithm processes each cell Ci,j,k (h) separately. • If the cell does not contain a sharp feature – by using the standard Marching Cubes table. • If a feature is present – We compute one new sample point close to the expected feature. (generate a triangle fan) Extended marching cubes • For each cell we first have to check if a feature is present and if yes, which type of feature. Extended marching cubes • Postprocessing step – Left : the cells/patches that contain a feature are identified. – Center : one new sample is included per cell. – Right : by using edge flipping to reconstruct the feature edges. Extended marching cubes Extended MC Extended MC + Enhanced distance field Result – The execution times include only the running times for standard and extended MC, respectively. – The (directed) distance fields and gradients have been generated in a pre-process. Result - CSG Result – Fan Disk Standard MC Standard MC + Enhanced distance field Extended MC Extended MC + Enhanced distance field Result – Max Planck Low pass filter Result – CAD 129129129 Application – Milling simulation Application – Surface reconstruction – The original dataset consists 200K scattered points Application - Remeshing • Polygonal meshes that are generated at some intermediate stage of an industrial CAD process often have a bad quality. – Convert a CAD model into a volume representation by sampling its distance field on a uniform grid. – Apply the extended Marching Cubes algorithm to this volume gives a remeshed version. Conclusions and future directions • Adaptively refined octrees. – The problem is to fix the gaps (different refinement levels meet) • Parallelization – The algorithm processes each cell individually. (like the standard Marching Cubes)