行进多维数据集isovalue

我试图实现Marchin Cubes算法,但我有一些问题(这可能非常微不足道,但我似乎无法找到答案)。

当Isovalue = 5时,我有这样一个块:

0-------10
|       |
|       |
0-------5

由于0 <5,所以左侧角落都应标记为“关闭”。 10应该被标记为“开”,因为10> 5。但是在右下角的5点呢? 这应该打开还是关闭?

当我使用上面的例子使用lineair插值(假设5被标记为“开”),这是交点应该在哪里? (用x标记)

----x---- 
|       |
|       |
--------x 

而当我画这个街区时,它应该基本上是两个x之间的界限吗?

提前致谢!


等值面是沿着直线计算的,所以你有一个isosurf和立方体边的交点,它给了你一个点。

如果iso恰好落在拐角处,这很少见,并且为了优化行进立方体,通常可以将任何角度向靠近拐角的97%靠拢,即4.8 = 5.0

该优化将防止您在该点周围出现多个小碎片顶点,即0.2宽度的顶点。 这是一个有用的优化。

我会在三维解释,因为这就是我所做的。

一旦立方体沿着一条直线或者一个角落具有交叉点,它将搜索数据库中可能存在的ISOsurf和立方体的交集模式。

相应的图案会为您提供在该立方体内实现的正确顶点,立方体可以具有四边形,例如三角形,它将使用ISO的值来确定三角形的大小。

所以,应该有点和线的交点以及相应的三角形指标全部起作用,并且基于立方体边角中的等值面位置的值来确定顶点的交点位置。

链接地址: http://www.djcxy.com/p/6355.html

上一篇: Marching Cubes isovalue

下一篇: Clarification on Marching Cubes Algorithm