所谓等值面是指空间中的一个曲面,在该曲面上
函数F(x, y, z)的值等于某一给定值Ft,即等值面是由所有点S = {(x, y, z):F(x, y, z) = Ft}组成的一个曲面。
简介
等值面技术在可视化中应用很广,许多标量场的可视化问题都可归纳为等值面的抽取和绘制,如各种等势面、等位面、等压面、等温面等。等值面技术除生成等值面的几何表示外,还包括显示技术,如要考虑合适的光照模型、解决等值面的相互遮挡等。等值面的生成和显示也是可视化研究中的一个重要领域。
生成算法
Cuberille方法
· Cuberrille等值面方法又称Opaque Cube算法,最初由Herman等人提出,后来又多次改进。算法主要分为两个步骤:
· (1) 确定边界单元
对于规则网格数据,其网格单元可看成是正六面体单元,整个三维数据就是由这种正六面体组成的,这种组成三维图象的基本正六面体单元称为体元。对于给定的阈值Ft,遍历体数据中的各个单元,将组成体元8个顶点上的值与Ft进行比较,找出顶点值跨越Ft的所有体元,即体元中有的顶点值大于阈值,有的顶点值小于阈值,因此体元内包含等值面片,这就是边界单元。
(2) 绘制各边界单元的6个多边形面,即将等值面看成是由各单元的六个外表面拼合而成
每个单元均为一正六面体,包括6个多边形面。对组成所有边界体元的多边形面进行绘制,即可产生最终的图象结果。在绘制多边形过程中应采用合适的光照模型和消隐技术。
如果在具有硬件深度缓存(Z-buffer)功能的计算机上运行立方体方法,可以将这组多边形不分次序地提交给硬件,由硬件完成消除隐藏面的任务。如果以软件方式执行立方体方法,在算法中必须考虑多边形的遮挡问题。一个有效的方法是把遍历体元集合与显示两个步骤合二为一,遍历体元集合时采用从后至前的次序。发现一个边界体元,就立刻显示它的6个面。后显示到屏幕上去的多边形将覆盖先显示的多边形,这样就达到了消除隐藏面的目的,这就是
画家算法的思想。
Marching Cubes(MC)方法
Marching Cubes(移动立方体)方法是由W.E.Lorenson和H.E.Cline在1987年提出来的。由于这一方法原理简单,易于实现,目前已经得到了较为广泛的应用,成为三维数据等值面生成的经典算法,Marching Cubes算法又简称为MC算法。MC方法的原理如下:
在Marching Cubes方法中,假定原始数据是离散的三维空间规则数据,一个体元定义为由相邻层上的8个顶点组成的一个长方体。为了在三维数据中构造等值面,应先给定所求等值面的值,该方法的基本原理是逐个处理所有的体元,将体元各顶点处的值与给定的阈值进行比较,首先找出与等值面相交的体元,然后通过插值求等值面与体元棱边的交点,并将各交点连成三角形来构成等值面片,所有体元中的三角形集合就构成了等值面。由于这一方法是逐个处理所有的体元,因此被称为Marching Cubes方法。
Marching Tetrahedra (MT)方法
Marching Tetrahedra方法简称为MT方法,亦称四面体剖分法,它是在MC方法的基础上发展起来的。该方法首先将立方体单元剖分为四面体,然后在其中构造等值面。提出这种方法的原因很多。首先,由于四面体是最简单的多面体,其它类型的多面体都能剖分为四面体。其次,将立方体剖分为四面体后,在四面体中构造的等值面的精度要比在立方体中构造的等值面要高。而最直接的原因是企图通过在四面体内构造等值面来避免MC方法中存在的二义性问题。
剖分立方体方法
在W.E.Lorenson和H.E.Cline于1987年提出Marching Cubes方法之后不久,他们就发现,当离散三维数据的密度很高时,由Marching Cubes方法在体元中产生的小三角面片常常很小,在图像空间中的投影面积与屏幕上一个像素点的大小差不多,甚至还要小,因此,通过
插值来计算小三角面片是不必要的。随着新一代CT和MRI等设备的出现,二维切片中图象的分辨率不断提高,断层不断变薄,已经接近并超过计算机屏幕显示的分辨率。在这种情况下,常用于三维表面生成的Marching Cubes方法已不适用。于是,在1988年,仍由W.E.Lorenson和H.E.Cline两人提出了剖分立方体(Dividing Cubes)方法。