CN107633546B - 基于gpu的可交互三维流场自适应分辨率动态可视化方法 - Google Patents
基于gpu的可交互三维流场自适应分辨率动态可视化方法 Download PDFInfo
- Publication number
- CN107633546B CN107633546B CN201710827686.5A CN201710827686A CN107633546B CN 107633546 B CN107633546 B CN 107633546B CN 201710827686 A CN201710827686 A CN 201710827686A CN 107633546 B CN107633546 B CN 107633546B
- Authority
- CN
- China
- Prior art keywords
- probability density
- points
- flow field
- data volume
- gpu
- 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.)
- Active
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明属于科学计算可视化领域,具体涉及一种基于GPU的可交互三维流场自适应分辨率动态可视化方法。本发明提出了一种基于GPU的可交互三维流场自适应分辨率动态可视化方法。该方法在视截体中均匀放置种子点,根据预渲染数据体的近平面和远平面纹理,将撒在数据范围外的部分种子点移动到数据范围内。生成概率密度球并渲染成概率密度体,以保证粒子在运动中的均匀分布。最后采用GPU加速渲染技术生成流线,然后利用Tessellation细分曲面技术将流线扩展为管线,实现三维流场的自适应分辨率动态可视化绘制。
Description
技术领域
本发明属于科学计算可视化领域,具体涉及一种基于GPU的可交互三维流场自适应分辨率动态可视化方法。
背景技术
流场可视化是科学可视化领域中重要的一支,随着计算机运算能力的提高尤其是GPU并行处理能力的提升和观测数据、模式数据资料的丰富,针对三维海洋流场的动态可视化成为可能,海洋流场三维可视化对于研究海流的产生、发展、消亡具有非常重要的意义。因此,三维流场可视化得到越来越多的关注,然而,三维流场固有的数据量大、变量多、随时间变化等特点对我们可视化三维流场提出了极大的挑战。人们提出了很多方法来解决这个问题,常见的方法有图标法、基于3D纹理方法、基于特征提取的流线放置方法和基于粒子追踪的几何方法。图标法一般采用矢量箭头,箭头的方向表示流场速度方向,并将速度大小映射到颜色空间,图标法存在严重的遮挡问题,且难以做到实时交互;纹理法采用纹理图像的方式表达流场特征,其特点是能够表达流场的较多细节如:涡旋、源点、鞍点,但是纹理法仍解决不了遮挡问题,无法表达三维流场内部结构,所以该方法更适用于表达二维流场;基于特征提取的流线放置方法侧重于表达流场的某一特征如涡旋等流场拓扑信息而不是表达全部的流场信息,而且该方法需要再可视化之前进行大量的预处理,所以不适用于实时可交互的三维流场可视化。
本发明提出的基于GPU的可交互三维流场自适应分辨率动态可视化方法,属于基于粒子追踪的几何方法一类,本方法在视截体中均匀放置粒子,在数据范围内的粒子基于其位置生成流线。相机的移动不改变撒点的密度,高效、精细地展现三维流场的各种特征。
发明内容
本发明提出了一种基于GPU的可交互三维流场自适应分辨率动态可视化方法。该方法在视截体中均匀放置种子点,根据预渲染数据体的近平面和远平面纹理,将撒在数据范围外的部分种子点移动到数据范围内。生成概率密度球并渲染成概率密度体,以保证粒子在运动中的均匀分布。最后采用GPU加速渲染技术生成流线,然后利用Tessellation细分曲面技术将流线扩展为管线,颜色和透明度由传输函数控制,实现三维流场的自适应分辨率动态可视化绘制。
为实现上述目的,本发明采用如下技术方案,具体步骤为:
(1)将数据体的近平面和远平面渲染成纹理,颜色表示在视截体中的深度;
(2)在视截体中撒点,通过(1)中生成的纹理矫正粒子位置。
(3)通过GPU的transform feedback机制实现粒子在三维流场中的运动,并利用径向基函数设计密度球来控制粒子在三维流场中的分布密度,通过GPU的Tessellation细分曲面技术基于粒子位置生成流管。
(4)通过传输函数对流线的颜色和透明度进行控制。
上述步骤(1)分别绘制数据体(凸面体)的近平面和远平面,将其在视截体中的深度归一化作为颜色。步骤(2)在视截体中撒点,将点的深度值与数据体的远、近平面比较,将落在数据体前或后的点重新撒在数据体中。步骤(3)以粒子的位置作为流线的起始位置,采样数据体获得速度,使用四阶Runge-Kutta后向积分得到下一个位置,在TessellationShader中将粒子扩展为流管。
本发明的有益效果在于:该方法以流线的形式动态展示大型三维流场,自适应分辨率使视口中流线的密度不变,流场局部特征在放大后可显示出更多细节。可以实时交互改变流线的长短、运动快慢和光滑程度,可通过传输函数改变流线颜色和透明度,方便观察和理解复杂流场中的各种现象。
附图说明
图1方法总体流程图。
图2数据体近平面示意图。
图3数据体远平面示意图。
图4扩充概率密度体示意图。
图5自适应分辨率流线效果图。
图6传输函数控制流线效果图。
具体实施方式
本发明在视截体中均匀、密集的分布粒子,渲染数据体远、近平面矫正撒点位置,采样速度场驱动粒子运动,创建概率密度图来控制粒子分布;通过在Tessellation Shader中积分基于粒子位置扩展出流线。包括以下步骤:
1.将数据体的近平面和远平面渲染成纹理
根据数据范围生成数据体,分别渲染数据体的外面和内面得到数据体的近平面和远平面,每个像素在视截体中深度值,是其距近裁剪面的距离。将该深度值除以远、近裁剪面之间的垂直距离,把得到的结果作为颜色值储存。获得数据体远、近平面两张纹理,如图2、图3。
2.在视截体中撒点并矫正撒点位置
在视截体中随机均匀分布新粒子,粒子的属性包括位置和年龄。计算粒子在视截体中的位置,与采样远、近平面纹理中相应位置的颜色值比较。通过改变深度的方式,将在视口坐标中位于数据体前、后的粒子移动到数据体中。
3.通过GPU的transform feedback机制实现粒子在三维流场中的运动
根据粒子位置计算相应纹理坐标采样速度场,并利用四阶Runge-Kutta积分计算粒子的新位置,同时增加粒子年龄,并通过transform feedback机制从GPU流水线上保存到本地端的缓存中,作为下一次运动的起点,从而达到更新粒子位置和年龄的目的,实现粒子在三维流场运动。
4.利用径向基函数设计密度球来控制粒子在三维流场中的分布密度
粒子运动会导致粒子在某处的聚集和空洞,妨碍三维流场整体特征的表达。对于每个粒子,通过径向基函数生成一个中心灰度值大、灰度值随半径远离中心越来越小的球,不同球可叠加,这样粒子密度大的区域灰度值高,粒子密度低的区域灰度值小,没有粒子的区域灰度值为0,并将灰度值保存在三维纹理中,如此便生成了能够表达三维流场粒子分布的概率密度体。概率密度体是根据视截体生成的。通过在视截体中,按与裁剪面平行的方向插入32个平面,平面间距参照OpenGL视口深度精度的变化规律由近及远逐渐稀疏。将粒子球投影到离其最近的平面上,生成概率密度图。32张概率密度图组成概率密度体,保存到帧缓存中。由于OpenGL帧缓存数目限制为8张,在一个帧缓存的四个通道中存入4个平面。通过坐标平移的方式将两个平面渲染到一张概率密度图上,之后通过相应的方式采样,将概率密度体扩充为64层或更多,如图4所示。采样概率密度体,对每一个活跃粒子计算其所在位置的粒子密度,如果超过某一上限值时,有概率的随机剔除该粒子;被剔除的粒子将被赋予一个随机新位置,若新位置对应的粒子密度小于某一阈值,则将其置为活跃粒子,否则置为死亡粒子;对死亡粒子也赋予一个随机的新位置,进行同样的处理。
5.通过GPU的Tessellation细分曲面技术基于粒子位置生成流线
在GPU的Tessellation Control Shader中,以粒子的位置作为流线的起始点,将坐标归一化到0~1采样三维流场,通过四阶Runge-Kutta向后积分得到一个新位置,再以该位置为起点重复上述步骤,一步一步将流线上的关键点计算出来,其余点作为起始点的属性参数传递给Tessellation Evaluation Shader;然后利用Tessellation EvaluationShader把传入的点作为骨干点细分出包围这些点的管线,作为最终的流线表达形式;生成流线时可在Tessellation Control Shader设置细分参数来控制流线上点的最大数目,当流线生长到三维流场边缘时可停止积分;按照用户通过传输函数设置的特征值与颜色的映射关系设置流线上每个点的透明度和颜色。
Claims (2)
1.基于GPU的可交互三维流场自适应分辨率动态可视化方法,具体包括以下基本步骤:
(1)根据预渲染的数据体远、近平面矫正撒点位置:
根据数据范围生成数据体,分别渲染数据体的外面和内面得到数据体的近平面和远平面,颜色为归一化后的深度值;在视截体中均匀撒点,将撒点位置的深度值进行相同的归一化处理并与远、近平面纹理比较;将视线方向上不在数据体范围内的点,通过改变深度的方式移动到数据范围内;
视截体与数据范围有不重合区域;通过将数据体远、近平面渲染成深度纹理,撒点后采样深度纹理对点的位置并进行判断,对撒在数据体前、后的点,计算其距远裁剪面与近裁剪面之比,并以相同的比例重新放置在数据体远、近平面之间;
(2)基于视截体生成概率密度体控制流线密度:
将概率密度图按平行于裁剪面的方向插入到视截体中,其稀疏程度按照OpenGL深度精度变化规律由近到远逐渐稀疏;粒子生成的概率密度球投影在离其最近的概率密度图上;先平移再投影将概率密度图层数扩充数倍;多张概率密度图构成概率密度体;
根据视截体生成概率密度体,按照视口相机深度精度变化规律,离摄像机近的地方有更高的密度控制精度;通过将部分深度的粒子平移后再投影,把多层概率密度图投影到一张纹理上输出,生成概率密度体;
(3)通过传输函数调节流线的颜色和透明度:
将体绘制中的交互方法传输函数运用于矢量场可视化中,将流场特征值映射到颜色和不透明度上,供用户实时调节,突出感兴趣的特征。
2.根据权利要求1所述的基于GPU的可交互三维流场自适应分辨率动态可视化方法,具体包括以下基本步骤,所述步骤(3)中,通过传输函数方便用户调节流线的透明度和颜色,突出特征区域;传输函数使用户自由调节不同特征值对应的颜色和透明度,将不感兴趣区域进行透明处理,使感兴趣的区域凸显出来。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710827686.5A CN107633546B (zh) | 2017-09-14 | 2017-09-14 | 基于gpu的可交互三维流场自适应分辨率动态可视化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710827686.5A CN107633546B (zh) | 2017-09-14 | 2017-09-14 | 基于gpu的可交互三维流场自适应分辨率动态可视化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107633546A CN107633546A (zh) | 2018-01-26 |
CN107633546B true CN107633546B (zh) | 2022-01-07 |
Family
ID=61099863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710827686.5A Active CN107633546B (zh) | 2017-09-14 | 2017-09-14 | 基于gpu的可交互三维流场自适应分辨率动态可视化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107633546B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108460823B (zh) * | 2018-02-11 | 2022-10-11 | 浙江科澜信息技术有限公司 | 一种渲染三维场景模型的显示方法及系统 |
CN108665524B (zh) * | 2018-04-28 | 2021-09-24 | 武汉大学 | 一种基于gpu的大范围离散流场体绘制方法 |
CN110647723B (zh) * | 2019-08-14 | 2023-12-26 | 中国科学院计算机网络信息中心 | 基于原位可视化的粒子数据处理方法、装置和系统 |
CN112802174B (zh) * | 2020-12-31 | 2023-12-15 | 珠江水利委员会珠江水利科学研究院 | 一种基于Web的风场三维动态可视化呈现方法 |
CN114119747B (zh) * | 2021-11-23 | 2023-04-04 | 四川大学 | 一种基于pmd波前检测的三维流场流动显示方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104200529A (zh) * | 2014-08-12 | 2014-12-10 | 电子科技大学 | 基于不确定性的三维目标体表面重构方法 |
CN104867186A (zh) * | 2015-04-29 | 2015-08-26 | 中国海洋大学 | 基于gpu的可交互海洋三维流场动态可视化算法 |
CN105894438A (zh) * | 2014-11-20 | 2016-08-24 | 中国海洋大学 | 基于gpu的多时间帧高感知度二维流线组织算法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9501859B2 (en) * | 2013-07-19 | 2016-11-22 | Adobe Systems Incorporated | Triangle rasterization |
-
2017
- 2017-09-14 CN CN201710827686.5A patent/CN107633546B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104200529A (zh) * | 2014-08-12 | 2014-12-10 | 电子科技大学 | 基于不确定性的三维目标体表面重构方法 |
CN105894438A (zh) * | 2014-11-20 | 2016-08-24 | 中国海洋大学 | 基于gpu的多时间帧高感知度二维流线组织算法 |
CN104867186A (zh) * | 2015-04-29 | 2015-08-26 | 中国海洋大学 | 基于gpu的可交互海洋三维流场动态可视化算法 |
Non-Patent Citations (3)
Title |
---|
GPU Accelerated Marine Data Visualization Method;LI Bo et al;《Springer》;20141109;第964-970页 * |
一种全球尺度三维大气数据可视化系统;梅鸿辉 等;《软件学报》;20160515;第1140-1150页 * |
基于i4Ocean2.0的海洋仿真与三维流场可视化应用研究;纪鹏波;《中国博士学位论文全文数据库》;20161015(第10期);第1-100页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107633546A (zh) | 2018-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107633546B (zh) | 基于gpu的可交互三维流场自适应分辨率动态可视化方法 | |
Mandikal et al. | Dense 3d point cloud reconstruction using a deep pyramid network | |
CN108090947B (zh) | 一种面向3d场景的光线追踪优化方法 | |
EP3211601B1 (en) | Rendering the global illumination of a 3d scene | |
CN104867186B (zh) | 基于gpu的可交互海洋三维流场动态可视化算法 | |
CN108648548A (zh) | 一种脑神经外科虚拟手术训练系统 | |
Correa et al. | Illustrative deformation for data exploration | |
CN104732585A (zh) | 一种人体体型重构的方法及装置 | |
CN104574263A (zh) | 一种基于gpu的快速三维超声重建和显示方法 | |
Eroglu et al. | Fluid sketching―Immersive sketching based on fluid flow | |
CN102999936A (zh) | 一种海洋流场数据的三维流线体绘制算法 | |
CN110706325A (zh) | 一种三维海底环境实时动态渲染方法和渲染系统 | |
Yan et al. | Interactive liquid splash modeling by user sketches | |
Kivi et al. | Real-time rendering of point clouds with photorealistic effects: a survey | |
CN1776747A (zh) | 医学图像中基于gpu硬件加速的体绘制方法 | |
Wu et al. | Skeleton based parametric solid models: Ball B-Spline curves | |
KR101090660B1 (ko) | 포인트 프리미티브를 이용한 실시간 볼륨 렌더링 방법 | |
Vyatkin | Method of binary search for image elements of functionally defined objects using graphics processing units | |
US11803674B2 (en) | Dual mode post processing | |
CN117115398A (zh) | 一种虚实融合的数字孪生流体现象模拟方法 | |
Gai et al. | EGRA-NeRF: Edge-guided ray allocation for neural radiance fields | |
Lu | Information-theoretic exploration for texture-based visualization | |
Vyatkin et al. | Multi-level ray casting of function-based surfaces | |
Qin et al. | A line integral convolution method with dynamically determining step size and interpolation mode for vector field visualization | |
Kolivand et al. | Real-time shadow using a combination of stencil and the z-buffer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |