如何在表面网中进行多边形化或创建三角形等值面创建算法

时间:2016-08-14 21:37:52

标签: opengl graphics 3d

我正在实施一个朴素的表面网算法,并且有一个与创建三角形有关的问题。我想我无法理解三角测量在表面网中是如何工作的。

所以我有表面相交的体素。我也有一个表面节点的中心(现在它只是立方体的一个中心)。现在我准备为每个表面网立方体在6个可能的邻居之间创建三角形。我为每个节点创建了12个可能的三角形,但我正在寻找减少三角形数量的方法,因为它有重复数据。

在下图中,我正在考虑仅为单个象限构建三角形。在这种情况下,立方体A,B,C和D也是左,中,后和底。如果所有4个表面节点都有交叉点,则当前创建面1,2和3以及该框的剩余面4,5,6。有些东西似乎不对。我想知道我是否在正确的方向或是否有另一种方法在表面网中创建三角形。

enter image description here

Image source

1 个答案:

答案 0 :(得分:0)

还有另一种方法,这里显示一些代码: Basic Dual Contouring Theory (#construct faces下面) 你也可以否定“dirs”(然后它将是(-1,0,0),(0,-1,0),(0,0,-1))变量并在你进行采样的同一循环中进行,这会稍微提高性能

我希望这有帮助