gpt4 book ai didi

c++ - 从体素中提取尖锐的等值面

转载 作者:太空狗 更新时间:2023-10-29 20:59:34 24 4
gpt4 key购买 nike

我需要从八叉树或数组中的体素 block 生成一个等值面,同时支持圆形和尖锐的几何形状。我搜索了似乎能够完成此任务的算法,并找到了几种算法,包括 Dual Contouring、Extended Marching Cubes 和 Dual Marching Cubes。然而,前两个需要 Hermite 数据,这似乎是一个巨大的内存消耗。此外,我找不到任何这些的实际算法,只有来自期刊的方程式和模糊的描述。如果能帮助我找到解决我问题的算法,我们将不胜感激。

最佳答案

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

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

双重轮廓 (DC) - 保留尖锐的特征并可以进行自适应细化,但具有细胞间依赖性,并且还会生成非流形网格。

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

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

关于c++ - 从体素中提取尖锐的等值面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24279828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com