行进立方体和八叉树之间有什么区别?

时间:2013-04-05 06:34:45

标签: c++ opengl octree marching-cubes

八叉树是行进立方体的特例吗?我的意思是八叉树使用相同的行进立方体的三角形立方体。我知道八叉树是四叉树的三维形式。我只是想知道我是否正确的方向。 在树形成之后,八叉树如何形成三角形(用于创建表面)与行进立方体的步骤相同?

2 个答案:

答案 0 :(得分:5)

行进立方体是一种对函数的等值面进行三角测量的方法,通过细分为相同大小的小立方体并以保持连续性的方式对每个立方体进行三角测量。

八叉树基础等面方法取而代之的是切成不均匀大小的立方体。对于等效的“视觉质量”,这可以产生比行进立方体算法更少数量的三角形。然而,额外的成本是需要处理许多特殊情况以对每个立方体中的表面进行三角测量以避免空洞。此外,您必须确定每个多维数据集何时“足够小”的度量标准(与多维数据集中的值更改以及多维数据集的视觉重要性等相比)。通常为了帮助减少特殊情况的数量,相邻的多维数据集被限制在最多一个八叉树级别 - 这意味着纯粹基于度量的简单细化是不可能的。

总而言之:行进立方体是一种快速的等表面三角测量方法。八叉树方法更复杂,但可以提供更好的结果。它们不一样,八叉树不是行进立方体的特殊情况。

答案 1 :(得分:3)

这是一个完全不同的理论。八叉树是一种用于三维空间的立方细分方法,用于在空间中查找事物的分布,有效地处理大空间并将其缩小到有待找到的区域。

行进立方体是一个用于生成网格的系统,并不使用像八叉树这样的任何渐进细分。

但是一个好的行进立方体系统会使用八叉树来找到需要处理的区域并丢弃没有网格的东西。 https://www.youtube.com/watch?v=gNZtx3ijjpo