一种基于径向基函数的群组运动控制方法

文档序号:6464967阅读:375来源:国知局
专利名称:一种基于径向基函数的群组运动控制方法
技术领域
本发明涉及一种用户交互实时操纵大规模人群行走的计算机仿真系 统,尤其涉及一种基于径向基函数的群组运动控制方法。
背景技术
随着计算机图形学和三维动画技术的深入研究,影视作品中使用三维 特效的例子已经屡见不鲜。然而影片中浩浩荡荡的群体场面制作起来并不
容易既不能使用传统的拍摄方法,也不能利用一般的关键帧动画技术。 如果使用传统的拍摄方法,摄像机视角和脚架是最大的局限;而使用传统 的关键帧技术和角色动画技术,不仅动画师需要付出极大的劳动,群体动 画所要求的个体运动的独特性以及群体的协调性也不一定能保证。因此, 研究学者提出了计算机模拟的群组动画技术来解决这些传统技术不能解 决的问题。除了影视方面,群组动画在游戏和研究模拟等领域都有应用。 此外,在模拟中实时交互地指定群体的漫游路径经常是群组模拟中的 一个必要的操作。设想在电影后期制作中,如果艺术家可以交互地引导群 組,他就可以及时地调整模拟过程,而不必等每次模拟完成后才发现问题 而调整初始参数重新来过。然而目前大多数的群組模拟机制采用的是前摄 策略,即用户需要在模拟开始就做好所有参数的初始化,接着把控制全部 交出,由动画系统完成剩余的模拟工作。这表示要调整参数就必须修改 初始参数并将模拟从头再来过。这样如果调整比较频繁就会耗费很多时 间。目前很少有文献完全致力于群组动画的交互方面。最重要的一个恐怕 就是Crowd Brush (B. Ulicny, P. D. Ciechomski, D. Thalmann. Crowdbrush: Interactive authoring of real-time crowd scenes.o/决e 爿CM iS7怨ra/ /z/Ewragra/3/zz.cs iS戸pow'画C蘭/ wfer ylm'w加'cw(5"C4 W」,2004, 243-252) 了。它是一个里程碑,但是它包含了太多的图形界面元素,当 模拟的场景非常庞大时,这些图形元素很可能会是一个累赘一一它们将会 非常耗费系统资源。

发明内容
本发明提出了一种用于实时交互的群组动画的运动控制方法。这里, 采用速度矢量场作为主要运动控制因子,这种矢量场控制具有生成迅速快 捷并支持实时交互修改的特点。
一种基于径向基函数的群组运动控制方法,该方法包括以下步骤
(1) 用户输入群组的个体数量、个体属性和群组的全局控制参数, 实时地生成用户所要求的群组动画;
群组的个体属性包括个体的质量、邻居半径、初始速度、最大速度、 最大加速度、碰撞避免的半径、视域范围、最大驱动力、起始位置和目标 位置,其中碰撞避免的半径作为个体间避免碰撞的检测范围;
群组的全局控制参数包括群组动画模拟开始时刻的整个群组所处的 起始位置、终止时刻所要到达的目标位置。
在动画模拟的过程中群组中的每个个体被当作一个质点来处理;他们 具有相似的个体属性,包括质量M、最大速度V隱、最大加速度a皿、最 大驱动力Fmax、碰撞避免的半径r,视域范围、初始速度和邻居半径。
(2) 用户通过鼠标点击拖动等操作,在屏幕上指定一系列控制点, 并同时给定控制点对应的速度值,代表群组个体运动到该点时的需要遵从 的引导速度。
(3) 对用户输入的散乱的控制点采用径向基函数插值的方法生成运 动区域表达群组个体运动速度的矢量场,群组个体才艮据矢量场查询当前位 置的速度值,作为群组个体运动的引导分量;
矢量场作为主要的群体运动控制手段指导群体的运动方向,相比现有 技术常用的自下而上或者自上而下的群组运动控制方法,我们采取的策略 是以自上而下为基础,辅之以自下而上的控制因子,藉此来获得控制强度 和自由度的平衡。
(4 )群组中每个个体的行走规律由引导行为分量和自主行为分量两 部分组成。将群组运动模拟的过程按照时间离散化,分成若干个步长,每 个步长时间为每个时间步长群组个体从矢量场中查找引导行为分量, 并在引导行为分量和自主行为分量的共同作用下重新计算前进的速度,更 新当前的位置状态,朝下一个时间步长的位置运动,同时用户能自主的调 节弓1导行为分量和自主行为分量的比例。自主行为分量是一种经过修改的漫步行为。漫步行为也就是说,行人 以正常的速度,漫无目的在三维场景中行走。在模拟过程中,引导分量和 自主分量的比例可以由用户实时交互地调整,引导行为所依赖的矢量场也 可以交互地调整,针对不同人群特性和外界环境,每个自主行为分量和引 导行为分量两者的比例是不同的。举例来说,在紧急情况下逃生,引导行
为分量主导了人群的行为;而如果是在空旷的广场上散步,人群自然表现 出悠闲的自主行走。又或者,排队过马路的学生和緩慢行走的老人,两者 表现出来的行走方式也是大有不同的。
所述的采用径向基函数插值的方法生成表达速度的矢量场的方法为
1) 用户在群组动画的运动区域指定若干散乱的控制点作为插值中心, 输入控制点的速度,将控制点的位置与速度形成一个不重复的二维点的集 合,用来求解插值函数;
2) 将插值函数求解转换为一薄板能量泛函问题,薄板能量泛函问题 的解为一径向基函数的一线性组合及一低次多项式,通过求解线性方程组 求得径向基函数的所有系数;
3) 若该线性方程组为可逆的线性方程组则使用径向基函数插值求解 器解该线性方程组得到径向基函数的所有系数,从而求得插值函数,根据 插值函数得到矢量场中任意点的数据;
4) 若该线性方程组为不可逆的线性方程组则使用各项异性的径向基 函数插值求解器解该线性方程组得到各项异性的径向基函数的所有系数, 从而求得插值函数,根据插值函数得到矢量场中任意点的数据。
由于用户指定的散乱控制点的数目不多,因而计算效率高,即使在群 组动画模拟过程中用户也可以对速度场进行实时交互的调整,调整包括移 动控制点的位置,修改控制点的速度值,增加新的控制点或者删除现有数 据点。


