论文部分内容阅读
随着CPU(中央处理器)的计算速度提升遇到瓶颈以及计算机软件技术的不断发展,GPU(图形处理器)技术已经在各项计算机应用中体现出日益重要的价值,GPU早已广泛应用于电脑游戏、模拟仿真、计算机视觉、图像处理、生物运算等各个领域。 几何处理作为计算机图形学的重要组成部分,已经在计算机图形学的各个领域发挥了巨大的作用。同时,几何处理本身也是与GPU密切相关的,例如几何处理算法程序的输入和输出结果往往需要通过GPU进行显示、绘制。因而,基于GPU的几何处理具有重要的研究意义。 本文围绕着几何处理中的若干关键技术,重点研究了细分曲面的阴影算法、多维凸包计算及网格模型并行解压缩等几方面的GPU加速算法。论文工作包括: 1.分析了GPU加速技术和几何处理的特点以及关系,总结了基于流计算的几何处理加速的常用方法,包括最大化并行执行、优化存储器使用、减少数据传输时间、流数据缩减算法、CPU与GPU相结合、处理Out-of-Core数据。分析了GPU加速的几何处理的通用处理策略。 2.在阴影算法方面,提出了一种性能更好的细分曲面阴影体生成算法。提出了基于CUDA的曲面细分算法,通过并行处理和共享内存结构使表面细分过程更加高效。提出了基于CUDA的阴影体算法,产生阴影轮廓线以及拉伸出阴影体,并通过流式缩减算法对阴影体数组进行压缩,通过优化CUDA和OpenGL的互操作,使得算法的绘制过程更加高效。该算法与之前的GPU的算法相比,可以生成更复杂细分曲面的阴影体,阴影体数组占用显存空间更低,并可显著提升绘制速度。 3.在多维凸包计算方面,提出了基于GPU的顶点剔除算法和基于GPU的凸包生成算法。基于GPU的顶点剔除算法可以显著剔除凸包生成中的冗余数据,并且可以在GPU上获得高倍加速,同时该算法可以适用于多维凸包以及凸包大数据的处理。在变形凸包数据处理中,基于GPU的顶点剔除算法可以获得额外的性能提升。基于GPU的凸包生成算法可以在GPU上对于顶点剔除之后的数据进行并行凸包生成,并且将生成的凸包进行合并。算法总体上可以获得几十倍的性能提升,优于目前其他的并行凸包算法。 4.在网格压缩和解压缩方面,提出了一种新的GPU友好的大型三维网格划分算法,算法着重于最大限度地减少各个分块间重叠的顶点,平衡各个分块的面片数量以便更好地适应并行解压。首先,根据原始网格删除顶点坐标,生成简化模型;然后通过最远测地线顶点采样算法指定每个分块的中心点,并且根据距中心点测地距离进行面片分类;在分类后交换边界顶点以解决锯齿形边界,并且存储边界顶点以便解压之后能合成完整的三维网格。进行GPU友好的网格划分之后,在并行解压缩过程中,每个分块的解压缩运行在GPU的单一线程,通过一些大型三维模型的基准测试,解压缩算法的可以比基于CPU的单核串行算法得到大幅度性能提升。 本文所提出的几个GPU加速的几何处理算法经实验证明是可行的,并且这些算法已经和实际的应用进行了结合,经过实验测试,无论是细分曲面的阴影体、多维凸包、网格模型解压缩等几何处理问题可以获得较大的速度提升。