【问题标题】:Sharp Isosurface Extraction from Voxels从体素中提取锐利的等值面
【发布时间】:2014-08-08 09:52:11
【问题描述】:

我需要从支持圆角和锐利几何形状的八叉树或数组中的体素块生成等值面。我搜索了似乎能够完成这项任务的算法并找到了几个,包括双轮廓、扩展行进立方体和双行进立方体。然而,前两个需要 Hermite 数据,这似乎是一个巨大的内存消耗。此外,我找不到任何这些的实际算法,只有来自期刊的方程式和模糊的描述。任何帮助找到可以解决我的问题的算法将不胜感激。

【问题讨论】:

  • 我不明白:afaik,这些技术可以让您从连续数学函数中提取易于渲染的块。但是您已经有了离散值。您是否真的在寻找一种方法来填充这些点之间的空间,这些点遵循一条近似于理想曲线的点,该曲线通过您已有的所有点?
  • 从体素中提取等值面的方法相同,但从离散坐标(体素)中指定函数。最佳拟合曲线可能类似于 Marching Cubes 并且不支持锐边。我不确定 Dual Marching Cubes,但我知道 Extended Marching Cubes 类似于 Dual Contouring,并且有很多关于使用它从体素中提取等值面的参考资料。 Example 1Example 2@didierc

标签: c++ voxel marching-cubes


【解决方案1】:

你提到的那些是最突出的。 但是请记住,它们也有一些限制:

Extended Marching Cubes (EMC) - 通过考虑样本法线(以及法线的梯度)来保留清晰的特征,但是这种方法仍然不是拓扑一致的(同胚),​​它不'不允许自适应细化(网格的简化)并具有单元间依赖性(由于边缘翻转过程;这不会允许最终的 GPU 加速)。

Dual Contouring (DC) - 保留清晰的特征并且可以自适应地细化,但具有单元间依赖性,并且还会产生非流形网格。

Dual Marching Cubes (DMC) - 保留清晰的特征,并生成多种网格(处理歧义),还允许自适应细化,但仍然存在单元间依赖性(由于它是对偶的)自然)并且也不会那么准确,因为它的条子消除过程会四舍五入顶点(错误可能可以忽略不计)

我相信还有其他可能的组合,以及完全不同的技术。不过我建议你看看Cubical Marching Squares (CMS)。我目前正试图解决它,因为我希望实现它。网上没有太多的实现。但是它仍然适用于 Hermite Data(据我所知,这与您有关)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 2012-04-21
    • 1970-01-01
    • 2015-08-06
    相关资源
    最近更新 更多