《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于GPU与Monte-Carlo的体绘制光线投射算法的研究
基于GPU与Monte-Carlo的体绘制光线投射算法的研究
来源:微型机与应用2011年第18期
张春凯, 杨 猛, 刘金刚
(首都师范大学 计算机科学联合研究院,北京 100040)
摘要: 体绘制过程中等距离采样在显示效果不理想的情况下,每减少一个采样步长会增加大量采样点,大大增加了体绘制过程中的计算负担。针对这个问题,提出了一种基于Monte-Carlo积分方法的光线投射实现的实时体绘制算法,采用Monte-Carlo积分方法解决了光照明方程中的积分问题。实验结果表明,在显示效果几乎一样的前提下,采用本文的方法绘制效率提高了十多帧。
Abstract:
Key words :

摘  要: 体绘制过程中等距离采样在显示效果不理想的情况下,每减少一个采样步长会增加大量采样点,大大增加了体绘制过程中的计算负担。针对这个问题,提出了一种基于Monte-Carlo积分方法的光线投射实现的实时体绘制算法,采用Monte-Carlo积分方法解决了光照明方程中的积分问题。实验结果表明,在显示效果几乎一样的前提下,采用本文的方法绘制效率提高了十多帧。
关键词: 体绘制; 光线投射; 蒙特卡洛

 自20世纪80年代科学计算可视化(Visualization in Scientific Computing)的概念被提出后,三维体数据的可视化技术便开始成为一个独立的研究领域,并最终形成了体绘制技术体系[1]。科学计算可视化的基本含义是运用计算机图形学的原理和方法,将科学与工程计算产生的大规模数据转换为图形、图像,以直观的形式表现其物理属性或统计属性。直接体绘制技术是科学可视化的重要研究内容,目前在许多领域得到了广泛应用。传统的直接体绘制有着绘制速度慢、交互性差等缺点。
 体绘制技术是依据三维数据,将所有的体细节同时展现在二维图像的技术,利用体绘制技术,可以在一幅图像中显示更多物质的综合分布情况,并且可以通过不透明度的控制,反映等值面的情况[2]。由于体数据通常具有信息量大、绘制复杂度高的特点,很难满足人们实时显示跟交互的需求,因此,体绘制必须与相应的加速技术和策略相结合。现有的体绘制加速技术主要分为空体素剔除、提前不透明度截止、硬件加速三类,其中前两类属于软件加速,利用对体数据的处理、体数据的渲染流程进行优化等方法来达到加速的目的,但是这种加速方法加速有限,很难达到实时交互。第三类硬件加速又可分为专用图形硬件加速与通用图形处理器加速,但是专用图形硬件成本高,而通用图形处理器比较普及,尤其是可编程GPU(Graphics Processing Uint)的出现,为实现实时体绘制技术提供了强大硬件支持。
 基于GPU的加速技术首先由Cullip和Neumann[3]提出,Cabral等人对这项技术作了改进并验证了体绘制通过硬件加速的可行性[4], KRUGER J等人将提前不透明度截止、空体素剔除技术等应用到基于GPU的体绘制中,进一步提高了体绘制的速度。
 本文采用了Monte-Carlo方法计算光照方程。本文描述了基于GPU的光线投射算法的总体流程,详细描述了如何将Monte-Carlo积分法运用于全局光照模型中, 实验表明,采用随机采样的Monte-Carlo方法比等步长采样的黎曼方法具有更好的可交互性。
1 光线投射算法
1.1光线投射算法

    光线投射算法是一种基于图像序列的直接体绘制算法。其原理是从图像的每一个像素沿固定方向发射一条射线,沿着该射线对离散数据进行等距离采样。通常使用三线性插值作为重建滤波器。简言之,每个重采样点的值通过一个映射表产生一个RGBA四元组,该四元组封装了该点的发射与吸收参数等光学属性[5]。然后体渲染积分器会通过从前向后或者从后向前的方式将颜色与透明度混合来计算该点的像素颜色值,通常的方式是从前向后混合,原理图如图1所示。

    早期的光线投射算法完全基于软件实现,绘制效率受到较大的限制。随着可编程图形硬件的发展,越来越多的光线投射算法开始基于硬件实现, 达到了比纯软件算法高出一个数量级的计算效率。
1.2 基于GPU的光线投射算法
 基于GPU的光线投射技术是将整个渲染体(volume)存储在一个简单的3D纹理中,然后调用片段程序向渲染体中投射光线。在渲染体中的每一个像素/片段都对应了一条射线,这条射线的参数方程可用式(1)表示:
  
    图2说明了通过光栅化对光线投射的入射点、射出点、方向进行初始化。从图3可知,光线的起点是由体包围盒的前表面决定,终点是由体包围盒的后表面决定的。光线在这个空间里进行采样,通常以一个恒定的采样速率进行。现在的GPU,一个简单的渲染通路和光线投射的片段着色程序,通过由前向后的顺序渲染渲染体,就可以生成深度图片(如图1所示)。基于GPU的光线投射算法是在此基础上应用了空体素剔除与提前不透明度等加速算法,其算法流程如图4所示。

 

 

