We present a numerically robust algorithm for computing the constrained Delaunay tetrahedrization (CDT) of a piecewise-linear complex, which has a 100% success rate on the 4408 valid models in the Thingi10k dataset. We build on the underlying theory of the well-known TetGen software, but use a floating-point implementation based on indirect geometric predicates to implicitly represent Steiner points: this new approach dramatically simplifies the implementation, removing the need for ad-hoc tolerances in geometric operations. Our approach leads to a robust and parameter-free implementation, with an empirically manageable number of added Steiner points. Furthermore, our algorithm addresses a major gap in TetGen's theory which may lead to algorithmic failure on valid models, even when assuming perfect precision in the calculations. Our output tetrahedrization conforms with the input geometry without approximations. We can further round our output to floating-point coordinates for downstream applications, which almost always results in valid floating-point meshes unless the input triangulation is very close to being degenerate.
翻译:我们提出了一种数值稳健的算法,用于计算分段线性复合体的受约束Delaunay四面体剖分(CDT),该算法在Thingi10k数据集中的4408个有效模型上达到了100%的成功率。我们基于著名的TetGen软件的底层理论,但采用基于间接几何谓词的浮点实现来隐式表示Steiner点:这种新方法极大地简化了实现,消除了几何操作中需要特定容差的需求。我们的方法带来了一种无需参数的稳健实现,且添加的Steiner点数量在经验上可控。此外,我们的算法填补了TetGen理论中的一个重大空白——该空白可能导致即使在计算精度完美的情况下,在有效模型上也会出现算法失败。我们的输出四面体剖分与输入几何一致,无需近似。我们还可以进一步将输出舍入为浮点坐标以用于下游应用,除非输入三角剖分非常接近退化情况,否则这几乎总能生成有效的浮点网格。