我有一个定义 3D 形状的复杂方程,我想生成一个表面网格。形状由等值面定义,即函数在形状内部为正,在其外部为负。
标准的基本技术是“行进立方体”算法。但是,它对我来说有一些缺点:
它以众所周知的方式生成不是特别好的网格。
至少对于最简单的实现,我必须在 3D 网格中的每个点上评估我的函数,即使其中许多离表面很远。我宁愿有一个算法来减少对函数的评估。
Marching cubes 没有利用任何关于衍生品的信息,因为我知道函数,所以我可以很容易地提供这些信息。
对于这种情况,是否有已知的“推荐”算法?行进方块有很多很多变体,但很难概括它们的比较优势,而且其中许多似乎只针对上述第一点,而不是后两点。
这是一个小爱好项目,所以理想情况下我正在寻找相对容易实现的东西。