论文部分内容阅读
随着图形业界需求的不断提升和硬件设计制造工艺的发展,现代图形处理器(Graphics Processing Unit,简称GPU)已经不只是一个单纯处理大量几何面片的3D加速卡,而是具备强大浮点数运算能力,超越多核CPU的并行处理能力和良好可编程能力的高性能处理器。越来越多的研究者开始认识到,灵活运用GPU这些特性可以有效地加速计算、模拟和绘制过程,获得实时的性能效果。另外把数据和相应的计算部分放到GPU上,可以将计算结果直接可视化输出,避免了CPU和GPU间频繁的数据交换,可以极大提高绘制效率。基于这些理由,本文对使用GPU加速实时模拟和绘制中的若干问题进行了研究,主要的工作和贡献有:
①提出了一个在GPU上模拟绘制水力侵蚀现象的快速方法。据我们所知,这是首个在GPU上完成此现象模拟的研究工作。以往方法存在着模型不精确,基于CPU的实现性能较低等问题。针对这些问题,我们首先设计了一个新的水力侵蚀模型,根据改进的浅水波方程计算地表流体的速度场,再利用此速度场计算流体对地表的侵蚀作用。此模型改善了模拟效果,提高了计算效率。然后我们将此模型映射为GPU上的多遍绘制过程,加速模型的计算和可视化。实验结果表明此方法能够真实模拟自然界中降雨河流等水体所产生的侵蚀效果,实时处理大尺寸地形上的模拟计算,效率相对于已有方法获得了数十倍的提升。这种高效率的实时模拟方法在地形编辑等领域有很好的应用前景。
②提出了一个完全运行在GPU上的水平集方法框架。水平集方法是一种用于追踪动态变化界面的数值方法,在计算机科学领域有着广泛的应用。但是此方法存在两个问题:数值耗散导致计算结果不精确,计算量庞大。我们首先对一种已有的水平集方法做出改进和简化,然后将其并行化,使用GPU来加速水平集的计算。实验结果表明此方法成功减少了数值耗散,提高了水平集方法的准确性,可以实时地计算和绘制大尺寸二维网格和中等尺寸三维网格上的动态水平集,相对于CPU实现,效率提高近二十倍,可较好地用于实时流体模拟和流场的可视化。
③提出了一个快速去除体数据中空白空间的预处理方法。在现有的实时体绘制方法中,大量资源被浪费在绘制空白冗余空间上,需要通过预处理方法去除这些空白空间以提升绘制效率。已有一些预处理方法计算较为耗时,去除空白空间的效果不够理想,产生了较多的包围盒而降低优化效果。针对这些问题,我们提出了一种基于kd树结构的预处理方法,逐层去除体数据中的空白空间,绘制剩余有效数据。预处理方法的快速计算依赖于一个求和体积表的建立。实验结果表明此方法预处理时问短,使用很少包围盒就可去除较多空白空间,有效提高了体绘制效率。总的说来,本文在利用GPU加速模拟和绘制这个课题方向上做出了有益的探索。