基于改进光线投射算法的体数据显示①
2017-09-15嵇杰,王昀
嵇 杰, 王 昀
(中国石油化工股份有限公司石油物探技术研究院,南京 211103)
基于改进光线投射算法的体数据显示①
嵇 杰, 王 昀
(中国石油化工股份有限公司石油物探技术研究院,南京 211103)
光线投射算法属于直接体绘制(DVR)中应用比较广泛的算法,其优点是绘制质量高,但是存在采样点计算量大,绘制速度慢的问题.针对这一问题,本文利用投射光线在物空间的传递性质,提出了一种改进的计算采样点位置的算法,加快采样点的获取速度,提高图像三维重建的效率.该算法在PC机平台上得到了实现,不仅在图像质量上得到保证而且绘制速度又有很大提高,为图像的三维重建提供了有效的手段.
光线投射;直接体绘制;三线性插值;向量外延
科学计算可视化是一门新兴的计算机图形学方向的应用学科.它能够将抽象的数学符号变为直观的几何图形或图像,有助于研究人员观察其结构,指导模拟与计算过程.
直接体绘制技术[1]直接从体数据集(Volume Data)中提取内在的本质信息,借助交互式图形图像技术来展现其结构,是科学计算可视化的一个重要研究方向.直接体绘制技术主要有两大类:以对象空间为序的单元投影方法和以图像空间[2]为序的光线投射算法.
光线投射方法[3]的优点之一是不会丢失体数据所包含的信息,使得观察者可以从一幅图象感受到整体的信息.另外,该方法可以将体数据包含的信息分成若干类,将某类对象加以特殊处理,隐藏或者突出展现这类数据的可视化图像.体绘制方法的另一个优点是不需要构造曲面这一中间环节.但是,这种方法也有缺点,因为在绘制过程中,所有的信息均参与运算,计算量较大,影响可视化过程的实时性.
针对上述缺点,本文提出一种改进的光线投射加速算法.该方法利用投射光线投射光线在物空间的传递性质,改进采样点位置的计算过程,减少计算量,以达到加速效果.
1 光线投射基本原理
光线投射算法是一种以图像空间为序的直接体绘制算法,其基本原理是:首先,屏幕上的每个像素向视点方向发出一条射线穿过体数据;然后,在这条射线进行等间距重采样[4],计算各重采样点的颜色值和不透明度;最后,按照由前向后或由后向前的顺序合成射线上各重采样点的颜色值和不透明度,即得到该像素颜色.原理如图1所示.
光线投射具体流程步骤如图2所示.
图2 光线投射步骤
2 向量外延求交法计算采样点位置
光线投射算法是从视点发出一条射线,穿过数据场,与射线相交的体素作为采样点.在物空间下,建立坐标系.假设有一个长宽高分别为的长方体,如图3所示,数据定义在网格节点上,相邻8个网格节点构成一个体素.节点可表示为节点的空间坐标为对应的体数据的值为
图3 向量求交模型
将式(4)代入到式(5)(6)中,则采样点C对于上一采样点,在方向上的偏移量为:
且在数据抽取过程中采用了XML的对象-关系映射技[5]把式(8)代入式(7),可以计算得出采样点的参数方程:
3 三线性插值重采样
传统的光线投射法中,由于三维重建的数据场都是离散的,采样点一般不会正好在数据点的位置.因此,必须依靠插值计算以获取采样点的数值,这是体绘制中最基本的运算,如图4所示.
图4 三线性插值示意图
(1)沿Y轴方向线性插值得到:
(2)沿X轴方向线性插值得到:
(3)沿Z轴方向线性插值得到:
将式(10)和(11)代入到式(12)中得到立方体内重采样的数据:
三线性插值[6]被分解为7次线性插值操作,共需要7次加法运算和14次乘法运算,然而使用大量的三线性插值来对采样点进行定位,使得计算开销巨大,影响了实时交互性.
4 光学属性的映射
属性映射[7]是通过传递函数(Transfer Function)来完成的,最简单的传递函数可表示为:
5 图像合成
在体绘制过程中,最后一个环节便是图像的合成.从成像屏幕上的每一个像素出发,发出一条射线穿过三维数据场,在这条射线上对数据场中的体素进行重新采样[9],并根据一定顺序将采样体素颜色大小和不透明度大小进行累加计算,最终得到成像屏幕上每个像素的颜色,得到合成图像.
在光线投射算法中,按照最后合成的顺序分为两种合成算法.假设在体数据中,第n个体素的颜色大小是Ccur,不透明度大小是Ocur.合成图像时发出的射线在进入该体素之前颜色大小是Cin,不透明度大小是Oin,穿过该体素之后颜色大小是Cout,不透明度大小是Oout,下面我们对不同合成顺序两种方法进行讨论.
1)沿着射线由后向前的顺序合成
假设入射光线最开始的颜色的数值大小是C0,穿过n个体素,其中第n个体素颜色的数值大小是Cn,不透明度的数值大小是On,即透明度的数值大小是合成后的颜色的数值大小是C,则.由公式(15)我们推断出:
这种沿着射线,从后往前不断累加采样点颜色和不透明度的算法,不需要对O的值累计计算就能得到最终的合成图像[10].
2)沿着射线由前向后的顺序合成
按照从前往后的次序来进行合成,可以得到以下公式:
这种沿着射线,由前向后不断累计采样点颜色和不透明度的算法可以省去无效采样点的计算,原因是不透明度O随着采样点的累计,必然逐渐变大,当不透明度O接近于1时,表明此像素几乎是一点都不透明的了,基本上可以忽略剩下的体素对最终成像结果的影响,省去无用的计算,所以运行速度比较快.如图5所示.
图5 不透明度及颜色合成
6 实验结果分析
为了验证系统的有效性,我们选取了8个体数据文件作为实验数据,各体数据文件的具体参数及实验结果如表1所示.
(1)绘制时间对比
由这8组随机选取的体数据进行测试,得到表1的实验结果,通过对实验数据分析,如图6所示,我们发现,对同一组体数据而言,使用本文的方法,在耗时上要比传统方法提升很多;对于传统方法而言,体数据的大小对绘制时间影响较大,有点接近指数级,而本文的方法中体数据大小对绘制时间影响较小,几乎是线性的.
表1 系统实验数据
图6 实验数据分析
(2)绘制效果对比
由于篇幅关系,我们选取其中的4组数据,对其绘制结果进行分析,如图7中所示.
对选取的4组绘制结果进行分析,在图7(a)、(b)、(c)、(d)中左侧的结果都是采用传统方法绘制的,右侧的则是采用本文的方法绘制的,从绘制效果来看,本文的方法在某些细节层次上的刻画不如传统方法,如(a)、(b)、(c)中矩形区域的细节绘制,但是从整体绘制效果上来看,本文方法基本上能够达到传统方法的绘制效果.
7 总结
本文利用射线在空间传播的特性,提出向量外延法确定采样点位置,加快采样点位置确定速度.本文算法利用空间几何性质,将投射光线沿X,Y,Z轴进行正交分解,求出相对位置偏移量,只需要一次求交,再根据相邻关系得到所有采样点位置,比三线性插值运算量少,效率得到提高.
图7 绘制效果对比
此算法已经在PC机上编程实现,通过实验数据的分析,本文的算法在耗时上明显比传统方法要低,而且体数据文件大小对绘制的效率影响几乎是线性的,传统方法却几乎是指数级的;另外,从绘制效果上来看,本文的方法在细节的绘制上不如传统方法,但是整体绘制效果与传统方法差距不大.如何进一步提高绘制效果,提升成像质量,是以后重点研究的方向.
1 唐泽圣.三维数据场可视化.北京:清华大学出版社,1999.
2 邢琪.基于光线投射体绘制的医学图像可视化方法研究与实现[硕士学位论文].成都:西南交通大学,2007:1–8.
3 钱鹰,张翔,赖均.改进的光线投射法.计算机工程与设计,2011,32(11):3780–3783.
4 胡英,徐心和.基于光线相关性的快速光线投射算法.中国图象图形学报,2004,9(2):234–240.[doi:10.11834/jig.20040243]
5 文四立,唐卫清,刘慎权.光线追踪显示体数据的新求交算法.计算机学报,1994,17(4):241–249.
6 彭延军,石教英.体绘制技术在医学可视化中的新发展.中国图象图形学报,2002,7(12):1239–1246.[doi:10.3969/j.issn.1006-8961.2002.12.002]
7 李冠峰,黄毓瑜,杨光.体可视化的快速光线投射算法.工程图学学报,2000,(3):97–102.
8 Parker S,Parker M,Livnat Y,et al.Interactive ray tracing for volume visualization.IEEE Trans.on Visualization and Computer Graphics,1999,5(3):238–250.[doi:10.1109/2945.795215]
9 Watt A.3D Commputer Graphics.3rd ed.Reading,MA:Addison-Wesley,1999.
10 黄展鹏,周苏娟,赵洁.直接体绘制加速算法综述.计算机与数字工程,2008,36(3):28–30,73.
Volume Rendering Based on the Improved Accelerate Ray Casting Algorithm
JI Jie,WANG Yun
(Sinopec Geophysical Research Institute,Nanjing 211103,China)
The ray casting is a widely used basic volume rendering algorithm.It can get high quality image but the computation of traditional sampling-points method is overlarge and the rendering speed is very slow.Aimed at the shortcoming,an algorithm that takes the advantage of the recurrence relation of parallel projection line during the sampling process is presented to improve the speed of obtaining the sampling-points and the speed of reconstruction.Finally,the algorithm is realized on PC platform.The result shows that compared with standard ray casting algorithm,the accelerate algorithm does not only improve the rendering speed for nearly ten times but it does not reduce any image quality.It gives a more capable method for the application of medical image 3D reconstruction.
ray casting;direct volume rendering;trilinear interpolation;vector extension
嵇杰,王昀.基于改进光线投射算法的体数据显示.计算机系统应用,2017,26(9):205–209.http://www.c-s-a.org.cn/1003-3254/6021.html
2017-01-12;采用时间:2017-02-23