CN106570926A - 一种飞行视景仿真中高效的粒子云层绘制方法 - Google Patents

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

Info

Publication number
CN106570926A
CN106570926A CN201610962466.9A CN201610962466A CN106570926A CN 106570926 A CN106570926 A CN 106570926A CN 201610962466 A CN201610962466 A CN 201610962466A CN 106570926 A CN106570926 A CN 106570926A
Authority
CN
China
Prior art keywords
particle
cloud
cloud layer
bulletin board
drafting
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
Application number
CN201610962466.9A
Other languages
English (en)
Other versions
CN106570926B (zh
Inventor
李胜
徐泽骅
汪国平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
A New Generation Of Information Technology Research Institute (peking University Tianjin)
Original Assignee
A New Generation Of Information Technology Research Institute (peking University Tianjin)
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by A New Generation Of Information Technology Research Institute (peking University Tianjin) filed Critical A New Generation Of Information Technology Research Institute (peking University Tianjin)
Priority to CN201610962466.9A priority Critical patent/CN106570926B/zh
Publication of CN106570926A publication Critical patent/CN106570926A/zh
Application granted granted Critical
Publication of CN106570926B publication Critical patent/CN106570926B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Computing Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

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

Description

一种飞行视景仿真中高效的粒子云层绘制方法
技术领域
本发明涉及计算机虚拟现实、视景仿真技术、计算机图形学领域,尤其涉及飞行视景仿真,具体涉及一种飞行视景仿真中高效的粒子云层绘制方法。
背景技术
飞行器飞行视景仿真系统是利用高逼真度的三维图像或场景模拟再现飞机的飞行过程,主要包括场景仿真模型、多天时多天候环境及其变化等的视景仿真。场景仿真模型指在飞行环境仿真中所涉及到的所有模型结构,如地形、机场、建筑物、飞行器等各类三维模型;飞行视景仿真是指实现三维视景在晴天、光照、云、雾、雨、雪等环境下的视觉呈现。
云层效果是户外场景中一个重要的组成部分,在大多数针对小规模场景或者视点位于地面附近的场景进行针对性设计的实时绘制系统中,云层效果通常使用天空盒纹理实现。如果视点需要在天空中移动,甚至进入云层之中,天空盒方法就不能实现足够的场景真实感,此时就需要实现立体的云层绘制效果。
尽管体积云可以实现云的形态变化效果和平滑的穿云效果,但是它的缺点也很明显:
·云层密度场的形态依赖于使用的噪声函数,只能通过修改噪声函数的参数来调整云层形态。如果对云层形态有特殊要求,该方法的调整难度很大。
·云层整体使用相同的环境光参数,导致云层各部分颜色比较接近。实现更真实的光照效果需要计算多重散射,计算复杂度较高,难以达到实时系统的要求。
粒子云方法(Niniane Wang.“Realistic and fast cloud rendering”.Journalof graphics tools,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)粒子云建模-数据预处理
在粒子云方法中,云层表示为一组具有固定位置的粒子的集合。每个粒子体现为一簇始终朝向视点的公告板(billboard),这一簇公告板往往被包围在一个长方体、立方体或者球体(即包围盒)内部,由这些包围盒控制整个云的形态。为了计算在包围盒内的公告板的数目,首先本发明提出利用粒子密度的来控制粒子分布的方法,所谓粒子密度ρ即在单位体积内所包含的公告板的数目。给定一个粒子的包围盒,可以由包围盒的体积V计算出在包围盒内所包含的公告板的数目T=V/ρ。然后,按照随机均匀分布算法,在包围盒之内随机生成T个公告板的位置。在所有的位置生成之后,为了防止随机生成的公告板之间可能存在的不均匀的情况,即局部两个公告板之间的距离过近,遍历所有的公告板,如果相邻的两个公告板之间的距离小于某一个阈值,则将两个公告板中的任意一个从公告板簇中删除。在实施例中,一个粒子往往会由800-1000个左右的公告板构成),每个粒子对应的公告板上可以使用不同的纹理,不同的纹理以及公告板数量和位置的差异构成了云朵的多样性。在一实施例中的飞行仿真系统中使用的一组纹理如图1所示。所有粒子云的模型由此形成粒子云模型库。其它与构建粒子云模型的数据处理相关的过程与本技术领域公知并无差别,在此不再赘述。
飞行视景仿真中整个天空云仿真所采用的粒子云层的绘制流程如图2所示。图中直角矩形表示步骤,斜角矩形表示数据。而带箭头实线表示步骤执行的顺序,而带箭头虚线表示数据的流动方向。由图中可见,绘制过程分为6个步骤:依据视点计算保留区及空间区域、云层块生成与回收、粒子收集、粒子排序、穿越粒子云处理和粒子云绘制。其中当视点处于云层之中时,即穿越云层时,需要特殊的穿越粒子云处理,否则跳过该步骤直接进行粒子云绘制。
2)计算保留区域及可视区域
如果任何时刻都在飞行仿真系统中保存天空中所有云层块的粒子数据,一方面会占用很大的存储空间,另一方面会给绘制带来相当大的压力,因此本发明只在视点所及范围的附近组织云层块数据。
首先依据视点所在三维空间位置(或者视线与天空云层所在高度层区域的交点,通常云层位于距离地表某一个高度的空间,称为云底高)在大地坐标下的投影为中心(如图3所示,其中心标注为视点),构建(2m+1)*(2n+1)个栅格,其中m,n为任意正整数,其数值的大小依据的原则为每个栅格中至少包含一个云粒子,而包含的最大粒子的数目小于指定的某个阈值。在此栅格区域基础之上划分可视区域和保留区域,可视区域的半径将与三维图形绘制所设置的视景体(视域体)的前后裁剪面距离相近,可以做到可视区域完全覆盖视景体所包含的所有内容。如图3所示,视点附近的区域又划分为两部分,图中以视点为圆心的圆形或者近似圆形区域是可视区域,其半径一般根据绘制精度的需要由人为指定,位于该区域内的云层块以灰色标出。位于可视区域之外的是正方形的保留区域,在图中以白色区域标出。当且仅当一个云层块与该区域相交时,该云层块参与绘制。随着视点在场景中的运动,会不断有云层块移进或移出这一区域。
3)云层块生成与回收
如果一个云层块进入了该可视区域,而这个云层块又没有包含粒子数据,那么系统将从云层模型库中根据当前云层所在的高度随机挑选一个云模型(从气象学意义上,每一种云出现在天空中都具有一个高度范围,例如距离地表3km-5km等),然后以这个云模型为基础,生成这个云层块的粒子数据。在由云层模型生成云层块的过程中,通常还会将云层模型中的每个粒子分别做一定程度的随机旋转,这样由同一个云层模型生成的不同的云层块的外观也会有一定的随机变化,可以进一步增强系统中云层分布的随机性。
可视区域内部还包含一个环形的淡出区域,从淡出区域的外侧到内侧云层粒子的不透明度不断增加,实现云层粒子从不可见到可见的过渡效果。
位于可视区域之外的是正方形的保留区域,在图中以灰色区域标出。当一个云层块移出可视区域之后,其中的粒子数据不会立刻被删除,只有当它也离开了保留区域之后它的粒子数据才会被删除。这一区域充当了粒子数据缓存区的角色。当视点在场景中的一小片区域来回移动时,会有大量云层块从可视区域进入保留区域又重新进入可视区域。保留区域的设置,使得这些云层块的粒子数据不需要重新生成,可以有效减少初始化新的云层块的计算开销。当然,这种计算开销的减小是通过额外的空间消耗达到的,实际系统中需要根据可用存储资源的数量来确定保留区域的大小,如果当前系统可用的存储的大小为M,而每一块栅格所需的存储为m,则保留区域的大小不应超过M/m的整数下界。
4)粒子收集、排序与绘制
随着视点的移动,每一帧都可能有云层块进入或移出可视区域,同时由于粒子在每一帧之间都会更新位置(这是由粒子系统的本质决定的),因此每一帧需要绘制的粒子也有所不同。在确定了与可视区域相交的所有云层块之后,需要将这些云层块内的所有云层粒子收集到一个待绘制粒子列表中。在收集过程中,还根据粒子与视点的相对位置计算每个粒子的公告板朝向,计算结果一方面存储在待绘制列表中,另一方面也需要更新到云层块存储区中。
待绘制列表中的粒子首先按照到视点的距离由远到近排序,得到一个绘制粒子队列。为了避免随着粒子位置更新之后而发生的相邻两个粒子之间的碰撞相交的现象,本实施例在相邻两个粒子之间做额外处理,首先执行在绘制粒子队列中相邻两个粒子包围盒碰撞检测,如果发生碰撞则两个彼此相交的包围盒各自进行某种比例的缩放(通常就是缩小),以形成最终彼此不相交的包围盒。由于之前将空间划分成栅格,因此碰撞检测操作仅在同一栅格内部以及在相邻栅格之间的粒子进行碰撞检测,非常便捷快速。
将排好序并进行优化之后的队列传给GPU进行绘制。传递给GPU的数据使用点(GL_POINTS)格式,每个粒子作为一个顶点传递,同时附带着包围盒三个轴向的缩放比例,在GPU上使用几何着色器生成每个粒子对应的公告板簇,并按照缩放比例值相应地进行缩放。公告板的绘制方法与大部分粒子系统处理公告板的方法类似:开启深度测试、关闭深度写入并且打开alpha混合以实现半透明粒子的叠加融合效果。
5)穿越云层内部处理
与体积云相比,粒子云在穿云过程中会有明显的视觉效果缺陷。具体来说可以分为两个主要问题:
·当视点距离粒子中心较近时,视点只要运动很短一段距离,粒子对应的公告板的朝向就会有较大变化,此时能明显地观察到公告板在旋转。
·公告板没有体积。当视点以公告板的法向方向(或者接近该方向)穿过公告板所在的平面时,公告板会突然消失。
要解决第一个问题,可以在视点与粒子的距离较近时,不再旋转该粒子。例如当视点与粒子的距离到达公告板半径的两倍时,就不再对粒子计算旋转,保持原先记录在云层块存储区中的朝向。
在近距离上关闭粒子旋转会导致粒子对应的公告板不再时刻朝向视点,这会引出新的问题。如图4a所示,当视点斜着穿过公告板所在的平面时,由于近裁剪平面的存在,公告板会出现从中间被裁断的效果。
为了避免公告板截断和视点穿过公告板时公告板突然消失的问题,可以在视点接近公告板时将公告板渐隐。实际实现上,可以计算视点到公告板所在平面的最短距离。当此距离大于公告板半径时,公告板以本身原有的不透明度值绘制;当此距离小于公告板半径时,开始减小不透明度,淡出该公告板;当视点紧贴公告板时(实际是公告板到达视域体的前裁剪面),不透明度降为零,公告板完全不可见。经过这样的渐隐处理后在云层中只能看到较远处的公告板,避免了公告板平面接近视点时被裁剪以及突然消失的问题。图4a中的场景经过该方法处理后效果如图4b所示,可以看到产生裁剪效果的公告板已经几乎完全透明。在视点穿出云层的过程中视点前方的公告板相继淡出,也可以使得穿出云层的视觉效果过渡更为平滑。上述过程可以由图5进行描述,当视点与公告板的距离由远及近发生改变时,当到达某一个距离t1时,公告板所在的粒子停止转动,当距离到达t2时,公告板的不透明度值设置为该公告板的原始不透明值(0,1)之间的数值,当距离为0时,即将穿越该公告板时,该公告板的不透明度值变为最小的0,即完全透明。
实施例结果
云层粒子的顶层组织单位为16km×16km大小的云层块,整个天空中的云层由这些云层块平铺构成。每个块中的粒子属性和分布使用建模工具构建,一旦构建好就不再修改,这样的一个构建好的块称作一个云层模型。同一时刻天空中不同的云层块可以使用不同的云层模型,调整云层模型的种类和分布就能实现不同种类的云层效果。图5a及图5b展示了系统中两种不同种类的云层的绘制效果。上述云层场景的绘制速度达到60fps以上。
显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

