CN104574490A - 一种大规模云场景绘制方法 - Google Patents
一种大规模云场景绘制方法 Download PDFInfo
- Publication number
- CN104574490A CN104574490A CN201410850270.1A CN201410850270A CN104574490A CN 104574490 A CN104574490 A CN 104574490A CN 201410850270 A CN201410850270 A CN 201410850270A CN 104574490 A CN104574490 A CN 104574490A
- Authority
- CN
- China
- Prior art keywords
- grid
- resolution
- unit
- grid cell
- scale cloud
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/61—Scene description
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2215/00—Indexing scheme for image rendering
- G06T2215/12—Shadow map, environment map
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种大规模云场景的绘制方法,可应用于视景仿真领域,对大规模云场景的仿真采用多分辨率活动网格的方法进行建模;为仿真场景中参与交互的物体建立OBB层次包围盒,并根据视点与仿真空间中心的距离以及与待交互物体的距离自动调整全局与局部网格的分辨率,最后实现大规模云场景的实时绘制。通过应用本发明,可以自适应调整仿真空间的网格分辨率,较真实地绘制不同时段的云场景,在有多个刚体参与交互的情况下,可以实现大规模云场景的实时绘制,提高仿真的效率以及实时交互过程中的真实感和沉浸感。
Description
技术领域
本发明涉及大规模云场景的建模及绘制,属于计算机图形学研究领域,主要应用于视景仿真,特别是云场景的实时绘制在视景仿真中有着重要应用。
背景技术
作为一种常见的流体,云的仿真是室外场景仿真中的一个重要组成部分,是计算机图形学领域研究的热点,尤其是大规模云场景的仿真在飞行训练、三维游戏、影视制作中有着广泛的应用。然而,由于云外观的不规则性,不能用数学函数对其进行描述,且云的变化多样更加大了它的仿真难度。作为一种复杂的自然现象,云的变化受到宏观和微观因素的影响,它的动态特性由流体动力学、热力学等物理因素所控制,云的光照也异常复杂,不但有来自太阳光的散射,还有云粒子间的相互反射,还有来自地面和天空中的光照。
已有云的仿真方法可以分为两类:启发式方法和基于物理的方法。近年来,基于物理的方法因其仿真效果更真实日益成为主流。基于物理的方法关键在于偏微分方程的求解,基于网格的方法是解偏微分方程时常用的技术,该技术在仿真空间中生成一个网格空间来计算云的运动,将控制流体运动的偏微分方程使用网格来离散化,采用有限差分方法求解。已有基于网格的方法虽然生成的云场景较为真实,但效率较低,而且灵活性不足,受限于初始设定的网格分辨率,当观察者位置发生变化或者是仿真空间中的物体运动时,无法调整网格空间的分辨率,尤其是在绘制大规模云场景时更是难以实现实时交互效果。
因此,一种能对大规模云场景进行三维建模和实时绘制的方法可以解决上述问题,提高云场景的绘制效率,加强场景仿真的真实感与沉浸感。
发明内容
本发明针对上述问题做了深入的研究,提出一种大规模云场景的绘制方法,用于大规模云场景以及物体与云场景之间交互的实时绘制,至少包含了以下几个步骤:多分辨率活动网格的建立、为参与交互的物体建立OBB(Oriented Bounding Box)层次包围盒、全局和局部网格分辨率的判定、网格单元的拆分与合并、云场景的渲染;所述的多分辨率活动网格的建立,完成整个仿真空间的剖分,该网格空间为全局网格,在参与交互的物体边界建立相应的网格空间,该网格空间为局部网格,所有的网格都均匀划分;所述的为参与交互的物体建立OBB层次包围盒,完成每个物体OBB包围盒树的建立,提高物体与云的相交测试速度,当物体在仿真环境中运动时,其包围盒做相应的运动;所述的全局和局部网格分辨率的判定,实现分辨率的判定准则;所述的网格单元的拆分与合并,完成网格单元的拆分或合并工作,当物体运动或视点发生变换时,视点与仿真空间的距离以及视点与物体之间的距离将会发生变化,根据网格分辨率的判定的结果进行网格的拆分或合并;所述的云场景渲染,完成云场景的绘制工作,为提高绘制效率基于GPU进行实现。
附图说明
图1是本发明中的二维多分辨率活动网格示意图;
图2是本发明中三维网格空间及单独的网格单元示意图;
图3是本发明应用实例的网格分辨率变化示意图;
图4是本发明应用实例的二维网格单元的拆分与合并示意图;
图5是本发明应用实例的网格单元拆分或合并后的数据变换示意图;
图6是本发明应用实例的仿真场景中交互物体运动后占用单元的变化示意图;
图7是本发明应用实例的算法流程(一个时间步长的具体算法流程)。
具体实施方式
下面结合附图和具体实现流程,就本发明提供的一种大规模云场景绘制方法做进一步的说明。
1.多分辨率活动网格的建立
多尺度活动网格方法首先将整个仿真空间(包含待交互的物体)作为全局仿真空间,该网格空间称为全局网格,网格空间均匀划分,图1为二维均匀网格空间及其参与交互的物体。图中阴影区域表示待交互物体,右下角的物体是运动之后的效果,包围着物体的小网格称为局部网格,具有不同的分辨率。仿真过程中全局网格和局部网格的分辨率可以发生变化。在上方包围着物体的矩形框是该物体的最外层OBB包围盒。仿真空间全局网格和局部网格具体选用哪个级别的分辨率根据视点与仿真空间以及物体之间距离决定。参与交互的物体根据局部网格分辨率的判定原则在其边缘区域建立局部网格,该局部网格只在物体边缘占用的全局网格单元上建立,如图1中的小网格所示。物体在仿真空间中可以自由运动,不受速度的限制,其OBB包围盒作相应的运动。由于速度不受限制,拓展了方法的适用范围,参与交互的物体可以是高速运动的物体。图2是三维情形,图中的阴影区域代表交互的物体,右侧是一个独立的网格单元。
2.为参与交互的物体建立OBB层次包围盒
一个给定对象的OBB包围盒可定义为包含该对象且相对于坐标轴方向任意的最小长方体。OBB包围盒的最大特点是方向的任意性,使得它可以根据被包围对象的形状特点尽可能紧密地包围对象。在进行物体之间相交检测时,可以采用OBB包围盒树来快速排除明显不相交的物体。本发明引入OBB包围盒的目的就缘于此,利用它来快速进行参与交互的物体跟网格单元之间的相交测试。
3.判定全局和局部网格的分辨率
具体采用哪个层级的全局和局部网格分辨率,由视点距离仿真空间的中心位置以及视点距离参与交互物体的中心位置决定。仿真空间的中心位置容易得知,将每个物体最顶层OBB包围盒的中心作为物体的中心位置,可以重复使用前面计算得到的数据,减少计算量,如图3所示。
当视点与仿真空间中心距离d发生变化时,为更多或更少地显示云场景的细节,需要调整全局网格的分辨率。当网格投影到屏幕上时,宽度为h的网格单元对应着(h·e)/d个像素,其中e是常量,由相机的参数决定。当(h·e)/d=1时,即对应一个像素即可满足需要,如果比1更小即低于1个像素时,具有这样特征的信息在屏幕上是显示不出来的。由此,当视点距离仿真空间中心距离d发生变化时,最终投影到屏幕上的网格单元基本保持占用一个像素大小。
初始时已知屏幕分辨率和显示屏幕的大小可以确定一个像素的大小宽度。此时,由(h·e)/d=1可知,设hmax为最高分辨率时的网格单元大小,仿真空间确定后,此值固定,dmax为此时的视点到仿真空间中心的距离,则dmax=hmax·e,令:
表示向下取整,新的全局网格分辨率改变为2(N-M),其中N为最高分辨率时的指数,可由初始设定的仿真空间大小和hmax求出。在实际的仿真过程中,对大规模云场景进行绘制时,将全局网格的最高分辨率设为2(N-1),也就是说比真正的最高分辨率低一个级别,并且改变的频率也不会如此高,采用这是由于全局网格分辨率的更新较为耗时。
局部网格分辨率的变化是随着视点的移动以及物体的不断运动而发生变化的,它们的变化采用类似全局网格的变化方式。设hmax为最高分辨率时的局部网格单元大小(跟全局网格是一致的),lmax为此时的视点到仿真空间中心的距离,则lmax=hmax·e,设li为随时变化的视点到物体中心的距离,下标i表示第i个物体,令:
新的局部网格分辨率改变为2(N-L),N值同上。
通过对网格分辨率的调整可以看出,由初始的屏幕显示分辨率和屏幕显示空间,可确定仿真空间的网格最高分辨率,在视点或物体变化的时候,可以自动调整全局网格和局部网格的分辨率,不需要手工调整或是实验的方式确定分辨率的级别,达到自适应调节的目的。
4.网格单元的拆分与合并
由于仿真空间可以采用不同层级分辨率的网格,不论是全局网格还是局部网格,在变换网格分辨率时,均会出现网格的拆分与合并问题。
对二维网格,不同分辨率的网格之间符合1、4、16、……、4n这样的关系,也就是说网格单元或者是一拆四或是四合一,在x、y轴方向上的网格单元数分别是2n个,n值可以不相同,说明在x或y方向上的网格单元数目可以不相等。对三维网格,在x、y、z轴方向上的网格单元数分别是2n个(n可以不相同),网格单元是一拆八或是八合一。网格单元的合并或拆分起始位置从原点出发沿着每个轴向推进,对于局部网格,则是沿着物体所占用的边缘网格进行,图4以二维网格为例对拆分与合并过程进行了说明。
网格单元在合并之后将会有多余的数据,以及拆分后会出现新的网格单元,新的单元上使用哪些数据?本文采用线性插值方法实现不同层级单元上的数据传输与变换。一般情形下,单元拆分或合并后的数据符合图5的情形,当由高分辨率网格向低分辨率网格变换时,数据均为A=(a+b+c+d)/4,反过来,由低分辨率网格向高分辨率网格变换时,则为其它的网格单元数据变换类似处理。
对网格单元进行拆分时,会遇到单元是边缘网格单元的特殊情形,此时仍采用上面的公式,但所用到的其它边界网格单元(实际不存在)的数据按照所预设的边界值进行处理。对于合并的情形,则不会出现此问题。
参与交互的物体在仿真空间中运动之后,也许会占用新的全局网格单元,从而也会腾出新的未占用单元,这些单元上的数据按以下步骤处理:
(1)由占用到未占用
沿着物体运动的方向,从占用区域的边缘出发,由外及内的顺序,如由占用变为未占用状态,则由其周围未占用的网格单元上的数据插值确定,有几个相邻单元(未占用单元)则用几个。在三维情形下,对于边缘区域只考虑与面相邻的情形,不考虑与顶点、边相接的情形,最后将单元的占用标志变量设置为未占用;
(2)由未占用到占用
其单元内存储的数据内容不需要考虑,只需将单元的占用标志变量设置为占用。
更为复杂也是常见问题是物体运动之后,如果局部的网格分辨率发生了变化(跟全局网格不一致时,很多情况如此)。如图6中的三角形物体,初始时局部网格采用的分辨率跟全局的不一致。它占用了全局网格的4个单元,但只占用了局部网格的4个小单元(阴影区域所示),发生运动之后移动到了左下方,并且局部网格的分辨率更高,它只占用了全局网格的一个单元,占用了新的更高分辨率下局部网格的4个小单元。此种情形处理过程如下:
(a)根据运动,确定新的全局和局部网格分辨率;
(b)全局网格的拆分或合并(并不是必需的),如需要还要进行拆分或合并后的数据处理;
(c)根据层次包围盒与网格单元相交测试方法判定物体跟全局网格之间新的占用和未占用单元,并进行相应的数据处理;
(d)根据判断出的占用和未占用单元,确知物体占用了哪些新的全局网格单元,再由新的局部网格分辨率拆分或合并已占用的全局网格单元,即进行局部网格的拆分或合并;
(e)对拆分或合并后形成的局部网格的小单元,再次确定其占用和未占用情形,当有多个物体参与交互时,确保不会发生重叠。
5.基于GPU的云场景渲染
为进一步提高绘制的效率,保证大规模云场景仿真的实时性,该仿真技术充分利用了GPU的性能。
所提出的多分辨率活动网格方法可以较容易地在GPU上实现,这是由于所用的网格单元是均匀网格单元。每个网格单元上的物理量如速度、压强、温度可以直接用三维纹理进行存储。由于所用到的网格单元有是否占用的标志,根据这个标志,在不同的仿真步骤中,决定是否存储该全局网格单元上的变量到纹理元素中,只有当全局网格的分辨率发生变化时才会更新整个纹理。仿真过程中网格单元的拆分与合并虽然简单,但却是同一动作的反复进行,正适合GPU完成,故此也将其移植到GPU上实现。
考虑一个单独的时间步长,在该时间步长内,对云的生成及物体的运动方程进行计算,最后进行场景的绘制,第i个时间步长的具体算法流程如图7所示。
Claims (4)
1.一种大规模云场景绘制方法,其特征在于,包括:
(S1)多分辨率活动网格的建立;
(S2)为参与交互的物体建立OBB层次包围盒;
(S3)全局和局部网格分辨率的判定;
(S4)网格单元的拆分与合并;
(S5)基于GPU进行云场景的渲染。
2.根据权利要求1所述的大规模云场景绘制方法,其特征在于,所述步骤(S1)的多分辨率活动网格的建立通过以下步骤得到:
(S11)均匀剖分整个仿真空间为全局网格;
(S12)在参与交互的物体边界建立相应的网格空间作为局部网格。
3.根据权利要求1所述的大规模云场景绘制方法,其特征在于,所述步骤(S4)的网格单元的拆分与合并通过以下步骤得到:
(S41)根据网格分辨率的判定原则,确定网格是拆分还是合并;
(S42)从原点出发沿着每个坐标轴,按照一拆八或八合一的原则拆分或合并全局网格单元;
(S43)沿着物体所占用的边缘网格,按照一拆八或八合一的原则拆分或合并局部网格单元;
(S44)进行拆分或合并后的数据处理。
4.根据权利要求3所述的大规模云场景绘制方法,其特征在于,所述步骤(S44)的网格单元拆分或合并后的数据处理过程如下:
(S44-1)根据层次包围盒与网格单元相交测试方法判定物体跟全局网格之间新的占用和未占用单元;
(S44-2)从占用区域的边缘出发,由外及内的顺序,如由占用变为未占用状态,网格单元上的数据由其周围未占用的网格单元上的数据插值确定,将单元的占用标志变量设置为未占用;
(S44-3)如网格单元是由未占用变为占用状态,只将单元的占用标志变量设置为未占用;
(S44-4)对拆分或合并后形成的局部网格的小单元,再次确定其占用和未占用状态,当有多个物体参与交互时,确保不会发生重叠。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410850270.1A CN104574490A (zh) | 2014-12-29 | 2014-12-29 | 一种大规模云场景绘制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410850270.1A CN104574490A (zh) | 2014-12-29 | 2014-12-29 | 一种大规模云场景绘制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104574490A true CN104574490A (zh) | 2015-04-29 |
Family
ID=53090455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410850270.1A Pending CN104574490A (zh) | 2014-12-29 | 2014-12-29 | 一种大规模云场景绘制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104574490A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112364421A (zh) * | 2020-11-12 | 2021-02-12 | 天河超级计算淮海分中心 | 建筑信息模型的渲染方法、装置、计算机设备及存储介质 |
CN113538577A (zh) * | 2021-06-10 | 2021-10-22 | 广州杰赛科技股份有限公司 | 多摄像机覆盖优化方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130057653A1 (en) * | 2011-09-06 | 2013-03-07 | Electronics And Telecommunications Research Institute | Apparatus and method for rendering point cloud using voxel grid |
CN104143205A (zh) * | 2013-05-11 | 2014-11-12 | 哈尔滨点石仿真科技有限公司 | 大规模真实感体积云的实时渲染方法 |
-
2014
- 2014-12-29 CN CN201410850270.1A patent/CN104574490A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130057653A1 (en) * | 2011-09-06 | 2013-03-07 | Electronics And Telecommunications Research Institute | Apparatus and method for rendering point cloud using voxel grid |
CN104143205A (zh) * | 2013-05-11 | 2014-11-12 | 哈尔滨点石仿真科技有限公司 | 大规模真实感体积云的实时渲染方法 |
Non-Patent Citations (3)
Title |
---|
FAN XIAOLEI ET AL: "Real-Time Rendering of Dynamic Clouds Using Multi-Resolution Adaptive Grids", 《TRANSACTIONS OF NANJING UNIVERSITY OF AERONAUTICS & ASTRONAUTICS, HTTP://WWW.CNKI.NET/KCMS/DETAIL/32.1389.V.20140926.1340.002.HTML》 * |
MARK JASON HARRIS: "Real-time cloud simulation and rendering", 《UNIVERSITY OF NORTH CAROLINA AT CHAPEL HILL学位论文》 * |
邱航 等: "云的真实感模拟技术综述", 《计算机科学》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112364421A (zh) * | 2020-11-12 | 2021-02-12 | 天河超级计算淮海分中心 | 建筑信息模型的渲染方法、装置、计算机设备及存储介质 |
CN112364421B (zh) * | 2020-11-12 | 2023-10-27 | 天河超级计算淮海分中心 | 建筑信息模型的渲染方法、装置、计算机设备及存储介质 |
CN113538577A (zh) * | 2021-06-10 | 2021-10-22 | 广州杰赛科技股份有限公司 | 多摄像机覆盖优化方法、装置、设备及存储介质 |
CN113538577B (zh) * | 2021-06-10 | 2024-04-16 | 中电科普天科技股份有限公司 | 多摄像机覆盖优化方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102289845B (zh) | 一种三维模型绘制方法以及装置 | |
CN105336003A (zh) | 结合gpu技术实时流畅绘制出三维地形模型的方法 | |
CN101881830B (zh) | 重建雷达扫描数据生成三维可视地形的方法 | |
KR20100136604A (ko) | 3차원 지형 영상 실시간 가시화 시스템 및 이의 방법 | |
Zhao | Application of 3D CAD in landscape architecture design and optimization of hierarchical details | |
KR101591427B1 (ko) | 3차원 지형 영상 가시화에서의 적응형 렌더링 방법 | |
CN112530005B (zh) | 一种三维模型直线结构识别与自动修复方法 | |
CN102831275A (zh) | 一种3d流体的仿真方法及系统 | |
CN111104702A (zh) | 一种基于ue4的堤防工程可视化仿真的实现方法 | |
CN105205861A (zh) | 基于Sphere-Board的树木三维可视化模型实现方法 | |
CN102411791A (zh) | 一种静止图像动态化的方法和设备 | |
CN110400366B (zh) | 一种基于OpenGL的实时洪水灾害可视化仿真方法 | |
CN111275798A (zh) | 三维模型与特效交互系统及方法 | |
CN110335275A (zh) | 一种基于三变量双调和b样条的流体表面的时空向量化方法 | |
CN112862942B (zh) | 物理特效模拟方法、装置、电子设备和存储介质 | |
CN104851131B (zh) | 一种局部精度约束的三维地形生成方法 | |
CN104574490A (zh) | 一种大规模云场景绘制方法 | |
CN103617593A (zh) | 三维流体物理动画引擎的实现方法及装置 | |
Wang et al. | An improving algorithm for generating real sense terrain and parameter analysis based on fractal | |
US20140347373A1 (en) | Method of generating terrain model and device using the same | |
EP3748585A1 (en) | Method for fast rendering of very large 3d models | |
CN115906703A (zh) | 一种用于实时交互应用的gpu流体仿真方法 | |
Wang et al. | Roaming of oblique photography model in unity3D | |
CN115035231A (zh) | 阴影烘焙方法、装置、电子设备和存储介质 | |
US20040181373A1 (en) | Visual simulation of dynamic moving bodies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150429 |