CN114676616A - 一种三维场景下流体风场图渲染方法 - Google Patents
一种三维场景下流体风场图渲染方法 Download PDFInfo
- Publication number
- CN114676616A CN114676616A CN202111437800.6A CN202111437800A CN114676616A CN 114676616 A CN114676616 A CN 114676616A CN 202111437800 A CN202111437800 A CN 202111437800A CN 114676616 A CN114676616 A CN 114676616A
- Authority
- CN
- China
- Prior art keywords
- value
- wind field
- rendering
- dimensional scene
- data
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/25—Design optimisation, verification or simulation using particle-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/10—Numerical modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/08—Fluids
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明涉及一种三维场景下流体风场图渲染方法,包括以下步骤:步骤1):开始渲染模型:根据当前的三维场景视域和获取到的风场数据,其中,风场数据为等步长经度、纬度划分的网格数据,每个格点具有经度lng、纬度lat、速度值speed、方向值dir;并依据下列公式计算出横方向向量值u、纵方向的向量值v:u=‑speed*sin(dir);v=‑speed*cos(dir);步骤2):根据风场数据生成棋盘网格模型,网格模型对象中包括网格的四周边界值xmin、xmax、ymin、ymax、行数cols、列数rows,每个棋盘网格具有以下数据:对应的所在行x,所在列y、经度lng、纬度lat、横方向向量值u、纵方向的向量值v;步骤3):根据风场范围生成随机的多个粒子数据,每个粒子数据具备的属性数据有:初始坐标经度lng、纬度lat。
Description
技术领域
本发明属于三维图像建模技术领域,具体涉及一种三维场景下流体风场图渲染方法。
背景技术
三维渲染技术随着移动互联网应用的发展得到飞速发展。中国专利《一种大场景的三维渲染方法及系统》(申请号201710772069.X;申请日2017.08.31) 公开了一种三维渲染方法,提及电子地图采用三维渲染,其方案是将当前待渲染场景三维渲染所需的渲染数据动态加载到内存;确定当前待渲染场景对应的预设渲染加速规则,并依据所述预设渲染加速规则,调用所述渲染线程对当前待渲染场景中的多个待渲染物体进行三维渲染。其提出了多个渲染对象在一个批次内渲染完成或者多个模型数据合并确定为同一个渲染批次的方案,加速渲染,以提高渲染效果。但是该渲染方案在实际应用中,静态对象适用效果好,对于动态对象,实际渲染中流动性的模拟的精度性有待提高,用户体验需要进一步改善。中国专利《三维大场景的移动过程中的场景渲染过渡方法》(申请号201810288385.4;申请日2018.04.03)公开了一种三维场景渲染过渡方法,提及如百度街景和谷歌街景采用的渲染方法,提出了三维模型建好后的三维模型进行贴图,能够更为流畅的对移动过程中的场景渲染进行过渡,但是对于如风场图这种多变化特征、多变化属性的动态对象如何高精度划分、如何高精度数值化模拟并没有给出实现方案。
发明内容
本发明目的是提供一种三维场景下流体风场图渲染方法,解决背景技术中的问题,对于流体风场图这种动态对象高精度划分、高精度数值化模拟,改善三维场景下流体风场图数值模拟及可视效果,且渲染方法也简单。
为了实现以上目的,本发明采用的技术方案为:一种三维场景下流体风场图渲染方法,包括以下步骤:
步骤1):开始渲染模型:根据当前的三维场景视域和获取到的风场数据,其中,风场数据为等步长经度、纬度划分的网格数据,每个格点具有经度lng、纬度lat、速度值speed、方向值dir;并依据下列公式计算出横方向向量值u、纵方向的向量值v:
u=-speed*sin(dir)
v=-speed*cos(dir);
步骤2):根据风场数据生成棋盘网格模型,网格模型对象中包括网格的四周边界值xmin、xmax、ymin、ymax、行数cols、列数rows,每个棋盘网格具有以下数据:对应的所在行x,所在列y、经度lng、纬度lat、横方向向量值u、纵方向的向量值v;
步骤3):根据风场范围生成随机的多个粒子数据,每个粒子数据具备的属性数据有:初始坐标经度lng、纬度lat、粒子存活的生命周期次数age;
步骤4):循环所有粒子对象,根据每个粒子的当前经纬度位[lng,lat]值计算出该粒子在棋盘网格中的横纵坐标位置[x,y];
步骤5):根据横纵坐标位置[x,y],获取当前位置相邻的4个经纬网格坐标 [x1,y1]、[x1,y2]、[x2,y1]、[x2,y2]及其对应的u、v值;
步骤6):通过在x方向上进行两次线性插值计算,然后在y方向上进行一次插值计算步骤7:根据粒子当前所在位置的经度lng、纬度lat和计算得到的横方向向量值u、纵方向向量值v,步长step常量值,计算出粒子下一次要到达的位置的经度值nextLng和纬度值nextLat;计算公式如下:
nextLng=lng+step*u
nextLat=lat+step*v;
步骤8):粒子新的位置值[nextLng、nextLat]判断是否在当前三维场景视域内,如果不在当前三维场景视域范围内,结束渲染;
步骤9):粒子根据计算得到的新的位置值[nextLng、nextLat]进行移动,渲染到新的位置,形成流动的结果,并且粒子的生命周期age值减1;
步骤10):如果粒子的生命周期age值为0,结束渲染;
步骤11):如果三维场景内的粒子数少于设置的常量值时,再次生成随机的新的粒子进行渲染;
步骤12):在三维场景中渲染出动态的流体风场图;结束渲染。
进一步的,步骤6)中通过下面公式分别计算出粒子所在x、y坐标位置的u 值和v值:
进一步的,步骤11)中粒子数常量值为1万。
进一步的,步骤12)中通过视觉处理器在三维场景中渲染出动态的流体风场图。
再进一步的,步骤3)中初始坐标经度lng、纬度lat为一个集合值。
本发明的技术效果在于:对于流体风场图这种动态对象高精度划分、高精度数值化模拟,改善三维场景下流体风场图数值模拟及可视效果,且渲染方法也简单,且实现了风场动态数据的缓存显示,满足三维场景下风场变化过程高精细度的展示。
附图说明
图1为本发明的具体实施例的流程图;
图2为本发明的具体实施例中的网格图;
图3为本发明的具体实施例网格中的坐标图。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照附图,本发明的具体实施例:一种三维场景下流体风场图渲染方法,包括如下步骤:
步骤1):开始渲染(模型):根据当前的三维场景视域(数据集)和获取到的风场数据,其中,风场数据为等步长经度、纬度划分的网格(数据),每个格点具有经度lng、纬度lat、速度值speed、方向值dir;并依据下列公式计算出横方向(x方向)向量值u、纵方向(y方向)的向量值v:
u=-speed*sin(dir)
v=-speed*cos(dir);
步骤2):根据风场数据生成(棋盘)网格模型,网格模型对象(数据)中包括网格的四周边界值xmin(所在行x最小值)、xmax(所在行x最大值)、 ymin(所在列y最小值)、ymax(所在列y最大值)、行数cols、列数rows,每个(棋盘)网格具有(以下数据):对应的所在行x,所在列y、经度lng、纬度lat、横方向(x方向)向量值u、纵方向(y方向)的向量值v;
步骤3):根据风场范围生成随机的多个粒子(数据),每个粒子(数据) 具备的属性数据(子数据)有:初始坐标经度lng、纬度lat、粒子存活的生命周期次数age;
步骤4):循环所有粒子对象,根据每个粒子的当前经纬度位[lng,lat]值计算出该粒子在(棋盘)网格中的横纵坐标位置[x,y];
//根据经纬度,算出棋盘格位置
toGridXY(lng,lat){ let x=((lng-this.xmin)/(this.xmax-this.xmin))*(this.cols-1); let y=((this.ymax-lat)/(this.ymax-this.ymin))*(this.rows-1);return{x,y}; }
步骤5):根据横纵坐标位置[x,y],如图3所示,获取当前位置相邻的4个经纬网格坐标[x1,y1]、[x1,y2]、[x2,y1]、[x2,y2]及其对应的u、v值(分别是Q11、Q21、Q12、Q22);
步骤6):通过在x方向(横坐标)上进行两次线性插值计算,然后在y方向(纵坐标)上进行一次插值计算,具体的,通过下面公式分别计算出粒子所在x、y(横、纵)坐标位置的u值和v值:
步骤7:根据粒子当前所在位置的经度lng、纬度lat和计算得到的横方向 (x方向)向量值u、纵方向(y方向)向量值v,步长step常量值,计算出粒子下一次要到达的位置的经度值nextLng和纬度值nextLat;计算公式如下:
nextLng=lng+step*u
nextLat=lat+step*v;
步骤8):粒子新的位置(值)[nextLng、nextLat](即前述下一次要到达的位置的经度值、纬度值)判断是否在当前三维场景视域(数据集)内,如果不在当前(三维场景)视域范围内,结束渲染;
步骤9):粒子根据计算得到的新的位置(值)[nextLng、nextLat](即前述下一次要到达的位置的经度值、纬度值)进行移动,渲染到新的位置,形成流动的结果,并且粒子的生命周期age值减1;
步骤10):如果粒子的生命周期age值为0,结束渲染;
步骤11):如果三维场景内的粒子数少于设置的常量值(如1万个粒子)时,再次生成随机的新的粒子进行渲染;
步骤12):通过(视觉处理器GPU)在三维场景中渲染出动态的流体风场图;结束渲染。
本发明对于流体风场图这种动态对象高精度划分、高精度数值化模拟,改善三维场景下流体风场图数值模拟及可视效果,且渲染方法也简单,且实现了风场动态数据的缓存显示,满足三维场景下风场变化过程高精细度的展示。
基于上述具体实施例的方案,本发明的另一实施例:
一种三维场景下流体风场图渲染方法,包括如下步骤:
步骤1):开始渲染模型:根据当前的三维场景视域(数据集)和获取到的风场数据进行采集(分析),在该(三维场景)视域内加载棋盘网格(模型) 中;
步骤2):根据采集的或者备有的数据生成风速风向计算棋盘网格模型(有了棋盘网格模型,就可以为后续计算粒子在当前位置的的风速值提供依据);
步骤3):根据风场范围生成随机的多个粒子(数据),每个粒子(数据) 具备的属性数据有:初始位置值(参照前述具体实施例的初始坐标经度lng、纬度lat,该初始位置值是初始坐标经度、纬度的一个集合值)、粒子存活的生命周期次数;
步骤4):如果随机生成的粒子(数据)不存在于当前的三维场景视域(数据集)内,将其生命周期(值)置为0,结束渲染;
步骤5):根据粒子(数据)的初始位置(值)计算出该粒子在棋盘网格中的横、纵坐标位置;
步骤6):使用双性线(即前述具体实施例的两次线性)插值,计算出粒子所在横、纵坐标位置的风速风向值:
步骤7):根据得到的风速风向值,即横、纵方向速度值,计算出粒子下一次要到达的位置,如此循环往复(粒子就能在图上动起来);
步骤8):粒子每渲染一次后,粒子的生命周期减1,直至该粒子的生命周期为0;
步骤9):当粒子数量少于给定值时,再次生成随机的粒子,设定或判定(粒子)当前的位置,以及计算(粒子)下一次到达的位置,生命周期递减,直至生命周期为0;
步骤10):(已经拥有粒子的当前位置以及下一次到达的位置,就可以绘制出一条流动的线或线集),通过(视觉处理器GPU)在三维场景中渲染出动态的流体风场图;结束渲染。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
Claims (5)
1.一种三维场景下流体风场图渲染方法,其特征在于,包括以下步骤:
步骤1):开始渲染模型:根据当前的三维场景视域和获取到的风场数据,其中,风场数据为等步长经度、纬度划分的网格数据,每个格点具有经度lng、纬度lat、速度值speed、方向值dir;并依据下列公式计算出横方向向量值u、纵方向的向量值v:
u=-speed*sin(dir)
v=-speed*cos(dir);
步骤2):根据风场数据生成棋盘网格模型,网格模型对象中包括网格的四周边界值xmin、xmax、ymin、ymax、行数cols、列数rows,每个棋盘网格具有以下数据:对应的所在行x,所在列y、经度lng、纬度lat、横方向向量值u、纵方向的向量值v;
步骤3):根据风场范围生成随机的多个粒子数据,每个粒子数据具备的属性数据有:初始坐标经度lng、纬度lat、粒子存活的生命周期次数age;
步骤4):循环所有粒子对象,根据每个粒子的当前经纬度位[lng,lat]值计算出该粒子在棋盘网格中的横纵坐标位置[x,y];
步骤5):根据横纵坐标位置[x,y],获取当前位置相邻的4个经纬网格坐标[x1,y1]、[x1,y2]、[x2,y1]、[x2,y2]及其对应的u、v值;
步骤6):通过在x方向上进行两次线性插值计算,然后在y方向上进行一次插值计算步骤7:根据粒子当前所在位置的经度lng、纬度lat和计算得到的横方向向量值u、纵方向向量值v,步长step常量值,计算出粒子下一次要到达的位置的经度值nextLng和纬度值nextLat;计算公式如下:
nextLng=lng+step*u
nextLat=lat+step*v;
步骤8):粒子新的位置值[nextLng、nextLat]判断是否在当前三维场景视域内,如果不在当前三维场景视域范围内,结束渲染;
步骤9):粒子根据计算得到的新的位置值[nextLng、nextLat]进行移动,渲染到新的位置,形成流动的结果,并且粒子的生命周期age值减1;
步骤10):如果粒子的生命周期age值为0,结束渲染;
步骤11):如果三维场景内的粒子数少于设置的常量值时,再次生成随机的新的粒子进行渲染;
步骤12):在三维场景中渲染出动态的流体风场图;结束渲染。
3.根据权利要求1或2所述的一种三维场景下流体风场图渲染方法,其特征在于:步骤11)中粒子数常量值为1万。
4.根据权利要求1或2所述的一种三维场景下流体风场图渲染方法,其特征在于:步骤12)中通过视觉处理器在三维场景中渲染出动态的流体风场图。
5.根据权利要求3所述的一种三维场景下流体风场图渲染方法,其特征在于:步骤3)中初始坐标经度lng、纬度lat为一个集合值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111437800.6A CN114676616A (zh) | 2021-11-30 | 2021-11-30 | 一种三维场景下流体风场图渲染方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111437800.6A CN114676616A (zh) | 2021-11-30 | 2021-11-30 | 一种三维场景下流体风场图渲染方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114676616A true CN114676616A (zh) | 2022-06-28 |
Family
ID=82069775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111437800.6A Pending CN114676616A (zh) | 2021-11-30 | 2021-11-30 | 一种三维场景下流体风场图渲染方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114676616A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117036560A (zh) * | 2023-10-10 | 2023-11-10 | 福州朱雀网络科技有限公司 | 一种适用于虚拟场景的风场模拟方法、介质和设备 |
-
2021
- 2021-11-30 CN CN202111437800.6A patent/CN114676616A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117036560A (zh) * | 2023-10-10 | 2023-11-10 | 福州朱雀网络科技有限公司 | 一种适用于虚拟场景的风场模拟方法、介质和设备 |
CN117036560B (zh) * | 2023-10-10 | 2024-01-02 | 福州朱雀网络科技有限公司 | 一种适用于虚拟场景的风场模拟方法、介质和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Akinci et al. | Parallel surface reconstruction for particle‐based fluids | |
CN102289845B (zh) | 一种三维模型绘制方法以及装置 | |
CN112755535B (zh) | 光照渲染方法、装置、存储介质及计算机设备 | |
CN113034656B (zh) | 游戏场景中光照信息的渲染方法、装置及设备 | |
CN108805971B (zh) | 一种环境光遮蔽方法 | |
CN113034657B (zh) | 游戏场景中光照信息的渲染方法、装置及设备 | |
JP2006506744A (ja) | 区間解析を使用するコンピュータ・グラフィックスの際の可視面決定システムおよび方法 | |
CN104200506A (zh) | 三维gis海量矢量数据渲染方法及装置 | |
WO2023185262A1 (zh) | 光照渲染方法、装置、计算机设备和存储介质 | |
CN109509243B (zh) | 一种液体仿真方法、液体交互方法及装置 | |
US20080012853A1 (en) | Generating mesh from implicit surface | |
Livnat et al. | Interactive point-based isosurface extraction | |
CN115906703A (zh) | 一种用于实时交互应用的gpu流体仿真方法 | |
CN114676616A (zh) | 一种三维场景下流体风场图渲染方法 | |
CN112634420B (zh) | 图像特效的生成方法、装置、电子设备及存储介质 | |
Vyatkin | Method of binary search for image elements of functionally defined objects using graphics processing units | |
CN109658494A (zh) | 一种在三维可视化图形中的阴影渲染方法 | |
CN110738719A (zh) | 一种基于视距分层优化的Web3D模型渲染方法 | |
Benthin et al. | Efficient ray traced soft shadows using multi-frusta tracing | |
CN112435322B (zh) | 一种3d模型的渲染方法、装置、设备及存储介质 | |
CN112002019B (zh) | 一种基于mr混合现实的模拟人物阴影的方法 | |
CN111667393B (zh) | 一种虚拟场景中模拟下雨的方法及终端 | |
CN110689606B (zh) | 一种虚拟场景中雨滴下落位置的计算方法及终端 | |
KR20130002780A (ko) | 레이 트레이싱 코어 및 레이 트레이싱 방법 | |
CN112100939A (zh) | 一种基于Compute Shader的实时流体仿真方法及其系统 |
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 |