CN104657333A - 基于gpu的动态二维矢量场流线可视化算法 - Google Patents
基于gpu的动态二维矢量场流线可视化算法 Download PDFInfo
- Publication number
- CN104657333A CN104657333A CN201510070177.3A CN201510070177A CN104657333A CN 104657333 A CN104657333 A CN 104657333A CN 201510070177 A CN201510070177 A CN 201510070177A CN 104657333 A CN104657333 A CN 104657333A
- Authority
- CN
- China
- Prior art keywords
- particle
- streamline
- vector field
- gpu
- density
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Image Generation (AREA)
- Image Analysis (AREA)
Abstract
本发明属于科学可视化领域,具体涉及一种基于GPU的动态二维矢量场流线可视化算法。该算法在矢量场中随机分布粒子,使粒子随矢量场运动,并利用GPU的geometry shader机制生成流线。通过计算以粒子为中心的径向基函数,生成矢量场的概率密度图,以控制粒子的产生、消亡以及多分辨率分布。该算法以流线的形式展示矢量场的全貌,可以实时改变流线的密度、长短、运动快慢和光滑程度,由于流线是连续的且逐条独立,能很好的动态表现复杂的矢量场特征,达到可视化的认知目的。而且该算法基于GPU实现,流线生成和控制的效率更高。
Description
技术领域
本发明属于科学计算可视化领域,具体涉及一种基于GPU的动态二维矢量场流线可视化算法。
背景技术
随着探测技术和数值模拟的发展,大规模、实时的数据越来越庞大,远远超过了CPU的计算和分析能力,阻碍了许多领域的科学研究进展。随着高性能计算时代的到来,GPU为大数据可视化提供了一个新的技术手段,不仅大幅提高了处理能力,而且在成本和功耗上也不需要付出太大的代价。而shading language的成熟,使得人们可以方便有效的处理大量矢量场数据并以清楚直观的形式显示出来。
对二维矢量场进行可视化的方法有很多种,常见的有点图标法、纹理法和矢量线法。点图标方法简单直观,但是不适宜采样密集和变化突兀的矢量场;纹理法能反映整个矢量场的结构,但是容易产生模糊和混淆; 矢量线法利用空间中的曲线走向来描述矢量场。在矢量场中,流线上所有点的瞬时速度都与该线相切。迹线是在一个矢量场中,释放一个无质量的粒子,沿着它在流场中的运动轨迹所形成的矢量线。流线适合研究稳定场,迹线适合研究不稳定场,在稳定场中二者是重合的。
本发明提出的二维矢量场可视化算法,在空间上以流线的形式表现矢量场的瞬时特征,在时间上以迹线的形式表现矢量场的连续特征,并且能对流线进行长短、疏密和光滑度的控制,高效地展现矢量场的各种特征。
发明内容
本发明提出了一种基于GPU的动态二维矢量场流线可视化算法。该算法在矢量场中随机分布粒子,使粒子随流场运动,并利用GPU的geometry shader机制生成流线。通过计算以粒子为中心的径向基函数,生成流场的概率密度图,以控制粒子的产生、消亡以及多分辨率分布。
为实现上述目的,本发明采用如下技术方案,具体步骤为。
(1) 通过GPU的transform feedback机制和径向基函数使粒子运动并控制粒子密度。
(2) 通过GPU的geometry shader将粒子生成流线。
(3) 根据相机距离计算可见流场范围和流线的细分程度,实现流线密度和细节程度的多分辨率。
上述步骤(1)采样矢量场驱动粒子运动并实时生成概率密度图,根据粒子疏密及粒子年龄随机剔除和产生粒子。步骤(2)以粒子的位置作为流线的头部,使用四阶Runge-Kutta积分得到下一个位置,在geometry shader中将粒子扩展为流线。步骤(3)通过设置粒子的径向基函数半径和流线的细分因子生成不同密度的粒子和不同细节程度的流线。
本发明的有益效果在于:该算法以流线的形式展示矢量场的全貌,可以实时改变流线的密度、长短、运动快慢和光滑程度,由于流线是连续的且逐条独立,能很好的动态表现复杂的矢量场特征,达到可视化的认知目的。而且该算法基于GPU实现,流线生成和控制的效率更高。
附图说明
图1基于GPU的动态二维矢量场流线可视化算法流程图。
具体实施方式
本发明在矢量场中密集分布粒子,使粒子随矢量场运动,通过概率密度控制粒子分布;通过积分将粒子扩展为流线;最后根据相机距离更改可见区域的粒子密度及流线的层级细节(如图1所示)。包括以下步骤。
1. 通过GPU的transform feedback机制和径向基函数使粒子运动并控制粒子密度。
在矢量场中随机均匀分布新粒子,粒子的年龄都置为0,粒子均为活动的。将粒子的x,y坐标归一化到0~1之间,作为纹理坐标采样矢量场,使粒子随矢量场运动。粒子的新位置通过四阶Runge-Kutta积分得到,并通过transform feedback机制从GPU流水线上保存到本地端的缓存中,作为下一次运动的起点。粒子运动会导致粒子的聚集和空洞,不利于表现矢量场的整体特征。对于每个粒子,通过径向基函数生成一个中间灰度值大、边缘灰度值小的圆片,不同圆片可叠加,这样粒子密度大的区域灰度值高,粒子密度低的区域灰度值小,没有粒子的区域灰度值为0,如此便生成了矢量场的概率密度图。采样概率密度图,若粒子对应的概率密度大于某一阈值,则随机去除粒子。对于要去除的粒子,随机赋予其一个新位置,若该新位置的概率密度小于某一阈值,则确认其为一新粒子(原粒子自然消失),否则将原粒子置为死亡。对于之前已经死亡的粒子也赋予一个随机新位置,进行同样的判断。
2. 通过GPU的geometry shader将粒子生成流线。
GPU的geometry shader能够改变图元的类型,例如将点生成线。以粒子作为流线的头部,采样矢量场,通过四阶Runge-Kutta积分得到流线上的第二个点,再以该点的位置采样矢量场进行积分,得到第三个点,重复上述步骤,点数达到设定值后或采样到矢量场边缘时停止,将这些点连起来便生成了流线,若点之间距离足够近则流线能够相当光滑。在生成流线时同时考虑粒子的年龄设置流线整体的透明度,而且流线的尾部应该比头部更透明,这样流线生成和消失时会有淡入和淡出的效果,流线运动时也更有动感。
3. 根据相机距离计算可见流场范围和流线的细分程度,实现流线密度和细节程度的多分辨率。
在相机拉远和拉近的过程中,流线的疏密和细节程度应该相应的发生变化。根据视域锥和相机距离可以计算出矢量场的可见范围,对该范围内的流线进行控制,范围外的流线使用最稀疏的密度和细节层次。密度的控制通过改变径向基函数的半径大小进行:若要增大密度则减小半径,反之则增大半径。流线的细节控制通过在GPU的Tessellation shader中设置流线的细分因子,实现流线不同程度的细化。
Claims (2)
1.基于GPU的动态二维矢量场流线可视化算法,具体包括以下基本步骤:
(1)通过GPU的transform feedback机制和径向基函数使粒子运动并控制粒子密度,其特征在于:在矢量场中随机均匀的分布粒子,记录粒子的位置和年龄,粒子的初始年龄均为0;将粒子的位置归一到0~1之间采样矢量场,获得粒子所在位置的速度,通过四阶Runge-Kutta积分和transform feedback更新粒子的位置,同时增加粒子的年龄;通过径向基函数生成粒子的概率密度图,当活动粒子所在位置的密度超过某一上限值时,随机去除过密粒子;被剔除的粒子将被赋予一个随机新位置,若新位置对应的密度小于某一阈值,则产生了一个新粒子,否则将该粒子置为死亡;对于之前已经死亡的粒子也赋予一个随机新位置,进行同样的判断;(2)通过GPU的geometry shader机制将粒子生成流线,其特征在于:在GPU的geometry shader中,以粒子的位置作为流线的头部,将坐标归一化到0~1采样矢量场,通过四阶Runge-Kutta积分得到一个新位置,再以该位置为起点重复上述步骤,一步一步将流线生长出来;生成流线时可设置流线上点的最大数目,当流线生长到矢量场边缘时可停止积分;不同粒子年龄对应流线不同的透明度,粒子的新生和死亡对应流线的淡入和淡出;(3)根据相机距离计算可见流场范围和流线的细分程度,实现流线密度和细节程度的多分辨率。
2.根据权利要求1所述的基于GPU的动态二维矢量场流线可视化算法,其特征在于,所述步骤(3)中,根据视域锥和相机距离,计算出流场的可见范围,对此范围内的流线通过改变径向基函数的半径大小进行密度控制,同时根据相机远近在GPU的Tesselllation shader中设置流线的细分因子,实现流线不同程度的细化;可见范围外的流线保持最稀疏的分布和最粗糙的结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510070177.3A CN104657333B (zh) | 2015-02-11 | 2015-02-11 | 基于gpu的动态二维矢量场流线可视化算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510070177.3A CN104657333B (zh) | 2015-02-11 | 2015-02-11 | 基于gpu的动态二维矢量场流线可视化算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657333A true CN104657333A (zh) | 2015-05-27 |
CN104657333B CN104657333B (zh) | 2017-06-20 |
Family
ID=53248483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510070177.3A Active CN104657333B (zh) | 2015-02-11 | 2015-02-11 | 基于gpu的动态二维矢量场流线可视化算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657333B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104899914A (zh) * | 2015-06-26 | 2015-09-09 | 东北大学 | 基于流线生长法的纹理生成方法 |
CN104915974A (zh) * | 2015-04-29 | 2015-09-16 | 中国海洋大学 | 基于gpu的二维多分辨率流线可视化方法 |
CN105844036A (zh) * | 2016-03-30 | 2016-08-10 | 中国科学院地理科学与资源研究所 | 一种基于随机粒子的涡旋流场动态可视化方法 |
CN106875458A (zh) * | 2017-03-01 | 2017-06-20 | 中国海洋大学 | 并行化二维流场多元数据动态可视化系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011133606A2 (en) * | 2010-04-19 | 2011-10-27 | The Regents Of The University Of California | Real-time volumetric image reconstruction and 3d tumor localization based on a single x-ray projection image for lung cancer radiotherapy |
CN102903146A (zh) * | 2012-09-13 | 2013-01-30 | 中国科学院自动化研究所 | 用于场景绘制的图形处理方法 |
CN103700143A (zh) * | 2013-12-30 | 2014-04-02 | 四川九洲电器集团有限责任公司 | 一种基于gpu多遍绘制的三维动态海洋模拟方法 |
-
2015
- 2015-02-11 CN CN201510070177.3A patent/CN104657333B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011133606A2 (en) * | 2010-04-19 | 2011-10-27 | The Regents Of The University Of California | Real-time volumetric image reconstruction and 3d tumor localization based on a single x-ray projection image for lung cancer radiotherapy |
CN102903146A (zh) * | 2012-09-13 | 2013-01-30 | 中国科学院自动化研究所 | 用于场景绘制的图形处理方法 |
CN103700143A (zh) * | 2013-12-30 | 2014-04-02 | 四川九洲电器集团有限责任公司 | 一种基于gpu多遍绘制的三维动态海洋模拟方法 |
Non-Patent Citations (2)
Title |
---|
RONG LI等: "Procedural generation and real-time rendering of a marine ecosystem", 《JOURNAL OF ZHEJIANG UNIVERSITY-SCIENCE C(COMPUTERS & ELECTRONICS)》 * |
宋丽丽: "面向海量的海洋数据动态可视化与实时绘制技术研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104915974A (zh) * | 2015-04-29 | 2015-09-16 | 中国海洋大学 | 基于gpu的二维多分辨率流线可视化方法 |
CN104915974B (zh) * | 2015-04-29 | 2018-08-07 | 中国海洋大学 | 基于gpu的二维多分辨率流线可视化方法 |
CN104899914A (zh) * | 2015-06-26 | 2015-09-09 | 东北大学 | 基于流线生长法的纹理生成方法 |
CN104899914B (zh) * | 2015-06-26 | 2017-11-24 | 东北大学 | 基于流线生长法的纹理生成方法 |
CN105844036A (zh) * | 2016-03-30 | 2016-08-10 | 中国科学院地理科学与资源研究所 | 一种基于随机粒子的涡旋流场动态可视化方法 |
CN105844036B (zh) * | 2016-03-30 | 2018-12-21 | 中国科学院地理科学与资源研究所 | 一种基于随机粒子的涡旋流场动态可视化方法 |
CN106875458A (zh) * | 2017-03-01 | 2017-06-20 | 中国海洋大学 | 并行化二维流场多元数据动态可视化系统 |
CN106875458B (zh) * | 2017-03-01 | 2020-03-20 | 中国海洋大学 | 并行化二维流场多元数据动态可视化系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104657333B (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111127610B (zh) | 一种点云数据三维可视化渲染方法与计算方法 | |
CN101271587B (zh) | 一种基于过渡光贴图的光照和阴影绘制方法 | |
CN101944238B (zh) | 基于拉普拉斯变换的数据驱动人脸表情合成方法 | |
CN104867186A (zh) | 基于gpu的可交互海洋三维流场动态可视化算法 | |
CN102509357B (zh) | 基于笔触的铅笔素描模拟和绘制系统 | |
CN104657333A (zh) | 基于gpu的动态二维矢量场流线可视化算法 | |
CN111639426B (zh) | 一种风特征时空过程可视化方法 | |
Yang et al. | Recursive-nerf: An efficient and dynamically growing nerf | |
CN103700134A (zh) | 基于可控制纹理烘焙的三维矢量模型实时光影延迟着色渲染方法 | |
Li et al. | Blinkflow: A dataset to push the limits of event-based optical flow estimation | |
Yu et al. | 3D CNN-based accurate prediction for large-scale traffic flow | |
Madill et al. | Target particle control of smoke simulation | |
Fan et al. | An octree-based proxy for collision detection in large-scale particle systems | |
CN114549714A (zh) | 基于WebGL三维风向图可视化的渲染方法 | |
CN105844036B (zh) | 一种基于随机粒子的涡旋流场动态可视化方法 | |
CN102364522B (zh) | 一种基于全球划分的大规模气象体数据绘制方法 | |
CN102663958A (zh) | 一种顾及拓扑关系的大规模矢量地图快速综合的方法 | |
CN104036552B (zh) | 基于最远点优化的蓝噪声网格生成方法 | |
CN108875275B (zh) | 一种基于大规模流线的矢量场实时仿真方法及系统 | |
CN116958367A (zh) | 一种快速组合并渲染复杂神经场景的方法 | |
CN110738719A (zh) | 一种基于视距分层优化的Web3D模型渲染方法 | |
CN102096940A (zh) | 影像物件的隐藏面移除的预先拣选方法及系统 | |
Xu et al. | A g-octree based fast collision detection for large-scale particle systems | |
CN113343996B (zh) | 一种基于深度卷积网络等离子定向能量沉积面积计算方法 | |
CN102592312B (zh) | 基于平行空间的光线投射高度场可视化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |