论文部分内容阅读
随着数字地球技术的发展以及“下一代数字地球”概念的提出,数字地球将更加侧重于平台化构建以及对环境、健康、社会福利等重大问题的解决。党的十八大报告中提出,“提高海洋资源开发能力,坚决维护国家海洋权益,建设海洋强国”,基于数字地球系统对海洋环境模拟研究,深度挖掘海洋背后的规律,符合数字地球的发展趋势,意义重大。作为海洋环境模拟的重要组成部分,海洋矢量场数据的动态可视化方法的研究则必不可少。目前,国内外在Web环境下对海洋矢量场数据动态可视化的研究主要存在三个问题亟待解决:一是可视化方式和效果,即选取合适的方法对海洋矢量场进行建模,使其能够生动、直观的表现矢量场的现状,而且能够动态连续地表现矢量场的基本变化趋势和规律。另外,目前的可视化方法大多数是从单一维度来查看,难以立体三维、多角度地对矢量场进行观察。二是可扩展的可视化引擎技术,目前很多Web的海洋环境数据可视化引擎不是一个完整的WebGIS引擎,不能够提供很多常见的GIS功能,导致后续进行可视化对象扩展时,难以自如对系统进行扩展。三是大规模可视化场景的渲染效率,即由于WebGL标准较新,很多Web三维场景加速方法不成熟,因此常见的提高渲染效率方法是尽量少的渲染场景内容,如可见性剔除,LOD(Level of Details)等,并未对整个可视化的流程采取多种方式协同的加速方法,故在效率提高方面并不明显。针对上述三个问题,本文对WebGL技术下SPH实时流体模拟方法、SPH原理简化的海洋矢量场动态可视化方法以及大规模三维可视化场景的渲染加速算法进行了研究与实现,取得的主要成果如下:(1)提出了一种WebGL技术下SPH实时流体模拟方法本文提出了一个针对WebGL技术的基于多帧缓冲区的SPH实时流体模拟方法框架。针对WebGL技术的特点,在GPU中用多个纹理缓冲区来存储粒子位置以及相关的中间信息,从而减少了CPU和GPU之间的数据传输。同时,对邻域粒子的链表搜索算法改进,利用动态属性的方法对其进行优化,进而提升了邻域粒子的搜索效率。本文提出的算法在粒子数目增加至10万且进一步增加的情况下,效率是经典的Bayraktar算法的2倍,能够满足在Web前端进行三维场景渲染的帧率要求。(2)提出了一种SPH原理简化的海洋矢量场数据动态可视化方法在基于WebGL的SPH实时流体模拟方法的基础上,根据海洋矢量场数据的实时特点及其应用范围,对SPH方法的公式进行简化,并弱化了粒子系统中粒子所受外力的作用,将算法公式进行重新推导,最后给出整个算法实现的流程图。将复杂的SPH方法中核心思想运用于海洋矢量场数据的动态可视化,使得海洋矢量场的表达更加具有层次感与真实感。(3)实现了大规模矢量场数据可视化场景的渲染加速方法本文综合研究和实现了多种渲染优化算法。采用WebCL并行计算、WebWorker多线程和V8引擎分级内存回收算法来实时计算和更新粒子系统的各个粒子的状态,同时利用多帧缓冲区的GPU加速来实现场景的快速更新渲染。实验结果表明,在粒子数增加到10万以上,使用WebCL对10万以上粒子进行邻域粒子搜索效率能够提升3倍,而且使用WebWorker多线程使得在计算当前粒子状态信息时,速度至少提升2倍以上,在使用多帧缓冲区的GPU加速时,绘制并更新20万粒子的速度是传统CPU和GPU方法的2倍,综合使用以上方法使得整个场景的渲染帧率由5帧约提高了15帧。