一种流体环境影响下的群体行为控制技术的制作方法
【专利摘要】本发明提供了一种在流体环境影响下的群体行为控制技术。在基于物理的流体仿真方面,通过求解计算流体动力学方程(Navier-Stokes方程)中的平流项、外力项和压力项,更新流体的水平集、速度等物理量,基于GPU(GraphicProcessingUnit)完成流体的仿真计算。在基于势能场的群体行为规划方面,对于局部势能场和全局势能场进行有效的融合。从而在保证路径最优的同时,提高运算效率。在流体环境对于群体行为的影响方面,主要是通过对于个体(Agent)产生作用力来影响最终的导航力,以达到对于群体行为控制的目的。本发明能够有效地实现流体环境影响下的群体行为控制的真实效果。
【专利说明】一种流体环境影响下的群体行为控制技术
【技术领域】
[0001] 本发明属于虚拟现实【技术领域】,尤其涉及一种流体环境影响下的群体行为控制技 术方法。
【背景技术】
[0002] 群体动画在计算机游戏、影视动漫、城市建筑规划等很多方面都有着广泛的应用。 然而,对大规模群体行为进行仿真尤其是实时仿真是一件复杂而艰巨的工作。因为对群体 行为的仿真不仅涉及到高层的决策过程,还同时要考虑底层事物的表示以及事物之间的交 互计算。更为麻烦的是,个体与个体之间以及个体与环境之间的复杂约束关系决定了在群 体规模增大的时候,仿真运算复杂度将呈非线性增长。
[0003] 在计算机仿真研究领域,流体仿真是其中一个重要的研究方向,它就像是一种有 用的建筑积木,是仿真很多自然现象的基础。而基于物理学的流体(如烟、水、火)动画提 供了计算机图形中最让人叹为观止的视觉效果。然而由于其巨大的计算成本,它在历史上 一直属于高质量离线渲染的领域。在实时应用中,3D流体的效果往往都是依赖于粒子系统 实现。尽管粒子系统能够产生很具有吸引力的结果,但是它们并不符合流体的真实外观和 行为。基于物理的实时流体仿真仍然是一种挑战,尤其是流体与各种各样的障碍物进行交 互的仿真模拟。
[0004] 流体环境影响下的群体行为控制很少有人研究,这是因为其本身的复杂度和计算 机软硬件条件的限制。但是,群体行为控制中添加流体的影响可以增加模拟的真实度。同 时,在游戏、动画等实际应用方面也有较大的需求。
【发明内容】
[0005] 为了使群体行为更接近真实效果,本发明提供了一种流体环境影响下的群体行为 控制技术。本发明分别实现了基于物理的流体仿真、基于势能场(势能使用一个数值进行 表示,群体运动的趋势是从高势能的地方到低势能的地方,对于场景中的个体来说,会判断 周围势能的大小,从而向势能低的地方运动)的群体行为规划和流体环境对于群体行为的 影响。在基于物理的流体仿真方面,通过求解计算流体动力学方程中的平流项、外力项和压 力项,更新流体的水平集、速度等物理量,完成流体的仿真计算。对于流体中求出的物理量, 将其存储在纹理(一种数据结构,类似于CPU上的数组。在GPU上对于数据进行读写操作, 大部分都是基于纹理这种数据结构。对于纹理而言,是由纹理元素简称纹素构成,它可以设 定为单个通道或者多个通道)中。然后,流体的仿真计算就可以在GPU(图形处理器,它是 相对于CPU的一个概念,是一个专门的图形的核心处理器)下进行,大大提高了仿真的效 率。在基于势能场的群体行为规划方面,将目的地设置为势能最低的地方,对于个体周围和 障碍物周围则设置较高的势能。从而能够使得群体向着目的地运动,对于周围的障碍物和 其他个体能够进行很好的规避。对于局部势能场和全局势能场进行有效的融合,从而在保 证路径最优的同时,提高运算效率。将整个群体划分为多个小群体,这些小群体具有共同的 特征。通过这种方式,可以减少势能的计算,提高效率。在流体环境对于群体行为的影响方 面,主要是通过流体环境对个体产生作用力,从而影响个体的速度,然后达到对于群体行为 控制的目的。本发明能够有效的实现流体环境影响下的群体行为控制的真实效果。
[0006] 本发明一种流体环境影响下的群体行为控制技术,该方法包括步骤:
[0007] 步骤1,初始化流体的水平集、速度等物理量,对流体的水平集和速度进行平流;
[0008] 步骤2,处理静态场景物体,生成静态局部势能网格;
[0009] 步骤3,根据"静态局部势能"网格,针对每个网格点,生成对应的全局势能网格;
[0010] 步骤4,处理动态物体,更新周围网格;
[0011] 步骤5,对于路径规划所需要考虑的因素进行计算,这里的因素主要是指目的地的 位置和个体所受的作用力;路径规划是指个体为了到达目的地所选择的路径;
[0012] 对于路径规划所需要考虑的因素进行计算,这里的因素主要是指目的地的位置和 个体所受到的作用力;目的地的位置使用全局的最小势能表示;如果全局中有若干个目的 地,则令这些目的地的势能具有同样的大小,即同时保持全局最小;当群体中个体的目的地 信息确定之后,接下来最重要的因素就是群体中个体所受到的作用力;通过个体所受到的 作用力,可以得到加速度,从而对于个体的速度产生影响;假设个体是以环境所能允许的最 大速度行进,这里的环境是指上下坡的坡度以及人流量的大小因素;计算个体速度如公式 (1) 所示:
[0013] v = u (χ, θ ) η 9 (1)
[0014] 其中,u表示最大速度场,χ为个体所在位置,Θ表示速度的方向,η0 = [cos Θ, sin θ]τ表示在Θ方向上的单位向量。
[0015] 上述的个体速度ν没有考虑周围环境的影响,这里使用g表示周围环境的影响,即 是个体受到周围环境的作用力,对于g来说,它是可以动态变化的。通过动态变化的环境作 用力可以帮助个体规避动态的障碍物,例如汽车等。
[0016] 将上述因素结合起来考虑,下面描述个体进行路径规划需要考虑的因素。总的来 说,个体会选择到达目的地的最短路径。假定D为从地点χ到目的地的路径集合,一个位于 χ的个体选择的路径P e D,按照如下公式(2)所示:
[0017] L+T+g (2)
[0018] 其中,L表示路径的长度,T表示所消耗的时间,g表示环境作用力。这里的公式 (2) 描述了路径规划所需要考虑的三个因素,即路径长度、通过路径的时间和所受的环境作 用力。通过这三个因素的权衡,可以得到最终所选择的路径。
[0019] 步骤6,处理流体环境,计算流体环境对于周围个体产生的作用力,并计
[0020] 算最终的导航力;所谓导航力,是通过对于个体的受力进行分析之后,得到的最终 的合力,它会影响个体如何运动。
[0021] 处理流体环境,计算流体环境对于周围个体产生的作用力,并计算个体最终的导 航力时,又进一步包括:
[0022] 步骤6. 1,对流体区域所在的网格进行切片,在每个切片上区分是个体还是流体。 对于每一个切片来说,个体区域和流体区域分别使用不同数值进行标记,这样就能区分每 一个切片上的个体区域和流体区域。然后,做一次最终遍历,根据每一个切片,把数值复制 到3D纹理(这个3D纹理称之为流固3D纹理)中去。
[0023] 步骤6.2,与步骤6. 1的做法类似,对于流体网格进行切片。然后,将网格切片与 个体网状模型进行相交操作。在将切片与网状模型相交时,通过将个体网状模型划分成三 角形图元来实现。在得到三角形图元与切片的交点之后,通过插值即可得到流体与个体相 交的边界点。然后,创建一个新的3D纹理(这个3D纹理称之为边界3D纹理,同流固3D纹 理的大小和维度一致)用于存放边界点的信息。在得到边界3D纹理之后,通过对于边界点 周围的单元进行判断,可以得到边界点处的法向。将边界点的法向存储于一个新的3D纹理 (这个3D纹理称之为法向3D纹理,同边界3D纹理的大小和维度一致)。
[0024] 步骤6. 3,考虑流体环境对于个体施加的作用力,通过将个体所受的全部作用力进 行矢量合成之后,即可得到最终的导航力。流体环境对于个体施加的作用力如公式(3)所 示:
[0025]
【权利要求】
1. 一种流体环境影响下的群体行为控制技术,其特征在于,该方法包括以下步骤: 步骤1,初始化流体的水平集、速度,对流体的水平集和速度进行平流; 步骤2,处理静态场景物体,生成静态局部势能网格; 步骤3,根据静态局部势能网格,针对每个网格点,生成对应的全局势能网格; 步骤4,处理动态物体,更新周围网格; 步骤5,对于路径规划所需要考虑的因素进行计算; 步骤6,处理流体环境,计算流体环境对于周围个体产生的作用力,并计算最终的导航 力; 步骤7,根据最终的导航力产生的加速度,得到个体的速度,通过速度来实现个体的路 径规划以及规避障碍物; 步骤8,求解流体环境的压力项,得到流体的最终速度,并调整边界点处的水平集信 息; 步骤9,对于流体环境与个体的边界进行处理,使两者在边界处满足自由滑动边界条 件。
【文档编号】G06T17/30GK104299265SQ201410564383
【公开日】2015年1月21日 申请日期:2014年10月22日 优先权日:2014年10月22日
【发明者】卢光辉, 温泉, 陈雷霆, 蔡洪斌, 曹跃, 邱航, 崔金钟 申请人:电子科技大学, 东莞电子科技大学电子信息工程研究院