图1为本发明的技术方案流程图。
具体实施例方式
下面结合附图对本发明的一种基于径向基函数的群组运动控制方法的实施例进行详细i兌明。
如图l所示,一种基于径向基函数的群组运动控制方法包括以下步骤
(1) 用户输入群组的个体数量、个体属性和群组的全局控制参数, 实时地生成用户所要求的群组动画;
将群组中的每一个个体当成一个遵守经典力学的物体,群组个体都被 当作质点处理,他们具有相似的个体属性,群组的个体属性包括个体的质 量、邻居半径、初始速度、最大速度、最大加速度、碰撞避免的半径、视 域范围、最大驱动力、起始位置和目标位置,其中碰撞避免的半径作为个 体间避免碰撞的检测范围;
群组的全局控制参数包括群组动画模拟开始时刻的整个群组所处的 起始位置、终止时刻所要到达的目标位置;
群组个体的运动由所受的合力驱动,同时限制个体所受的合力不超过 最大驱动力F隨,最大速度不超过最大速度V醒;
通常来说,我们在模拟行走或者奔跑的行人时,取质量M为 40kg 100kg,最大速度Vmax为1.5m/s 5m/s,最大加速度amax为2m/s2,碰 撞避免的半径r为0.2m 2m, ^L域范围为180度,邻居半径为lm 5m。这 里的最大驱动力Fmax=M*amax。初始速度可以为0或者大于0。
(2) 用户通过鼠标点击拖动等操作,在屏幕上指定一系列控制点, 并同时给定控制点对应的速度值,代表群组个体运动到该点时的需要遵从 的引导速度;
用数学语言来描述,就是用户给定一个不重复的、二维的点的集合 X = {Xi};"=1cW2 ^,,X)t,c912,其中Z代表用户制定的控制点,{\};=1为 一系列控制点的集合,"^,兀)L为该控制点集合中某一点相应的速度的 集合,在屏幕对应的二维平面中,x,.表示沿x方向的分速度,乂.表示沿y 方向的分速度。
(3 )对用户输入的散乱的控制点采用径向基函数插值的方法生成运 动区域表达群组个体运动速度的矢量场,群组个体根据矢量场查询当前位
置的速度值,作为群组个体运动的引导分量;
为了计算群组运动的引导行为控制矢量场,在开始群组模拟之前,由
于系统初始化的需要,用户必须提供至少一个(位置,目标速度)的二元 组来指定速度矢量场上点所对应的速度需求。目标速度即是群组个体在指定位置的速度。
生成一个矢量场有很多方法可以通过绘图,脚本,或者对采样点进 行插值,本发明采用径向基函数插值,由很少的采样点来获得插值函数, 进而得到插值过后的矢量场。这里,使用了二维的矢量场来模拟人群行走。
一个"矢量场,,可以^:看作在定义域内空间点—矢量的映射,因此,
要求一个所求矢量场的表示形式/, /表示了一个在漫游空间中任何点到
一个矢量的一对一映射
/(P,) = v,/ = 1,K," (!) 这里的矢量场中P"^,APn、 v',V2Kv"分别是群组个体的空间位置和群
组个体的速度矢量。
采用径向基函数插值的方法生成表达速度的矢量场的方法为
用户在群组动画的运动区域指定若干散乱的控制点作为插值中心,输 入控制点的速度,将控制点的位置与速度形成一个不重复的二维的点的集
合X"Xi^c5R2 "x,.,少,.)Lc5R2,用来求解插值函数; i殳才悉^f直函凄t为(诉2诉,W2 — W),
使得<formula>formula see original document page 8</formula> (2)
选择径向基函数作为插值函数,对于函数/(M) (MeW),若给定此函 数在采样点M,,M2,…,Mw e^上的函数值则可以通过插值函数
S(M)来逼近函数/(似),<formula>formula see original document page 8</formula>
当采用径向基函数作为插值函数来逼近时,S(M)的表示形式如下
<formula>formula see original document page 8</formula>
其中ms一,卢是d维的空间,M是一个d维的向量, 一般来说,d 取2维或者3维,这里可以说M是控制点,S(M)就是经过M,,M2,…,M^, 由这些点定义的函数。/YM)是一个低阶多项式函数,基函数O为[O,oo]范 围内的实函数,通常取值范围没有限制。A,是实数表示的权系数,取值在0和1之间,l.l表示欧式距离,因此lM-乾|表示A/与M,之间的距离,
由这个表达式可以看出,径向基函数就是一组径向对称基函数的加权和再 加上一个多项式项。
用薄板样条函数-W = — log("作为基函数^ ,以一般形式替换"寻到 S,(x)〃(x)+I^,(lx —x,ll)2l。g("-x,11),考虑X是二维的情况,那么5卢)=(《,《),
i =,
尸(x) = q +c2x+c3_y ;
代入求解方程组得到
"(x) = 〃 (x) + J] /If (II x — x, II)2 log( II x - x J)
';1 (4)
^ (x W (x) +》f (|卜-x, II)2 log( II H J)
应用所有的条件和限制,问题转化为求解以下线性系统,得到巧和y
中所有的系数
^11$12A 1々
$22A1S2
MMMMMMMM
l巾W2A1义w 义w
11A1000Cl0
义2A乂w000C20
乃乃A000—C3-0
在上面的矩阵中①就是(||X-X』)2l0g(|x-,具体的来说, 012-(lx广x2||)2 log(||Xl -x2||),其他系数类推。
若该线性方程组为可逆的线性方程组则使用径向基函数插值求解器
解该线性方程组得到径向基函数的所有系数;i、;i2...... ;u Cl、 C2、
c3,从而求得插值函数,根据插值函数得到矢量场中任意点的数据;
若该线性方程组为不可逆的线性方程组则使用各项异性的径向基函 数插值求解器解该线性方程组得到各项异性的径向基函数的所有系数a ,、J 2/^、 Cl、 C2、 C3,从而求得插值函数,根据插值函数得到矢量场
中任意点的数据;
所述的各项异性的径向基函数指在重新定义该线性方程系统所处的 坐标系,将原来(3)式中的欧式距离I. I改为在新坐标系下的欧式距离;
重新定义该线性方程系统所处的坐标系是指将原坐标系旋转,并对每 个轴进行适当的缩放,在新的坐标系表达下拉开散乱插值点的距离,防止 在拥挤插值点之间速度值的剧烈变化。
在群组动画模拟过程中用户也能对速度场进行实时交互的调整,调整 包括,移动控制点的位置,修改控制点的速度值,增加新的控制点或者删 除现有数据点。
矢量场作为主要的群体运动控制手段指导群体的运动方向,相比现有 技术常用的自下而上或者自上而下的群组运动控制方法,我们采取的策略 是以自上而下为基础,辅之以自下而上的控制因子,藉此来获得控制强度 和自由度的平衡;
(4)将群组运动模拟的过程按照时间离散化,分成若干个步长,每 个步长时间为St,每个时间步长群组个体从矢量场中查找引导行为分量, 并在引导行为分量和自主行为分量的共同作用下重新计算前进的速度,更 新当前的位置状态,朝下一个时间步长的位置运动,同时用户能自主的调 节引导行为分量和自主行为分量的比例;调节引导行为分量和自主行为分 量比例是通过调节引导行为分量和自主行为分量的各自所占权重来实现
的,记W;为引导行为分量的权重,巧为自主行为分量的权重,那么有+
w2=7。在具体实施过程中,我们取引导行为分量占主导地位, 一般来说, 的取值在0.5~0.9之间。 自主行为分量是一个经过改造的漫步行为,在模拟过程中,引导分量 和自主分量的比例可以由用户实时交互地调整,每一个步长,个体查询到 所在位置义相应的速度矢量(",")并据此确定自身受引导的行为,用户也 可以在模拟过程中的任何时候添加/删除/编辑已有的插值中心,本系统允 许用户暂停,修改插值中心,接着从中断点继续模拟,并在这全部的过程 中保持直观和有效,这样用户不需要为了得到一个好一点的结果就一遍一 遍地重新模拟。而且速度矢量的查询计算消耗与解线性系统相比来说是微 不足道的,这种表示矢量场计算既有效率又节省了存储空间。个体的自主行为分量,由群組个体的初始速度,质量和随机驱动外力 决定,实际上是经典的漫步行为和以所有的插值中心为参考的起规整作用 的行为的加权和,这是对插值矢量场进行了某种程度模仿。
将群组运动模拟的过程按照时间离散化,每个时间步长为&, n为第 任意步,每个时间步长群组个体重新计算、更新群组个体的速度、当前位 置等状态。那么第n步个体的漫游步行加速度"n等于随机驱动外力F!与 插值中心/ ,对个体的吸引作用F2的合力F除以质量M,计算自主行为分 量的加速度"n如(5)式所示
F,
max(; ,—p"^,1)
=F/M
(5)
其中,Aw是个体在n-l步的位置。那么,假设个体在模拟的第n步 时的速度为F ,从速度矢量场中点;V7索引到引导行为分量的速度为V, 记W;为引导行为分量的权重,w为自主行为分量的权重,计算如(6)式所 示
「" = Wl x (、—! + x + w2 x (6)
在第n步时更新个体的位置^计算如(7)式所示 尸"=尸"—l + r x & ( )
权利要求
1. 一种基于径向基函数的群组运动控制方法,该方法包括以下步骤(1)用户输入群组的个体数量、个体属性和群组的全局控制参数,实时地生成用户所要求的群组动画;(2)用户通过鼠标点击拖动等操作,在屏幕上指定一系列控制点,并同时给定控制点对应的速度值,代表群组个体运动到该点时的需要遵从的引导速度;(3)对用户输入的散乱的控制点采用径向基函数插值的方法生成运动区域表达群组个体运动速度的矢量场,群组个体根据矢量场查询当前位置的速度值,作为群组个体运动的引导分量;(4)将群组运动模拟的过程按照时间离散化,分成若干个步长,每个步长时间为δt,每个时间步长群组个体从矢量场中查找引导行为分量,并在引导行为分量和自主行为分量的共同作用下重新计算前进的速度,更新当前的位置状态,朝下一个时间步长的位置运动,同时用户能自主的调节引导行为分量和自主行为分量的比例。
2. 根据权利要求1所述的基于径向基函数的群组运动控制方法,其特 征在于步骤(3)中所述的采用径向基函数插值的方法生成表达速度的矢 量场的方法包括以下步骤1) 用户在群组动画的运动区域指定若干散乱的控制点作为插值中心, 输入控制点的速度,将控制点的位置与速度形成一个不重复的二维点的集 合,用来求解插值函数;2) 将插值函数求解转换为一薄板能量泛函问题,薄板能量泛函问题 的解为一径向基函数的一个线性组合及一个低次多项式,通过求解线性方 程组求得径向基函数的所有系数;3) 若该线性方程组为可逆的线性方程组则使用径向基函数插值求解 器解该线性方程组得到径向基函数的所有系数,从而求得插值函数,根据 插值函数得到矢量场中任意点的数据;4) 若该线性方程组为不可逆的线性方程组则使用各项异性的径向基 函数插值求解器解该线性方程组得到各项异性的径向基函数的所有系数, 从而求得插值函数,根据插值函数得到矢量场中任意点的数据。
3. 根据权利要求1所述的基于径向基函数的群组运动控制方法,其特 征在于步骤(l)中所述的用户输入的群组的个体属性包括个体的质量、 邻居半径、初始速度、最大速度、最大加速度、碰撞避免的半径、视域范 围、最大驱动力、起始位置和目标位置,其中碰撞避免的半径作为个体间 避免碰撞的4企测范围;群组的全局控制参数包括群组动画模拟开始时刻的整个群组所处的 起始位置、终止时刻所要到达的目标位置。
4. 根据权利要求1所述的基于径向基函数的群组运动控制方法,其特 征在于步骤(2)中所述的用户在屏幕上指定的一系列控制点根据用户 的要求进行实时交互的调整,调整包括控制点位置的移动、控制点速度值 的修改,增加新的控制点或者删除现有控制点。
全文摘要
本发明公开了一种基于径向基函数的群组运动控制方法,包括1.用户输入群组的各项参数,实时生成用户要求的群组动画;2.用户指定一系列控制点,并同时给定控制点对应的速度值,代表群组个体运动到该点时需要遵从的引导速度;3.对用户输入的散乱的控制点采用径向基函数插值的方法生成表达群组个体运动速度的矢量场,作为群组个体运动的引导分量;4.将群组运动模拟的过程按照时间离散化分成若干步长,每个步长群组个体从矢量场中查找引导行为分量,计算个体的自主漫游行为,在引导行为分量和自主行为分量的共同作用下朝下一个时间步长的位置运动。本发明方法采用速度矢量场作为主要运动控制因子,生成迅速快捷并支持实时交互修改。
文档编号G06T15/70GK101414384SQ20081012197
公开日2009年4月22日 申请日期2008年11月5日 优先权日2008年11月5日
发明者许佳奕, 金小刚, 黄盛晟 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1