如何三角化一个sparxe体素八叉树SVO

问题描述

我基于稀疏体素八叉树 (SVO) 实现了用于材料去除模拟的数据结构。现在,我想将结果可视化。因此,我需要对我的稀疏体素八叉树进行三角测量。

我该怎么做?您能为此推荐任何快速算法吗?

标准体素模型可以使用行进立方体 (MC) 进行三角剖分。但据我所知,我无法将此算法应用于 SVO。 MC 算法基于用于生成三角形的 15 个基本模式(借助 LUT 以获得更好的性能)。但是这些模式不再适用于 SVO 体素,因为这些体素可以具有不同的大小,具体取决于树枝中的局部分辨率。

那么,其他人如何对他们的 SVO 进行三角测量?

解决方法

有一种称为“Transvoxel Algorithm”的算法,您可以将其用于行进立方体。我不会在这里发布细节,但你可以谷歌它。它进行了一些内部体素细分。我有我自己的曲面细分算法,该算法在某种程度上简化了,因为它的情况很少,但是这两种算法一次只允许单个级别的分辨率更改。

您最好的选择可能是根本不使用 MC 并使用表面网。主要的缺点是它可以生成非流形几何体(如果您关心的话)。还有其他几种变体,例如您可能还想研究的“双重轮廓”。双轮廓允许锐角,但需要 Hermite 数据。我相信还有多种版本的双重轮廓和/或表面网络,但会增加一些复杂性。

无论如何,所有这些东西都适用于体素八叉树,但确实需要一些工作。