I present a new approach to isosurface extraction from three-dimensional volume data that uses particle systems. Particles are attracted towards a specific surface value while simultaneously repelling adjacent particles on nearby regions of the isosurface. Repulsive forces are based on particle size, which is in turn a function of both the curvature of the surface at that point and the local density of particles in the region. Particle population adapts through a birth/death process to reach a curvature-based desired density level. A global scaling factor adjusts the desired density to control the level of detail in the final triangulation. Once the system reaches equilibrium, the particle positions are used as vertices in generating a triangular mesh of the isosurface.;My approach has several advantages over the conventional Marching Cubes isosurface extraction algorithm. The size of the triangles is a function of the curvature of the surface, not the grid resolution of the volume data set. The level of detail in the triangulation is an integral part of my algorithm, not a post-processing step. A single scaling factor provides a simple, easy to use parameter for controlling the level of detail, unlike the multiple, interrelated parameters used in the popular Triangle Decimation algorithm. My technique produces a better quality triangulation, as measured by the aspect ratio of the triangles, than Marching Cubes combined with a Triangle Decimation post-processing step. This is especially true for isosurfaces with very few vertices, such as those that have been heavily decimated.;The disadvantage of my approach is that it takes significantly longer to produce an isosurface than Marching Cubes and Triangle Decimation combined. Given that the time required by my algorithm is a function of the number of particles, larger models or models created with a greater level of detail increase this time discrepancy.
展开▼