一种飞行视景仿真中高效的粒子云层绘制方法技术

技术编号:15199940 阅读:157 留言:0更新日期:2017-04-22 00:43
本发明专利技术提供一种飞行视景仿真中高效的粒子云层绘制方法。包括以下步骤:1)构建基于公告板的粒子云模型库;2)将以视点位置为圆心的一圆形区域作为可视区域;将位于可视区域之外的栅格覆盖的区域作为保留区域;3)当一个云层块进入了该可视区域,且该云层块不包含粒子数据,则从粒子云模型库中随机挑选一个云层模型,以该云层模型为基础,生成该云层块的粒子数据;当该云层块移出可视区域位于保留区域时,暂不删除其粒子数据;当该云层块移出保留区域后,删除其粒子数据;4)粒子收集、排序与绘制。可用于飞行视景仿真以及大规模室外虚拟现实系统中。能够实现粒子云层的高效绘制,同时可以模拟各种各样的云形态,并具有较好仿真效果。

Efficient particle cloud rendering method in flight visual simulation

The invention provides an efficient particle cloud rendering method in flight visual simulation. Includes the following steps: 1) construct particle cloud model library based on the bulletin board; 2) to view location for a circular area center as the visible area will be located in the visible region; grid outside the coverage area as a reserved area; 3) when a cloud blocks into the visual area, and the clouds block does not contain data from particle, particle cloud model library of randomly selected a cloud model to the cloud model, the cloud particles data block; when the clouds block from the visible region is located in the reserved area, temporarily remove the particle data; when the clouds block out of the reserved area, delete particle data; 4) particle collection, sorting and rendering. It can be used in flight visual simulation and large scale outdoor virtual reality system. Able to achieve efficient particle cloud rendering, but also can simulate a wide variety of cloud shapes, and has a better simulation results.

【技术实现步骤摘要】

