Real-time exploration of regular volume data by adaptive reconstruction of isosurfaces读书笔记

本文讨论使用Octree(八叉树)重建表面的问题。

3 Continuous isosurfaces

讨论连续性问题。

如果在Octree上储存数据,那么在不同大小的格子交界的地方,数据可能会不连续。

本文采用的方法:在大小格子交界处,让大格子在小格子上sample数值:

图1

也就是用方块节点插值出来三角节点的值,把原来的扔掉。这样一来,小格子上的数值就是线性的,那么marching cubes就会在大小格子上得到同样的intersection point,也就是说数值是连续的。

但是,虽然数值连续,但算出来的表面不一定连续。如图3:

图3

本文的方法,首先算法保证相邻的叶子格子不会相差超过一层(one generation,应该是这个意思)。也就是都是图3这种情况:一个大格子和四个小格子相邻。然后如图6所示:在marching cubes用大格子算出来的三角形重心处加一个点,把这个三角形切成一堆“扇叶”,把小格子算出来的那些交点加到这堆“扇叶”的外圈,切得更细就行了。

图6

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注