Table of Contents
Fetching ...

Theoretical and Empirical Analysis of a Fast Algorithm for Extracting Polygons from Signed Distance Bounds

Nenad Markuš, Mirko Sužnjević

TL;DR

The paper tackles efficient conversion of signed distance bounds into polygon meshes by introducing gridhopping, a fast variant of sphere tracing that guides isosurface extraction with $O(N^2\log N)$ complexity on a grid of $N^3$ cells. The method casts $N^2$ rays, advances along each ray using the bound $|f_S|$, and polygonizes the first intersecting cell, enabling reliable mesh generation from SDBs with simple implementation. Theoretical analysis decomposes the complexity across planes, boxes, and general shapes, all supporting the $O(N^2\log N)$ bound, and empirical results on primitives and neural SDBs confirm both speed and accuracy. The approach is practical for modelling and shape compression, with public code available, though it relies on Lipschitz conditions and is most suited to abstract shapes rather than raw point clouds.

Abstract

Recently there has been renewed interest in signed distance bound representations due to their unique properties for 3D shape modelling. This is especially the case for deep learning-based bounds. However, it is beneficial to work with polygons in most computer-graphics applications. Thus, in this paper we introduce and investigate an asymptotically fast method for transforming signed distance bounds into polygon meshes. This is achieved by combining the principles of sphere tracing (or ray marching) with traditional polygonization techniques, such as Marching Cubes. We provide theoretical and experimental evidence that this approach is of the $O(N^2\log N)$ computational complexity for a polygonization grid with $N^3$ cells. The algorithm is tested on both a set of primitive shapes as well as signed distance bounds generated from point clouds by machine learning (and represented as neural networks). Given its speed, implementation simplicity and portability, we argue that it could prove useful during the modelling stage as well as in shape compression for storage. The code is available here: https://github.com/nenadmarkus/gridhopping

Theoretical and Empirical Analysis of a Fast Algorithm for Extracting Polygons from Signed Distance Bounds

TL;DR

The paper tackles efficient conversion of signed distance bounds into polygon meshes by introducing gridhopping, a fast variant of sphere tracing that guides isosurface extraction with complexity on a grid of cells. The method casts rays, advances along each ray using the bound , and polygonizes the first intersecting cell, enabling reliable mesh generation from SDBs with simple implementation. Theoretical analysis decomposes the complexity across planes, boxes, and general shapes, all supporting the bound, and empirical results on primitives and neural SDBs confirm both speed and accuracy. The approach is practical for modelling and shape compression, with public code available, though it relies on Lipschitz conditions and is most suited to abstract shapes rather than raw point clouds.

Abstract

Recently there has been renewed interest in signed distance bound representations due to their unique properties for 3D shape modelling. This is especially the case for deep learning-based bounds. However, it is beneficial to work with polygons in most computer-graphics applications. Thus, in this paper we introduce and investigate an asymptotically fast method for transforming signed distance bounds into polygon meshes. This is achieved by combining the principles of sphere tracing (or ray marching) with traditional polygonization techniques, such as Marching Cubes. We provide theoretical and experimental evidence that this approach is of the computational complexity for a polygonization grid with cells. The algorithm is tested on both a set of primitive shapes as well as signed distance bounds generated from point clouds by machine learning (and represented as neural networks). Given its speed, implementation simplicity and portability, we argue that it could prove useful during the modelling stage as well as in shape compression for storage. The code is available here: https://github.com/nenadmarkus/gridhopping

Paper Structure

This paper contains 12 sections, 15 equations, 8 figures, 1 algorithm.

Figures (8)

  • Figure 1: A 2D illustration of the gridhopping method: grid cells are dashed gray squares, the shape with a SDF is in red, the $z$ axis and the $xy$ plane are in black. The dashed green line (parallel to the $z$ axis) represents one of the rays along which sphere tracing is applied. Since the SDF of the red shape is known, we can compute the maximum step size along the ray: the green dots are locations obtained from these calculations. The Marching cubes polygonization is first applied to the light blue cell since it is the first one along the ray that satisfies the condition related to equation \ref{['eq:polydist']}.
  • Figure 2: One possible approximation of a shape (red) as a union of axis-aligned boxes (blue). Note that the approximation would be much more efficient if non-axis-aligned planes are used on the boundary.
  • Figure 3: The four scenes used in our experiments from Section \ref{['sec:experiments-primitive']}.
  • Figure 4: Elapsed times plotted against grid resolution for the four different scenes from Figure \ref{['fig:primitive-scenes']}. The legend for all graphs is plotted in the top left one. Note that all axes are logarithmic.
  • Figure 5: Shapes used in experiments from Section \ref{['sec:experiments-learned']}.
  • ...and 3 more figures