我想要的是使用我创建的体素模型重新对网格进行三角剖分。
通过谷歌搜索,我发现 Marching Cubes 应该是一个合适的算法。我已经阅读了很多教程,但是等值面部分让我感到困惑。
我遵循本教程http://paulbourke.net/geometry/polygonise/但无法理解我的情况下的等值面究竟是什么以及如何提取它。
它是我最初的物体表面吗?
编辑1:
到目前为止,我已经通过重新三角测量做到了这一点:
似乎我在等值面和体素之间找到了正确的 itnersection 点,因为似乎有一个正确的体素模型:
但是为什么他们在重新三角剖分时遗漏了这么多三角形呢?
编辑2:
调试我的代码时,我注意到以下内容:我使用的 Marching Cube 表具有指向等值面切割我的体素的顶点的指针。这些三元组构成了新的三角形。但我注意到很多时候表格说用顶点(例如)intersection_point(0)-intersection_point(3)-intersection_point(5) 构造三角形,但我的交点在不同的位置。
-> 交点的位置取决于它们所在的边缘。