一种流体环境下人体运动仿真方法

文档序号:6631265阅读:392来源:国知局
一种流体环境下人体运动仿真方法
【专利摘要】本发明提供了一种流体环境下人体运动仿真方法,其基于真实物理的仿真,并且了实现人体与流体的交互。在人体建模的基础上,发明了耦合面交互的技术、计算子链运动速度的技术、计算目标路径的技术和跟踪目标路径的技术。在局部仿真阶段,人体模型建立在拉格朗日动力学的基础上,能够很好的仿真人体独立运动状态;在交互仿真阶段,基于采样数组的耦合面传递方法使交互效率得到提高,基于粘滞阻力的速度计算方法使交互速度改变更为平稳,效果更为逼真;在整体仿真阶段,基于三维A星算法得到的目标路径满足人体在流体中的运动特点并且具有连续性,基于视觉空间的状态选择算法使人体能够很好跟踪目标路径,并且可以选择的运动状态更多。
【专利说明】一种流体环境下人体运动仿真方法

【技术领域】
[0001] 本发明属于虚拟现实【技术领域】,尤其涉及一种流体环境下的人体运动仿真方法。

【背景技术】
[0002] 人体运动动画属于角色动画,是一直是虚拟现实技术研究的热点之一。它综合利 用计算机科学、艺术、数学、物理学和其它相关学科的知识,在计算机上生成绚丽多彩的、连 续的、真实的虚拟画面,给人们提供了一个充分展示个人想象力和艺术才能的新天地。人体 运动动画使用关节骨架来表示人类或者其他骨架动物的身体结构,在运动的过程中与周围 场景进行交互,是人体运动技术中最主要的思想。虽然计算机动画在许多领域占据着越来 越重要的角色,但是许多问题仍未很好解决。
[0003] 基于物理模型的人体交互技术是八十年代后期发展起来的一种新的计算机动画 技术。这种建模技术考虑了物体在真实世界中的属性,如它具有质量、转动、碰撞、能量等, 并采用动力学原理来产生物体运动,采用基于物理的能量公式来表达物体运动的速度。计 算机动画设计者不必关心物体运动过程的细节,只需确定物体运动所需的一些物理属性及 一些约束关系,如质量、动力、场景设计等。经过近几年的发展,它已在图形学中成为一种具 有潜在优势的三维造型和运动模拟技术。尽管该技术比传统动画技术的计算复杂度要高得 多,但它能逼真地模拟各种自然人体运动现象,能处理人与流体、气体交互等在内的复杂动 力学模型,这是基于几何的传统动画生成技术所无法比拟的。
[0004] 虽然利用现有技术能够实现一定程度上的交互,但是在基于真实物理的复杂场景 作用下的人体运动动画却少有人研究,这是由于受到本身动力学复杂的模型与计算机软硬 件条件的限制。流体环境下的人体运动动画技术在电影动画,生物游泳力学,视频游戏以及 潜水机器人领域等方面都具有重要作用。此外,基于流体环境的关节动画研究也在一定程 度上为其他复杂受力场景提供了关节动画的解算依据。


【发明内容】

[0005] 鉴于上述不足之处,本发明提供了在流体环境下人体运动仿真的方法,仿真过程 包括局部仿真、交互仿真和整体仿真,主要步骤包括以下:
[0006] 步骤1,解析XML资源文件,初始化人体运动参数并建立人体运动模型;
[0007] 步骤2,在人体运动的局部空间中,人体模型进行独立仿真;
[0008] 步骤3,在人体子链包围盒上,建立采样数组并对耦合面进行采样,对未通过采样 的耦合面进行插值计算;
[0009] 本步骤中采用了一种耦合面交互法技术,该技术在人体子链包围盒上建立采样数 组,通过对耦合面采样,降低传递数量,达到提高交互效率的目的。对应空间中每个耦合面 的位置,有采样数组的映射公式(1)、公式(2)。
[0010]
[0011]
[0012] 包围盒的半径固定,公式(1)将三维坐标转换成二维角度坐标,公式(2)将角度坐 标转换到包围盒上的数组坐标。坐标仍.,,I>代表稱合面映射到数组中的坐标。
[0013] 在遍历数组寻找耦合面时,不遍历整个数组,因为将退化成遍历所有的耦合面。设 定每隔2个单位对数组采样,取得数组单元后再判断是否含有耦合面,如果有则进一步计 算。
[0014] 将通过采样的耦合面传递给人体仿真计算,计算后的结果用以插值计算没有通过 采样的耦合面的信息,有插值公式(3)。
[0015]

