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

sol*_*lti 2 c++ opengl marching-cubes octree

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

Mic*_*son 5

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

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

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


com*_*ble 5

这是一个完全不同的理论。八叉树是一种 3D 空间的三次细分方法,用于查找空间中事物的分布,有效处理大空间并将其缩小到需要查找内容的区域。

Marching cubes 是一个生成网格的系统,不使用任何像八叉树那样的渐进细分。

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