Claims (10)

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+1)个栅格,其中m,n为任意正整数;将以视点位置为圆心的一圆形或者近似圆形区域作为可视区域;将位于可视区域之外的栅格覆盖的区域作为保留区域。
5.如权利要求1所述的飞行视景仿真中高效的粒子云层绘制方法,其特征在于,步骤2)中所述可视区域的半径与三维图形绘制所设置的视域体的前后裁剪面距离相近,使可视区域完全覆盖视域体所包含的所有内容。
6.如权利要求1所述的飞行视景仿真中高效的粒子云层绘制方法,其特征在于,步骤3)中所述可视区域内部还包含一个环形的淡出区域,从淡出区域的外侧到内侧云层粒子的不透明度不断增加。
7.如权利要求1所述的飞行视景仿真中高效的粒子云层绘制方法,其特征在于,步骤4)中所述粒子收集包括:在确定了与可视区域相交的所有云层块之后,将这些云层块内的所有云层粒子收集到一个待绘制粒子列表中;在收集过程中,根据粒子与视点的相对位置计算每个粒子的公告板朝向,计算结果存储在待绘制列表中,同时更新到云层块存储区中。
8.如权利要求7所述的飞行视景仿真中高效的粒子云层绘制方法,其特征在于,步骤4)中所述粒子排序包括:待绘制列表中的粒子按照到视点的距离由远到近排序,得到一个绘制粒子队列。
9.如权利要求8所述的飞行视景仿真中高效的粒子云层绘制方法,其特征在于,进行粒子排序过程中,执行在绘制粒子队列中相邻两个粒子的包围盒的碰撞检测,如果发生碰撞则两个彼此碰撞的包围盒连同包围盒内的粒子各自计算出需要缩放的比例,以形成最终彼此不相交的包围盒。
10.如权利要求8所述的飞行视景仿真中高效的粒子云层绘制方法,其特征在于,所述绘制排好序的粒子包括:将绘制粒子队列传给GPU进行绘制,传递给GPU的数据使用点格式,每个粒子作为一个顶点传递,同时附带着包围盒三个轴向的缩放比例,在GPU上使用几何着色器生成每个粒子对应的公告板簇,并按照缩放比例值相应地进行缩放。
CN201610962466.9A 2016-11-04 2016-11-04 一种飞行视景仿真中高效的粒子云层绘制方法 Active CN106570926B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610962466.9A CN106570926B (zh) 2016-11-04 2016-11-04 一种飞行视景仿真中高效的粒子云层绘制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610962466.9A CN106570926B (zh) 2016-11-04 2016-11-04 一种飞行视景仿真中高效的粒子云层绘制方法