【权利要求】
1. 一种流体环境下人体运动仿真的方法,其特征在于该方法包括以下步骤: 步骤1,解析XML资源文件,初始化人体运动参数并建立人体运动模型; 步骤2,在人体运动的局部空间中,人体模型进行独立仿真; 步骤3,在人体子链包围盒上,建立采样数组并对耦合面进行采样,对未通过采样的耦 合面进行插值计算; 步骤4,计算流体对人体的粘滞阻力,将人体子链的速度公式由线性改为非线性并对其 进行计算; 步骤5,在三维A星算法的基础上,计算人体运动的目标路径,并对目标路径的序列做 连续化处理; 步骤6,依据路径的距离向量和切线向量在人体视觉空间中的象限分布,通过状态选择 算法,确定状态改变量并计算运动角速度; 步骤7,根据人体与流体的交互信息,计算人体在流体中的运动能量,计算运动线速度。
2. 根据所述的流体环境下的人体运动仿真方法,其特征在于,所述步骤3具体为:采用 了一种耦合面交互法技术,该技术在人体子链包围盒上建立采样数组,通过对耦合面采样, 降低传递数量,达到提高交互效率的目的,对应空间中每个耦合面的位置,有采样数组的映 射公式(1)、公式(2):
包围盒的半径固定,公式(1)将三维坐标转换成二维角度坐标,公式(2)将角度坐标转 换到包围盒上的数组坐标;坐标(^L.,)代表稱合面映射到数组中的坐标; 在遍历数组寻找耦合面时,不遍历整个数组,因为将退化成遍历所有的耦合面;设定每 隔2个单位对数组采样,取得数组单元后再判断是否含有耦合面,如果有则进一步计算; 将通过采样的耦合面传递给人体仿真计算,计算后的结果用以插值计算没有通过采样 的奉禹合面的信息,有插值公式(3):
其中,a(i,代表数组对应坐标上的耦合面的加速度。
3. 根据所述的流体环境下的人体运动仿真方法,其特征在于,所述的步骤4具体为:采 用一种人体子链的速度计算公式,与常规方法的不同之处在于,该方法加入了流体的粘滞 阻力,其加速度随着速度的变化而变化,速度公式由线性公式改为非线性公式,加速度计算 公式⑷如下:
公式(4)中,第三项为流体对人体的粘滞阻力表达式,其中k是常量系数,Il是流体粘 滞系数,μ是人体触水面积,?表示人体子链当前运动速度;当温度为25摄氏度时,水的粘 滞系数为1. 0050 ;ητ为耦合面的法向为人体子链在广义空间里的速度; 速度计算公式(5)如下:
人体与流体的交互总面积为S,将其分成k等份,则有S =称Si为流体人体交互 的耦合面; 计算出每一个耦合面的作用力,建立一个kXn的选择矩阵,将k个耦合面从总数η个 中挑选出来;其中,每个耦合面的压力表达式为公式(6): Ti = Jj (Kxf P1H1 (6) 其中,J=PlXl,…,,Ili代表第i个耦合面的单位法向量,有耦合面受到的 压力表达式为公式(7): Tp =(Ax)2JSp (7) 其中,雅可比)的表达式为公式(8):
公式(8)中,χ是一个维度为SiXm的矩阵,描述耦合面的法向量在笛卡尔积空间中对 人体3个方向的作用的程度,代表在第i个铰链体上的所有耦合面的集合,Si表示集 .T 合元素的数量;J为kXn维度的矩阵,即代表从广义空间转换到耦合面空间的转换; 在广义空间下,将所有耦合面进行积分&>_ 人体自由度的受的压力可以表示 S 为公式(9):
公式(9)中的三项表达式分别为阻力、人体动力和粘滞力;集合S'表示采样耦合面的 , 1 集合,有S 9 计算第j个耦合面对第i个铰链体的压力为τi,再将所有的耦合面对铰链体的压力进 行积分5=i'便可以得到人体自由度所受到的压力;根据速度公式(5)变换得到泰勒 5 展示(10)和迭代公式(11):
将公式(10)带入公式(11),得到速度计算公式(12):
4. 根据权利要求1所述的流体环境下的人体运动仿真方法,其特征在于所述步骤5具 体为: 采用一种在流体环境下计算人体运动的目标路径的算法; 该算法建立在三维A星算法上,首先对流体空间进行网格化,然后初始化空间参数,接 着利用A星算法计算人体运动的目标路径序列,最后对序列进行连续化处理,使其能够满 足下一阶段的计算要求; 三维A星算法中的估价函数为公式(13):
其中,L表示当前节点到终点的欧式距离,a表示起点到当前节点的线段与当前节点到 终点的线段的夹角;W1和W2分别为距离与角度的加权值; 对每个序列号Qi,有网格Grid(i,j,k)对应空间中的点World(X,y,z),其切线方向为Tagent(tx,ty,tz);该序列构成一个离散的点集,在对空间连续点的求解过程中,需要对每 个点进行插值计算切线方向,如公式(14):
5. 根据权利要求1所述的流体环境下的人体运动仿真方法,其特征在于所述步骤6具 体为:采用了一种跟踪目标路径的算法,该算法根据向量在视觉空间中的象限分布和状态 选择算法,从状态集合中选择改变值,该方法与常规不同之处,使得跟踪效果更逼真,状态 改变种类更多; 设定人体视觉空间B,该空间以平行人体运动方向为z轴,垂直人体方向为y轴,平行人 体横截面为X轴;将距离向量与切线向量转换到B空间,转换公式如公式(15)、公式(16): Ad't =Jview · (Ad111-Adt) (15) 孓?'((《》¥九,1) (16) 其中,Jview表示从世界空间转换到人体视觉空间的转换矩阵,(qmqt)qm_qt表示目标路径 的切线向量qt以人体运动切线qm为法线的平面Π上的投影,即把切线qt投影到视觉空间 的x〇y平面上; 状态选择公式(17)如下:
其中,direct代表状态改变方向,state代表状态改变等级。
6.根据权利要求1所述的流体环境下的人体运动仿真方法,其特征在于所述步骤7具 体为:采用了一种人体运动能量公式,进一步包括一下,
Eraipmd表示为消耗能,及先后两次运动时所在的状态差异带来的耗能,可以表示为Statei->Statei+1所带来的能量变化; Eexpend = _(kT(Ad)+rT( Λ a )) (19) kT代表斜率差,Ad代表位移差,Λα代表根节点的转动,rT代表运动轴的转动;一次 运动模型自身所消耗的能量为Eraipmd ; E^lisim为碰撞能,描述的是人体自身发生的碰撞所消耗的能;通过碰撞检测技术来估 算人体发生碰撞的所有链的速度Vdll^ ;
Epunish是在流体中改变运动动作的惩罚能;流体在不断变化的同时,给人体模型带来不 同的压力τ;
τi表示流体对人体第i个链的压力,把对支链的压力分为前后两个集合;公式表示为
Edeviatim表示为人体模型运动的轨迹与目标轨迹所带来的偏差;Edeviatim = I I Δ d_kT ( Λ d) k I I +1 I Λ a -rT ( Λ a ) r I I (23)。
【文档编号】G06T13/40GK104318601SQ201410568918
【公开日】2015年1月28日 申请日期:2014年10月22日 优先权日:2014年10月22日
【发明者】卢光辉, 秦富春, 陈雷霆, 蔡洪斌, 曹跃, 邱航, 崔金钟 申请人:电子科技大学, 东莞电子科技大学电子信息工程研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1