本专利技术涉及计算机虚拟现实、视景仿真技术、计算机图形学领域,尤其涉及飞行视景仿真,具体涉及一种飞行视景仿真中高效的粒子云层绘制方法
技术介绍
飞行器飞行视景仿真系统是利用高逼真度的三维图像或场景模拟再现飞机的飞行过程,主要包括场景仿真模型、多天时多天候环境及其变化等的视景仿真。场景仿真模型指在飞行环境仿真中所涉及到的所有模型结构,如地形、机场、建筑物、飞行器等各类三维模型;飞行视景仿真是指实现三维视景在晴天、光照、云、雾、雨、雪等环境下的视觉呈现。云层效果是户外场景中一个重要的组成部分,在大多数针对小规模场景或者视点位于地面附近的场景进行针对性设计的实时绘制系统中,云层效果通常使用天空盒纹理实现。如果视点需要在天空中移动,甚至进入云层之中,天空盒方法就不能实现足够的场景真实感,此时就需要实现立体的云层绘制效果。尽管体积云可以实现云的形态变化效果和平滑的穿云效果,但是它的缺点也很明显:·云层密度场的形态依赖于使用的噪声函数,只能通过修改噪声函数的参数来调整云层形态。如果对云层形态有特殊要求,该方法的调整难度很大。·云层整体使用相同的环境光参数,导致云层各部分颜色比较接近。实现更真实的光照效果需要计算多重散射,计算复杂度较高,难以达到实时系统的要求。粒子云方法(NinianeWang.“Realisticandfastcloudrendering”.Journalofgraphicstools,2004,9(3):21–40.)可以弥补以上的缺点,该方法使用预先建模的公告板粒子分布模拟云层的形态。通过调整粒子的颜色实现不同光照条件下云层的颜色变化。下述文献(黄会林.飞行模拟器视景系统云层的特效模拟[D];哈尔滨工业大学硕士学位论文;2006年)、(姜洪洲黄会林.视景系统云层的特效模拟[J];计算机仿真;2007,24(7).225-228)、(黄炳,陈俊丽,万旺根.飞行仿真中三维云场景的渲染[J].上海大学学报(自然科学版),2009,18(4):342-345.)也分别讨论了基于粒子系统的云及云层绘制方法。但上述文献均未考虑如何高效地进行粒子云层绘制。
技术实现思路
针对上述问题,本专利技术的目的在于提供一种飞行视景仿真中高效的粒子云层绘制方法。可用于飞行视景仿真以及大规模室外虚拟现实系统中。对包含成千上万云朵的天空场景的绘制可以达到60帧以上的帧率,同时可以模拟各种各样的云形态,克服了飞行模拟器中天空云仿真效率低的困难。为达上述目的,本专利技术采取的具体技术方案是:一种飞行视景仿真中高效的粒子云层绘制方法,包括以下步骤:1)在预处理阶段构建基于公告板的粒子云模型库;2)在飞行视景仿真阶段,首先根据视点信息计算保留区域及可视区域;3)然后根据保留区域和可视区域进行云层块生成与回收,当一个云层块进入了该可视区域,且该云层块不包含粒子数据,则从粒子云模型库中随机挑选一个云层模型,以该云层模型为基础,生成该云层块的粒子数据;当该云层块移出可视区域位于保留区域时,暂不删除其粒子数据;当该云层块移出保留区域后,删除其粒子数据;4)粒子收集、排序,并最终绘制排好序的粒子表示的云层。进一步地,还包括5)穿越云体内部的处理;包括:5-1)当视点与云粒子的距离较近时,不再旋转该粒子;5-2)计算视点到粒子的公告板所在平面的最短距离,当此距离大于公告板半径时,公告板以本身原有的不透明度值绘制;当此距离小于公告板半径时,开始减小公告板的不透明度;当视点紧贴公告板时,公告板的不透明度降为零。进一步地,步骤1)中所述构建基于公告板的粒子云模型库包括:1-1)给定一个粒子的包围盒,由包围盒的体积及粒子密度计算出在包围盒内所包含的公告板的数目;1-2)按照随机均匀分布算法,在包围盒之内随机生成T个公告板的位置;1-3)在所有的位置生成之后,遍历所有的公告板,如果相邻的两个公告板之间的距离小于一阈值,则将两个公告板中的任意一个从公告板簇中删除;1-4)重复步骤1-1)至1-3)构建多个粒子模型,形成粒子云模型库。进一步地,所述视点信息包括:视点位置,视点观察的方向,视点观察的正向,由视点所形成的视域体(由左右、上下、远近裁剪面构成)。进一步地,步骤2)中所述根据视点信息计算保留区域及可视区域包括:以视点位置在大地坐标下的投影为中心,构建(2m+1)×(2n+1)个栅格,其中m,n为任意正整数;将以视点位置为圆心的一圆形或者近似圆形区域作为可视区域;将位于可视区域之外的栅格覆盖的区域作为保留区域。进一步地,步骤2)中所述视点位置为视点所在三维空间位置或观察视线方向作为射线与云层所在区域的交点位置。进一步地,步骤2)中所述可视区域的半径与三维图形绘制所设置的视域体的前后裁剪面距离相近,使可视区域完全覆盖视域体所包含的所有内容。进一步地,前述m,n数值的大小选取的依据为每个栅格中至少包含一个云粒子,而包含的最大粒子的数目小于指定的一阈值。进一步地,步骤3)中所述可视区域内部还包含一个环形的淡出区域,从淡出区域的外侧到内侧云层粒子的不透明度不断增加。进一步地,步骤4)中所述粒子收集包括:在确定了与可视区域相交的所有云层块之后,将这些云层块内的所有云层粒子收集到一个待绘制粒子列表中;在收集过程中,根据粒子与视点的相对位置计算每个粒子的公告板朝向,计算结果存储在待绘制列表中,同时更新到云层块存储区中。进一步地,步骤4)中所述粒子排序包括:待绘制列表中的粒子按照到视点的距离由远到近排序,得到一个绘制粒子队列。进一步地,进行粒子排序过程中,执行在绘制粒子队列中相邻两个粒子的包围盒的碰撞检测,如果发生碰撞则两个彼此碰撞的包围盒连同包围盒内的粒子各自计算出需要缩放的比例,以形成最终彼此不相交的包围盒。进一步地,所述粒子绘制包括:将绘制粒子队列传给GPU进行绘制,传递给GPU的数据使用点格式,每个粒子作为一个顶点传递,同时附带着包围盒三个轴向的缩放比例,在GPU上使用几何着色器生成每个粒子对应的公告板簇,并按照缩放比例值相应地进行缩放。通过采取上述技术方案,只在视点所及范围的附近组织云层块数据,并设置保留区域充当粒子数据缓存区的角色。当视点在场景中的一小片区域来回移动时,会有大量云层块从可视区域进入保留区域又重新进入可视区域。保留区域的设置,使得这些云层块的粒子数据不需要重新生成,可以有效减少初始化新的云层块的计算开销。从而实现粒子云的高效绘制。同时在穿越粒子云内部时,对公告板的处理能够获得更佳的仿真效果。附图说明图1为本专利技术一实施例中基于公告板的一组云层纹理示意图。图2为本专利技术一实施例中飞行视景仿真中粒子云绘制方法的流程图。图3为本专利技术一实施例中视点所及范围的附近区域的划分示意图。图4a为一对比例中公告板被近裁剪平面裁断的粒子云穿云效果图。图4b为本专利技术一实施例中隐藏掉近处的公告板的粒子云穿云效果图。图5为本专利技术一实施例中视点穿越粒子云层过程的处理方法的示意图。图6a为本专利技术一实施例中飞行仿真系统中粒子云绘制方法绘制的一种云层的效果图。图6b为本专利技术一实施例中飞行仿真系统中粒子云绘制方法绘制的另一种云层的效果图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整的描述。工作原理:在自然气象条件下,天空的云层中往往存在本文档来自技高网
...
一种飞行视景仿真中高效的粒子云层绘制方法

