论文部分内容阅读
医学图像三维可视化是科学可视化的一个重要研究方向,而直接体绘制技术作为医学图像可视化的关键技术近年来发展迅速,受到国内外学者的广泛关注。直接体绘制技术在绘制时不需要生成中间几何图元,而是根据离散的三维体数据标量值直接绘制成像,绘制过程充分利用了体数据标量值来获取全局信息。然而,体数据的数据量非常大,直接体绘制又涉及大量的插值运算和颜色混合运算,巨大的计算量对计算机的性能要求很高,绘制的速度较慢,限制了体绘制的广泛应用。目前所见到的一些体绘制加速技术,多半是以牺牲图像绘制质量为代价来实现加速的,加速性能和加速的扩展空间有限。因此,在保证图像质量的前提下,单纯依靠软件加速技术很难满足实时成像和交互帧率的需求。
当前,可编程图形图形处理器GPU发展迅速,它具有强大的并行计算和多数据流处理能力,数据传输带宽不断提升,显存容量不断增大。较大的显存容量使得中小规模甚至大规模的体数据可以一次性的以三维纹理形式载入显存,而直接体绘制中顶点和片段属性的相关计算非常适合GPU的并行流处理,尤其是GPU灵活的可编程特性为体绘制算法在图形硬件上的实现提供了可能。
本文对现有体绘制软硬件技术进行分析总结,比较了各种体绘制算法的优缺点,并根据图形硬件的可编程特性,提出一种基于GPU的快速光线投射算法。以光线投射算法为基础,用预积分分类法对体数据标量值进行分类转换,然后编写顶点程序和片段程序将光线进入点/离开点的计算和光线遍历的计算移入GPU 中执行,在通用PC的图形硬件上实现了基于GPU的快速光线投射体绘制算法。其关键之处在于能够利用GPU 的可编程特性在片段程序中完成对体数据的遍历、采样和计算,并将得到的采样值分类后进行混合,以产生最终的重建结果。其优势在于:避免了传统体绘制算法CPU 与GPU 之间的多次数据交换;通过计算出光线的离开点来避免动态分支;只需要绘制一个填充四边形即可完成光线投射计算。此外,通过预定义阈值,在片段中实时计算梯度,可以实现添加光照的等值面绘制。
论文最后对所提出的方法进行了实验验证。通过实验表明:本文算法充分利用了通用图形硬件灵活的纹理操作和强大的并行处理能力,解决了体数据的巨大计算量所造成的体绘制瓶颈问题,绘制速度和性能得到极大的提高,能够满足中小规模体数据实时交互的绘制需求。