2 在体绘制中应用Monte-Carlo方法
2.1 散射效果

 散射是使光改变其直线传播的一个物理过程,散射现象包括光的折射、反射、透射等现象。简单的散射现象使用Phong光照模型来模拟,举例来说,如果光线照射在一个球形表面上,散射光依据球的表面法线均匀地分布在整个球形表面之上,而镜面光则作用在以几何反射光线为中心的一个扇形区域。更复杂的模型材质效果需要利用双向反射分布函数BRDF(Bidirectional Reflectance Distribution Function)来描述。
 在某一表面上一点x的双向反射分布函数(BRDF)fr(x,λ,wi,wo)说明了光线在该点的反射情况。该函数的参数是:入射光的方向wi、反射光的方向wo、光线的波长?姿,返回值是反射光强占入射光强的百分比。在很多应用程序中,特别是实时的程序中,局部的光照明模型利用点光源组合而成,也就是说光源由一个或者几个独立的光源组成,光线的方向可能有一个或者几个方向。一个光源应用双向反射分布函数得到的渲染公式如下:


    由此说明I′的估算值与积分I的值相同,I′被称为Monte-Carlo积分。本文在原有的基于GPU的光线透射算法基础上运用了Monte-Carlo方法计算式(4),得到结果,从而使GPU在计算过程中采样点减少,速度加快,可交互性增强。
    在计算机图形学中,使用黎曼积分可能会存在以下两个缺点:
    (1)如果f(x)频率特别高,等距离采样不可避免地会造成走样,即使采样点的数目增加特别多,走样现象也还是会特别严重;
    (2)黎曼积分依赖于数据的结构。举例而言,如果对一个三维数据进行采样,可能会采集10×10×10=1 000个采样点,若此时发现得到的结果产生的图像错误非常大,接下来可能会采用11×10×10=1 100个采样点,即在一个方向多采集一个点,就会导致整个采集样本增加100个额外的采样点,造成数据量激增。
    采用Monte-Carlo方法可有效地避免以上两点,针对问题(1),采用Monte-Carlo方法下的随机采样,可能会产生一定的扰动,但是视觉效果比走样更加容易让人接受,因为人们的眼睛对于走样要比扰动敏感的多。对于问题(2),随机采样更加容易避免,不受数据格式的影响,随机采样可以每次只增加一个采样点,直到达到要求的精度为止。

帧率为38 S/s,前者比后者每秒多22帧。对比可得,本文方法提高了体绘制的可交互性。

    由实验结果可以看出,基于GPU与Monte-Carlo的光线投射体绘制有很大的加速效果。
    本文描述了基于GPU的光线投射体绘制机制,用Monte-Carlo积分替代等步长采样来计算光照方程,避免了体数据结构的依赖性,有效消除了失真走样。实验结果表明,本文的算法在基本保持原有视觉效果的前提下大幅提高了渲染效率。
参考文献
[1] HEARN D, BAKER M. 计算机图形学[M].北京:电子工业出版社,2002.
[2] 康玉之.GPU编程与CG语言之阳春白雪下里巴人[M].[出版地不详]:[出版者不详].2009[2010.20]//www.docin.com/P-34717438.html.
[3] CULLIP T, NEUMANN U. Accelerating volume reconstruction with 3D texture hardware[R].Tech.Rep.TR93-027, University of North Carolina at Chapel Hill, 1993.
[4] CABRAL B, CAM N, FORAN J. Accelerated  bolume rendering and tomographic reconstructions using texture mapping hardware [C]. In Proceedings ACM Symposium on  Volume Visualization,1994:91-98.
[5] LOEVY M. Display of surfaces from volume data[J]. IEEE Computer Graphics and Applications,1988,8(3):29-37.
[6] KRGER J, WESTERMANN R. Accleration techniques for GPU-Based volume rendering[C]. In Proceeding IEEE Visual ization 2003, 2003.
[7] HENYEY L, GREENSTEIN J. Diffuse radiation in the galaxy[J]. Astrophysical Journal,1941,93.
[8] ENGEL K, HADWIGER M,KNISS J, et al. Real-time  volume graphics[M]. AK Peters, 2006.
[9] PHARR M, HUMPHRIES G. Physically based rendering[M]. Morgan Kauffman,2004. 

此内容为AET网站原创,未经授权禁止转载。