基于GPU的多时间帧高感知度二维流线组织算法制造技术

技术编号:13595845 阅读:77 留言:0更新日期:2016-08-26 13:04
本发明专利技术提出了一种基于GPU并行计算的多时间帧高感知度二维流线组织算法,将纹理作为主要的数据载体和中间过程辅助工具,来实现不同时间点的数据读入及流线生成,每相同时间间隔下,为显存调入两张相邻时间帧数据纹理供GPU使用,对这两帧数据纹理进行插值,以获得更加平滑的流线动画效果;整个几何流线的生成过程都在GPU中进行,能节省大量的时间成本;基于矢量点速率大小来控制流线密度,高速率区绘制稠密流线,低速率区绘制稀疏流线,也可让用户交互设置感兴趣速度区间,指定区间内绘制稠密流线,区间外绘制稀疏流线;对已生成的流线轨迹符号映射,以符号更加形象逼真的表达矢量场的流动情况,通过对符号的纹理坐标改变,实现符号动画的效果,在帧与帧过度时,通过对符号的变形操作,实现更加流畅的动画效果。

【技术实现步骤摘要】

本专利技术涉及GPU并行计算、海洋可视化、二维流线几何算法领域,具体为一种基于GPU并行计算的多时间帧高感知度二维流线组织算法。
技术介绍
矢量场可视化是科学计算可视化中最具挑战的研究课题之一,它以直观的图形图像显示矢量场的运动,透过抽象数据有效洞察矢量域内涵本质和变化规律,广泛应用于计算机流体力学、航空动力学、大气物理和气象分析等领域。目前,矢量场可视化方式可以主要分为三种:一,基于网格点的直接可视化;二,基于几何计算的可视化;三,基于纹理计算的可视化。基于网格点的直接可视化主要方式是矢量箭头表示法,其优点是原理简单、计算简便,在CPU中可以快速呈现绘制效果,缺点是矢量箭头是基于网格点的可视化表达,网格点以外的矢量场领域无法被可视化出来,其表达的矢量场信息非常有限,只能大概体现矢量场的特征情况;基于几何计算的可视化方法,主要有Streamline,StreakLine,TimeLine等技术,其优点是能够非常精准的模拟矢量场的轨迹位置,缺点是,目前成熟的几何计算可视化方法都是需要在CPU中进行大量的数据预处理,对于小数据可视化来说,其时间耗散还勉强可以接受,但对于大数据而言,其时间耗散是一个非常致命的问题,假设显存足够、计算机配置良好,处理一个GB级以上的数据,其时耗必须以天做基数计算。同时,在正常情况下,显存也是一个必须要考虑的问题。基于纹理计算的可视化方法,最常见的方法是LIC(Line Integral Convolution)方法,基于GPU运算,可比CPU提高三倍以上的处理速度,传入一张白噪声纹理,通过流线积分卷积方式向前向后积分,模拟矢量场轨迹,其优点是速度快、绘制的是高密度可视化图形,能够表达矢量域的特征细节,缺点是,该绘制技术是基于像素的积分卷积方式,绘制出的流线轨迹并不能像几何计算那样精准,是相对较粗略的流线绘制技术。而目前对矢量流线的动画技术大概分为两种,其一,多时间帧替换方式,本方式在CPU中生成多时间帧的流线几何数据,再随时间更换帧数据,以此达到动画的效果,本方法的优点在于,原理简单实现容易;缺点在于,对内存、显存有一定的要求、帧替换过渡不一定流场,同时属于时耗性计算;其二,基于粒子追踪的动画方式,本方式在GPU中实现,实时改变流线的纹理坐标位置,实现流线的流动。其优点是动画流畅、美观,缺点是不适合不稳定场的表达。本专利提出的基于GPU的多时间帧高感知度二维流线组织算法,在GPU中通过几何运算,实现流线的数据预处理,能在保证较小时耗的基础之上实现较为精确的流线绘制,同时,以纹理为载体、实时传入2张相邻时间点的矢量场数据(而非白噪声),通过反距离插值处理, 将时间帧细化,能在极低的显存需求下对不稳定场实现流线动画效果;其次通过笛卡尔网格控制原理,基于流场速率来控制流线密度,默认情况下使高速区能表达更多的矢量场细节、低速区表达较少的矢量场细节,在处理大数据时,能节省更多的处理时间,同时,增加交互窗口,使矢量场表达更加具有交互性能,能基于用户的喜好,对感兴趣区域显示更多细节其他区域显示较少细节;最后,通过对流线预处理轨迹进行符号映射,用符号来形象表达流向、流速,并通过变形效果来实现时间帧之间的流场过渡,能达到更加优秀的方向性和视觉效果。
技术实现思路
基于GPU并行计算的多时间帧高感知度二维流线组织算法,从以下几个方面实现:(1)多时间帧矢量数据预处理。创建多个纹理,每个纹理存储一个时间点的矢量数据,通过纹理单元的R/G/B/A值来存储每个矢量数据的分量速度。将所有的纹理都存在同一个文件目录下,方便调用。(2)矢量数据纹理显存调度。由用户设定调度时间间隔,每时间间隔下只调入两张相邻时间点数据纹理,一旦纹理使用完以后,即可调出显存,再调入新的相邻纹理,在整个流线动画过程中,保证显存中只具有两张数据纹理供GPU计算使用,以节省计算机显存。(3)GPU中基于时间帧的插值。显存中的两张矢量数据纹理代表着该时间区域的最早时间帧T1的数据与最晚时间帧T2的数据,则在T1与T2之间的矢量数据需要通过实时的插值来获得,获得计算机的当前运算时间信息,计算其在T1、T2中的占比,通过时间占比与T1、T2的矢量数据信息,来计算当前时间下的矢量数据。(4)基于GPU的几何流线生成。在GPU中进行流线的几何计算而非像素估算,需要借助一张寄存中间变量的二维纹理M以及一张充当笛卡尔控制网格的三维纹理T,由用户指定流线间距阈值Dsep,由第一个种子点开始通过Runge-Kutta四阶积分向前向后积分出流线轨迹,新生成的积分点P,需要映射到笛卡尔控制网格T中,进行合法性检查,如果P周围没有一个点使得该点到P的距离小于Dsep那么该点为合法点,将该点存入三维纹理T的对应纹理单元中,做合法性检测使用,同时也将该点存入对应二维纹理M的对应纹理单元中,以使得生成下一个种子点。(5)矢量点速率控制流线生成密度。本算法通过矢量点的速率来控制流线间距大小,以此达到高速区展现更多矢量场细节,低速区展现较少矢量场细节,以节约运算时间成本的目的。假设当前矢量点的速率为vcurrent,矢量流场域中最大速度为vmax,最小速度vmin,用户设定的最大流线间距为Dmax,则当前矢量点的流线间距应该控制在Dcurrent范围内:Dcurrent=(vmax-vcurrent)(vmax-vmin)Dmaxdmin,vcurrent>v0,vcurrentv0]]>同时也可以凭借此方法,实现与用户的交互功能,由用户设置感兴趣速度区间,对此区间的流线进行稠密绘制(即流线间距保持在较小水平),此区间外的流线进行稀疏绘制(即流线间距保持在较大水平),在不失去高关注区域流线细节的前提下,节省时间开销。(6)符号映射。在GPU中对生成的流线轨迹点进行符号映射,用形象生动的符号形象来仿真流场的流动方向和大小,更加逼真美观。由用户指定一帧流线的生命周期,在生命周期结束之前,符号动画只凭借当前时间下的矢量数据进行,当前帧流线生命周期结束,则符号开始以下一帧矢量数据模式流动,在进行帧与帧之间的动画切换时,对映射符号进行变形处理,使得动画过渡自然,通过变换符号的纹理坐标,实现符号的流动。附图说明图1基于GPU与数据纹理的矢量场流线组织策略图2基于矢量点速率的流线密度控制策略具体实施方式为了实现对矢量流场的高感知度图像表达,下面进行详细的说明:1.基于GPU与数据纹理的矢量场流线组织策略基于GPU并行计算的二维流线表达,其步骤如图1所示:(1)需对原始多时间点矢量数据进行数据预处理,将单个矢量场数据的速度分量存入创建的二维纹理单元中,每张纹理存储一个时间点数据,多张纹理以一定的命名规律保存在同一个文件目录下;(2)由用户设定时间间隔,该间隔时间内调入相邻两张纹理进入显存中,做计算支持,当时间间隔结束、显存中使用完毕的纹理将被调出显存,重新从外存中调入新的数据纹理进入显存中,进行运算支持,始终保持显存中只存在两张数据纹理;(3)在GPU运算过程中,由用户设置一帧流线的生命周期,则生命周期开始时,流线按照该帧数据模式生成、动画,生命周期结束,流线则转入下一帧数据模式进行生成与动画;(4)创建一张三维纹理T用作笛卡尔控制网格、一张二维纹理M用作中间变量存储本文档来自技高网
...