Publications (2)

Publication Number Publication Date
CN106570926A true CN106570926A (zh) 2017-04-19
CN106570926B CN106570926B (zh) 2019-09-10

Family

ID=58535990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610962466.9A Active CN106570926B (zh) 2016-11-04 2016-11-04 一种飞行视景仿真中高效的粒子云层绘制方法

Country Status (1)

Country Link
CN (1) CN106570926B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108038895A (zh) * 2017-12-06 2018-05-15 北京像素软件科技股份有限公司 一种公告板生成方法及装置
CN108074285A (zh) * 2017-12-06 2018-05-25 北京像素软件科技股份有限公司 体积云模拟方法和体积云模拟装置
CN113327314A (zh) * 2021-03-01 2021-08-31 北京大学 一种基于层次的覆盖全空域的云表示与实时绘制方法
CN113345092A (zh) * 2021-05-06 2021-09-03 武汉大学 一种用于实景三维模型的地面模型与非地面模型自动分离方法
CN113988270A (zh) * 2021-11-08 2022-01-28 湖南大学 一种面向季节和时间变换的视觉仿真方法和系统
CN114708369A (zh) * 2022-03-15 2022-07-05 荣耀终端有限公司 一种图像渲染方法和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813533B1 (en) * 2001-05-15 2004-11-02 Vladimir V. Semak Method for simulation of laser material deposition
CN101706967A (zh) * 2009-11-18 2010-05-12 电子科技大学 一种真实感云层的综合模拟方法
KR20110071769A (ko) * 2009-12-21 2011-06-29 한국전자통신연구원 밀도 정보를 이용한 그림자 생성 방법
JP2011159199A (ja) * 2010-02-03 2011-08-18 Gifu Univ 太陽光発電装置の発電量予測システム及び発電量予測方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6813533B1 (en) * 2001-05-15 2004-11-02 Vladimir V. Semak Method for simulation of laser material deposition
CN101706967A (zh) * 2009-11-18 2010-05-12 电子科技大学 一种真实感云层的综合模拟方法
KR20110071769A (ko) * 2009-12-21 2011-06-29 한국전자통신연구원 밀도 정보를 이용한 그림자 생성 방법
JP2011159199A (ja) * 2010-02-03 2011-08-18 Gifu Univ 太陽光発電装置の発電量予測システム及び発電量予測方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
潘秋羽 等: "《基于粒子系统三维动态云的快速仿真仿真算法》", 《系统仿真学报》 *
王成 等: "《导弹飞行仿真系统可视化设计与实现》", 《航天控制》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108038895A (zh) * 2017-12-06 2018-05-15 北京像素软件科技股份有限公司 一种公告板生成方法及装置
CN108074285A (zh) * 2017-12-06 2018-05-25 北京像素软件科技股份有限公司 体积云模拟方法和体积云模拟装置
CN108074285B (zh) * 2017-12-06 2021-03-09 北京像素软件科技股份有限公司 体积云模拟方法和体积云模拟装置
CN113327314A (zh) * 2021-03-01 2021-08-31 北京大学 一种基于层次的覆盖全空域的云表示与实时绘制方法
CN113327314B (zh) * 2021-03-01 2024-02-06 北京大学 一种基于层次的覆盖全空域的云表示与实时绘制方法
CN113345092A (zh) * 2021-05-06 2021-09-03 武汉大学 一种用于实景三维模型的地面模型与非地面模型自动分离方法
CN113345092B (zh) * 2021-05-06 2022-07-05 武汉大学 一种实景三维模型的地面模型与非地面模型自动分离方法
CN113988270A (zh) * 2021-11-08 2022-01-28 湖南大学 一种面向季节和时间变换的视觉仿真方法和系统
CN113988270B (zh) * 2021-11-08 2024-08-27 湖南大学 一种面向季节和时间变换的视觉仿真方法和系统
CN114708369A (zh) * 2022-03-15 2022-07-05 荣耀终端有限公司 一种图像渲染方法和电子设备

