论文部分内容阅读
三维可视化是科学计算可视化的一部分,它的目标是将科学计算、工程学、医学等领域的数据以三维图像的形式呈现给用户,相比二维图像,它能够提供更加直观、准确和丰富的信息。三维可视化算法因其本身需要进行遍历操作,基于CPU的传统算法效率低下,不能实时交互。而近年来不断发展的图形硬件GPU拥有比CPU更高的浮点计算能力和带宽,基于GPU进行通用计算能够获得良好的加速效果,受到了越来越多研究者的重视。因此,研究基于GPU的三维可视化基础算法,提高三维可视化的效果和速度,具有重要的意义。
目前,三维可视化基础算法主要包括表面绘制算法和体绘制算法两大类,它们的经典代表算法分别是移动立方体算法和光线投射算法。本文重点探讨并完成了以下内容:
1)研究了移动立方体算法的基本原理,实现了它的CPU串行算法。针对CPU串行算法效率不高的问题,设计和实现了基于GPU的移动立方体算法。在该算法中,通过内核函数求取一个前缀和形式的数组,解决了某一具体三角面片顶点的内存写入位置问题。另外还针对GPU硬件的特点,对算法进行了四项优化加速措施。实验结果表明,优化后的基于GPU的移动立方体算法对基于CPU的串行算法加速明显,平均加速比可以达到15倍左右。
2)研究了光线投射算法的原理,设计并实现了它的CPU串行算法和GPU并行算法。在GPU算法中,提出使用最小二乘法进行三次函数拟合以解决边界跟踪的结束判定问题;针对投射光线与立方体求交过程复杂,提出将梁友栋-Barsky剪裁算法拓展到三维,简化了求交的过程。实验结果表明,基于GPU的光线投射算法比基于CPU的光线投射算法效率要高,它的平均加速比可达35倍左右。
3)针对基于GPU的光线投射算法的辅助数组消耗大量内存,可能引起显卡溢出的问题,提出了基于QTM(球面四元三角网格)的GPU光线投射算法,它利用QTM对梯度进行离散化处理,达到了减少内存消耗的目的。实验结果表明,该算法在不损失太多效果和速度的前提下,使得辅助数组所占内存下降80%。
4)研究了三维可视化算法在超声扫描显微镜三维成像方面的应用。为了使三维可视化算法适应于三维超声数据场,提出了一个数据重构的方柱模型,解决了从超声传播时间轴到空间轴的映射。实验结果表明,超声数据的三维可视化可以获得比二维可视化更加直观、丰富、准确和全面的信息。