【技术保护点】
基于GPU并行计算的多时间帧高感知度二维流线算法,其特征在于3个部分:(1)本算法中的纹理主要作为数据载体和中间过程辅助工具而存在(而非纹理白噪声),将矢量场的不同时间点数据存入不同纹理像素中,每固定时间距离下,实时向GPU中传入2张相邻时间帧纹理,并及时更换纹理,以做动画计算,一方面保证了显存中只载入2张纹理,不至于显存不足,另一方面,能实现流场的动画效果。(2)本算法是基于GPU并行计算的矢量场几何流线运算方法,而非基于GPU的像素估计流线运算,也非基于CPU的几何流线运算方法;(3)本算法基于矢量点速率来控制流线密度,对高速区域能表达更多细节,低速区域表达较少细节,节省了处理时间又不至于忽略用户感兴趣的区域细节。

【技术特征摘要】
1.基于GPU并行计算的多时间帧高感知度二维流线算法,其特征在于3个部分:(1)本算法中的纹理主要作为数据载体和中间过程辅助工具而存在(而非纹理白噪声),将矢量场的不同时间点数据存入不同纹理像素中,每固定时间距离下,实时向GPU中传入2张相邻时间帧纹理,并及时更换纹理,以做动画计算,一方面保证了显存中只载入2张纹理,不至于显存不足,另一方面,能实现流场的动画效果。(2)本算法是基于GPU并行计算的矢量场几何流线运算方法,而非基于GPU的像素估计流线运算,也非基于CPU的几何流线运算方法;(3)本算法基于矢量点速率来控制流线密度,对高速区域能表达更多细节,低速区域表达较少细节,节省了处理时间又不至于忽略用户感兴趣的区域细节。2.根据权利要求1所述的基于GPU并行计算的多时间帧高感知度二维流线算法,特征(1)中表述,本算法的纹理主要用于两个地方:其一,预处理数据阶段,将矢量场单个时间帧数据存于同一类型的不同纹理文件中,存放于同一目录下,由用户设置调入纹理的时间间隔,每时间段中只调入相邻两时间纹理,进入显存,在GPU中根据动画的时间,基于显存中已存的两张数据纹理做插值,得出当前动画时间帧的矢量场数据,以达到流畅地动画帧更换效果;其二,几何流线生成阶段,需要在GPU...

【专利技术属性】
技术研发人员:田丰林陈戈马纯永蒋雨池
申请(专利权)人:中国海洋大学
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1