Also Published As

Publication number Publication date
CN106570926B (zh) 2019-09-10

Similar Documents

Publication Publication Date Title
CN106570926B (zh) 一种飞行视景仿真中高效的粒子云层绘制方法
CN106127853B (zh) 一种无人机探测范围分析方法
JP4824019B2 (ja) ルールベースの手続的地形生成用地形編集ツール
CN101706967B (zh) 一种真实感云层的综合模拟方法
CN106446351A (zh) 一种面向实时绘制的大规模场景组织与调度技术及仿真系统
CN104463948A (zh) 三维虚拟现实系统与地理信息系统的无缝可视化方法
JPH01501178A (ja) 写実的画面形成用デジタル式視覚感知シミュレーション・システム
JP2008500637A (ja) ルールベースの手続的地形生成
CN104778744A (zh) 基于Lidar数据的大规模三维森林可视化场景建立技术
CN105205861A (zh) 基于Sphere-Board的树木三维可视化模型实现方法
CN102855654B (zh) 一种超大规模天气效果渲染方法
CN110852952A (zh) 一种基于gpu的大规模地形实时绘制方法
CN115690344A (zh) 海绵城市沙盘及天气模拟系统
CN110400366A (zh) 一种基于OpenGL的实时洪水灾害可视化仿真方法
CN104299262B (zh) 一种基于速度场流线的三维云模拟方法
EP0845130B1 (en) Atmospheric effects simulation
CN117095110A (zh) 面向互联网三维地图的顺序无关透明渲染方法和系统
CN110232846A (zh) 一种冲锋舟模拟驾驶方法、系统及相关装置
Zhang et al. Simulation of snow effects in visual simulation of virtual campus based on OSG
Gerlach Visualisation of the brownout phenomenon, integration and test on a helicopter flight simulator
JPH0154749B2 (zh)
CN104574493A (zh) 一种远景平滑淡出的方法及装置
Lu et al. Design and implementation of three-dimensional game engine
Sui et al. A visualization framework for cloud rendering in global 3D GIS
Liao et al. Research on Fast Visibility Judgment Algorithms Based on n-Fork Tree

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