【技术保护点】
一种飞行视景仿真中高效的粒子云层绘制方法,包括以下步骤:1)在预处理阶段构建基于公告板的粒子云模型库;2)在飞行视景仿真阶段,首先根据视点信息计算保留区域及可视区域;3)然后根据保留区域和可视区域进行云层块生成与回收,当一个云层块进入了该可视区域,且该云层块不包含粒子数据,则从粒子云模型库中随机挑选一个云层模型,以该云层模型为基础,生成该云层块的粒子数据;当该云层块移出可视区域位于保留区域时,暂不删除其粒子数据;当该云层块移出保留区域后,删除其粒子数据;4)粒子收集、排序,并最终绘制排好序的粒子表示的云层。

【技术特征摘要】
1.一种飞行视景仿真中高效的粒子云层绘制方法,包括以下步骤:1)在预处理阶段构建基于公告板的粒子云模型库;2)在飞行视景仿真阶段,首先根据视点信息计算保留区域及可视区域;3)然后根据保留区域和可视区域进行云层块生成与回收,当一个云层块进入了该可视区域,且该云层块不包含粒子数据,则从粒子云模型库中随机挑选一个云层模型,以该云层模型为基础,生成该云层块的粒子数据;当该云层块移出可视区域位于保留区域时,暂不删除其粒子数据;当该云层块移出保留区域后,删除其粒子数据;4)粒子收集、排序,并最终绘制排好序的粒子表示的云层。2.如权利要求1所述的飞行视景仿真中高效的粒子云层绘制方法,其特征在于,还包括5)穿越云体内部的处理;包括:5-1)当视点与云粒子的距离较近时,不再旋转该粒子;5-2)计算视点到粒子的公告板所在平面的最短距离,当此距离大于公告板半径时,公告板以本身原有的不透明度值绘制;当此距离小于公告板半径时,开始减小公告板的不透明度;当视点紧贴公告板时,公告板的不透明度降为零。3.如权利要求1所述的飞行视景仿真中高效的粒子云层绘制方法,其特征在于,步骤1)中所述构建基于公告板的粒子云模型库包括:1-1)给定一个粒子的包围盒,由包围盒的体积及粒子密度计算出在包围盒内所包含的公告板的数目;1-2)按照随机均匀分布算法,在包围盒之内随机生成多个公告板的位置;1-3)在所有的位置生成之后,遍历所有的公告板,如果相邻的两个公告板之间的距离小于一阈值,则将两个公告板中的任意一个从公告板簇中删除;1-4)重复步骤1-1)至1-3)构建多个粒子模型,形成粒子云模型库。4.如权利要求1所述的飞行视景仿真中高效的粒子云层绘制方法,其特征在于,步骤2)中所述根据视点信息计算保留区域及可视区域包括:以视点位置在大地坐标下的投影为中心,构建(2m+1)×(2n...

【专利技术属性】
技术研发人员:李胜徐泽骅汪国平
申请(专利权)人:北京大学天津滨海新一代信息技术研究院
类型:发明
国别省市:天津;12

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

1