一种面向无拉伸布料仿真的质点-弹簧模型约束方法

文档序号:6434736阅读:250来源:国知局
专利名称:一种面向无拉伸布料仿真的质点-弹簧模型约束方法
技术领域
本发明属于计算机仿真和虚拟现实领域,具体地说是一种面向无拉伸布料仿真的质点-弹簧模型约束方法。
背景技术
利用计算机图形学及虚拟现实技术仿真自然真实人体运动过程的方法称为人体运动仿真,具体包括建立人体及其附属品的计算模型,仿真虚拟人在给定约束条件下自然真实的物理运动过程,并在计算机生成的虚拟环境中以三维图形方式逼真呈现该运动过程。然而,自然真实人体表面有80%的面积被布料覆盖,因此布料的逼真仿真在逼真人体运动仿真中起着关键作用。布料是天然或人工纤维的网状编织物。在力学特性上,布料具有各向异性、不可压缩、抗拉不抗弯等一些明显的特征。布料是柔性物体,容易产生各种褶皱。与刚性物体不同, 布料在外力的作用下会产生很大的形变,并且用不同材料、不同制造方法制造所得布料的形变也各不相同。由于布料形变的复杂性,无法构造一个统一的、能适用各种情况的模型。 主要的困难在于,布料原料及其编织方法各不相同,实验数据的离散性往往较大,不容易构造一个比较统一的力学模型。自Terzopoulos等人1987年提出第一个布料仿真模型以来,研究人员做了大量的实验和研究,获得了布料在外力作用下形变的各种物理参数,并开发了一些物理模型描述这些形变,主要有瑞士日内瓦大学Volino等人为代表的参数化模型、法国国立计算机及自动化研究院ftxwot和韩国汉城大学Choi等人为代表的质点-弹簧模型等。对于布料模型在动画中的应用,只要求能产生比较真实的布料动画效果,而对力学上的精确性要求不是很高;并且,为了能产生交互性的布料动画,要求模型足够简单。因此,质点-弹簧模型因其简单而被广泛采用。抗拉不抗弯特性是布料的关键特性。根据该特性,人们很容易区分可变形物体是否是布料。然而,质点-弹簧模型在一定程度上是可以被拉伸的,基于该模型难以逼真地表现布料的抗拉伸特性,从而迫切需要研究无拉伸布料的仿真方法。仿真无拉伸特性的布料主要有两种方案一种是研究能满足这种特性的模型替代质点-弹簧模型,另一种是基于质点-弹簧模型的弹簧形变约束方法。已有的研究表明采用别的模型替代质点-弹簧模型, 表现布料的无拉伸特性,会大大降低布料仿真系统的稳定性和效率。因此,许多人选择了基于质点-弹簧模型的弹簧形变约束方法来表现无拉伸特性。现有的约束方法主要包括两类,一类是基于三角面片的形变约束方法、另一类是基于边的部分弹簧约束方法。因为基于质点-弹簧模型表示的布料,最终都是以三角面片的形式绘制。于是,人们提出了基于三角面片的形变约束方法,约束三角面片各边的形变。 由于连接质点的三角面片的边的数量大都大于等于6,若使用严格的基于三角面片的形变约束,质点的自由度会达到饱和,将导致生硬的仿真布料。因此,基于三角面片的形变约束方法只能仿真允许一定拉伸形变程度的布料,如呢绒等。研究人员发现,布料具有各向异
3性,在某些方向可以在一定程度内被拉伸,而在某些方向难以被拉伸,如麻类织物。因此,人们提出了基于边的部分弹簧约束方法,避免了因约束弹簧数量过多而导致质点的自由度达到饱和。基于边的部分弹簧约束方法约束质点-弹簧模型中经纬方向的弹簧形变,这与织物的经纱和纬纱对应,能够比较逼真地表现布料的无拉伸特性。自从1995年法国国立计算机及自动化研究院ftxwot首次提出基于高斯赛德尔迭代的部分弹簧约束方法以来,基于边的部分弹簧约束方法的研究已经取得一定发展。这方面的代表性成果有1998年卡内基美隆大学机器人学院David Baraff提出的基于隐式积分的约束方法、2001年丹麦哥本哈根IO Interactive公司的Thomas Jakobsen提出的基于高斯赛德尔迭代的部分弹簧约束方法和2007年美国哥伦比亚大学Rony Goldenthal等研究人员提出的基于拉格朗日力学约束的弹簧形变快速投影方法。基于隐式积分的约束方法会带来额外的阻尼力,使布料看起来像橡胶;基于高斯赛德尔迭代的约束方法在约束实施过程中会引入额外的线动量和角动量,仿真的布料会因动量不守恒而出现抖动现象。

发明内容
为了克服现有技术的不足,本发明提供了一种面向无拉伸布料仿真的质点-弹簧模型约束方法。本发明的目的在于根据质点-弹簧模型的拓扑和结构弹簧的形变量,修正质点位置,快速地实施弹簧形变约束,确保在约束实施过程中布料的线动量和角动量守恒, 为高效稳定地仿真无拉伸布料奠定基础。本发明采用的技术方案是一种面向无拉伸布料仿真的质点-弹簧模型约束方法,基于该方法的无拉伸布料仿真过程包括以下步骤(1)布料及虚拟环境初始化;(2)质点受力分析根据质点-弹簧所处的状态,分析质点所受结构弹簧的拉力、 剪切弹簧的剪切力、弯曲弹簧的弯曲力、空气阻尼力、布料内部阻尼力、重力等;(3)质点位置预测采用基于位置和加速度的积分方法预测质点位置;(4)无拉伸约束实施利用质点-弹簧模型约束方法,修正质点位置,实现弹簧形变约束;(5)布料自碰撞及碰撞处理采用罗伯特提出的鲁棒的布料自碰撞及碰撞处理方法实现;(6)布料及虚拟环境渲染采用OPENGL实时渲染和POV-RAY离线渲染两种方式渲染布料及其环境;(7)判断下一个时间步是否到达,若是,返回第(2)步骤;若否,则结束;其中,步骤中所述的质点-弹簧模型约束方法的具体步骤如下(Al)根据单根结构弹簧的形变,计算两端点质点沿弹簧方向的位置修正量的分量,位置修正量的分量简称为分量;(A2)基于弹簧与质点的邻接关系,将属于同一质点的分量叠加在一起;(A3)基于质点-弹簧模型中结构弹簧的拓扑结构、结构弹簧形变、质点分量叠加之和,估算最优松弛因子;(A4)将分量叠加之和与最优松弛因子相乘,结果作为质点的位置修正量;
4
(A5)根据获得的质点位置修正量更新质点位置,实现弹簧形变修复。进一步的,步骤(Al)中所有质点的分量是在同一状态下求解的,确保弹簧形变修复过程中能够保持布料的线动量和角动量守恒,使得仿真的布料非常稳定。进一步的,步骤(A2)中属于同一质点的分量,是根据连接该质点的结构弹簧形变计算得到的;因此,分量叠加是局部的而非全局的,布料的大多数细节在约束实施中能够保持下来,仿真的布料具有大量褶皱。进一步的,步骤(A3)所述的基于质点-弹簧模型中结构弹簧的拓扑结构、结构弹簧形变、质点分量叠加之和,估算最优松弛因子,具体地说,最优松弛因子是由两个因素质点分量叠加之和的模与结构弹簧形变量总和的比值、质点-弹簧中结构弹簧构成的四邻域拓扑结构,以及这两个因素的简单组合估计得到的。进一步的,步骤(A4)所述的位置修正量的分量叠加之和与最优松弛因子相乘,获取质点的位置修正量,使弹簧形变约束的收敛速度加快,而且估计获得的最优松弛因子可以重复应用于同一时间步内弹簧形变约束迭代实施,从而提高弹簧形变约束实施的效率。本发明的原理为基于质点-弹簧模型的约束方法,将发生形变的结构弹簧恢复至其静态长度,其过程包括根据单根结构弹簧形变量计算质点沿弹簧方向的位置修正量的分量,根据结构弹簧与质点的邻接关系、将属于同一质点的位置修正量的分量叠加在一起, 利用质点位置修正量的分量叠加之和的模、结构弹簧形变和质点-弹簧模型中结构弹簧的拓扑结构估算最优松弛因子,利用获得的位置修正量的分量叠加之和与最优松弛因子相乘、其结果作为质点的位置修正量,利用获得的质点位置修正量更新质点位置、实现弹簧形变修复。质点-弹簧模型包含三类弹簧弯曲弹簧、剪切弹簧和结构弹簧。弯曲弹簧是为了描述布料的抗弯曲属性,其受力方向在质点所在曲面的法平面外,且弹性系数一般比较小。 剪切弹簧和结构弹簧的受力方向在质点所在曲面的法平面内。结构弹簧是为了描述布料沿经纬纱线方向的抗拉特性,布料在该方向一般不易被拉伸,因此其弹性系数一般比较大。剪切弹簧是为了描述布料的抗剪切特性,弹性系数适中。在大多数布料中,沿经纱线方向和纬纱方向不会有明显拉伸现象。另一方面,若剪切弹簧也受弹簧形变约束,由于质点自由度过饱和问题,质点-弹簧模型仿真的结果是一块硬壳,无法实现柔软的布料仿真。因此,本发明只约束质点-弹簧模型的结构弹簧。弹簧的静态长度是指弹簧在不受外力和内力的情况下保持的长度。弯曲弹簧只有在其长度小于其静态长度是才有力的作用,剪切弹簧和结构弹簧只在其长度大于其静态长度时才有力的作用。因此,本发明中的静态长度是指质点-弹簧模型中三类弹簧都不受外力和内力的情况下,结构弹簧可以保持的长度。质点位置修正量是根据质点邻接的所有结构弹簧计算得到的质点位置修正量的分量之和与最优松弛因子相乘获得的。每一个分量的方向沿着弹簧方向当弹簧被压缩,质点位置修正量的分量方向由弹簧中间指向弹簧两端;当弹簧被拉伸,质点位置修正量分量的方向由弹簧的两端指向中间。最优松弛因子主要受两个因素影响约束弹簧(即结构弹簧)所组成的四邻域拓扑结构,质点位置修正量分量叠加之和的模与弹簧形变量总和的比值。因此,本发明中根据这两个因素来估算最优松弛因子。由于最优松弛因子求解简单、可重用性好,在约束实施中
5可以大大加快收敛的速度,从而提高无拉伸布料仿真的效率。本发明与现有技术相比的有益效果是1、本发明中所有质点位置修正量的分量是在同一状态下求解的、质点位置修正量的分量叠加是线性的,能确保在弹簧形变约束与修复过程中能够保持布料的线动量和角动量守恒,相对以往的可能引起角动量不守恒及布料不稳定现象的约束方法,本发明提出的质点-弹簧模型约束方法在超约束条件下也能非常稳定地仿真布料。2、本发明提出的质点-弹簧模型约束方法可以高效地实施形变弹簧修复,其高效性得益于简单的最优松弛因子估算方法、估算获得的最优松弛因子可以重复应用于同一时间步内弹簧形变迭代修复、以及质点-弹簧模型中结构弹簧组成的四邻域网状拓扑结构。


图1是本发明无拉伸布料仿真的流程图;图2是本发明弹簧形变约束实施的流程图;图3是本发明最有松弛因子ω和质点位置修正量的分量叠加之和的模与结构弹簧形变量总和的比值R的函数关系;图4是本发明弹簧形变约束实施实例图。
具体实施例方式下面结合附图对本发明的具体实施方式
进行描述,以便更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当采用已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。本发明提出的面向无拉伸布料仿真的质点-弹簧模型约束方法,是在已有的基于质点-弹簧模型的布料仿真系统中,增加弹簧形变约束,实现无拉伸布料仿真。基于质点-弹簧模型约束方法的无拉伸布料仿真过程包括初始化、受力分析、质点位置预测、无拉伸约束、布料碰撞处理、结果渲染,如图1所示。初始化包括布料及其环境初始化,主要有布料仿真所在的虚拟环境及对象,质点-弹簧模型中质点的位置和速度、质点的质量、弹簧强度系数、空气阻尼系数、布料内部阻尼系数、重力加速度、仿真时间步长等。受力分析包括质点-弹簧模型中质点的受力分析和布料所受外力分析,具体包含结构弹簧的拉力、剪切弹簧的剪切力、弯曲弹簧的弯曲力、空气阻尼力、布料内部阻尼力、重力等。因为本发明提出的弹簧形变约束是通过质点位置移动来实现的,因此,采用verlet积分器来预测质点在下一个时间步的位置,因为该积分器基于质点位置和质点受力实现质点位置预测。布料碰撞处理是采用罗伯特提出的鲁棒的布料自碰撞及碰撞处理方法实现的。本发明提出的质点-弹簧模型约束方法实施过程如图2所示,包括最优松弛因子求解、根据单根结构弹簧计算质点位置修正量的分量、利用最优松弛因子和质点位置修正量的分量计算质点位置修正量、质点位置更新。因为最优松弛因子与根据弹簧形变量、质点位置修正量的分量之和及约束弹簧组成的拓扑结构有关,下面我们将先介绍如何实施弹簧形变约束,再介绍最优松弛因子的求解。首先考虑单根弹簧形变的约束实施,建立在单根弹簧上面的约束是为了使该弹簧保持其静态长度,即
6
Cij = IPj-PiI-Iij = 0其中,PpP^是位于弹簧端点质点i、j的位置,IPj-Pi I为端点质点的欧拉距离,Iij 是弹簧的静态长度。假设两质点的质量分别是Hli和Hlp为修复形变弹簧,质点沿弹簧方向的位置修正量的分量是
权利要求
1.一种面向无拉伸布料仿真的质点-弹簧模型约束方法,其特征在于基于该方法的无拉伸布料仿真过程包括以下步骤(1)布料及虚拟环境初始化;(2)质点受力分析根据质点-弹簧所处的状态,分析质点所受结构弹簧的拉力、剪切弹簧的剪切力、弯曲弹簧的弯曲力、空气阻尼力、布料内部阻尼力、重力等;(3)质点位置预测采用基于位置和加速度的积分方法预测质点位置;(4)无拉伸约束实施利用质点-弹簧模型约束方法,修正质点位置,实现弹簧形变约束;(5)布料自碰撞及碰撞处理采用罗伯特提出的鲁棒的布料自碰撞及碰撞处理方法实现;(6)布料及虚拟环境渲染采用OPENGL实时渲染和POV-RAY离线渲染两种方式渲染布料及其环境;(7)判断下一个时间步是否到达,若是,返回第(2)步骤;若否,则结束; 其中,步骤中所述的质点-弹簧模型约束方法的具体步骤如下(Al)根据单根结构弹簧的形变,计算两端点质点沿弹簧方向的位置修正量的分量,位置修正量的分量简称为分量;(A2)基于弹簧与质点的邻接关系,将属于同一质点的分量叠加在一起; (A3)基于质点-弹簧模型中结构弹簧的拓扑结构、结构弹簧形变、质点分量叠加之和, 估算最优松弛因子;(A4)将分量叠加之和与最优松弛因子相乘,结果作为质点的位置修正量; (A5)根据获得的质点位置修正量更新质点位置,实现弹簧形变修复。
2.根据权利要求1所述的一种面向无拉伸布料仿真的质点-弹簧模型约束方法,其特征在于步骤(Al)中所有质点的分量是在同一状态下求解的,确保弹簧形变修复过程中能够保持布料的线动量和角动量守恒,使得仿真的布料非常稳定。
3.根据权利要求1所述的一种面向无拉伸布料仿真的质点-弹簧模型约束方法,其特征在于步骤(A2)中属于同一质点的分量,是根据连接该质点的结构弹簧形变计算得到的;因此,分量叠加是局部的而非全局的,布料的大多数细节在约束实施中能够保持下来, 仿真的布料具有大量褶皱。
4.根据权利要求1所述的一种面向无拉伸布料仿真的质点-弹簧模型约束方法,其特征在于步骤(A3)所述的基于质点-弹簧模型中结构弹簧的拓扑结构、结构弹簧形变、质点分量叠加之和,估算最优松弛因子,具体地说,最优松弛因子是由两个因素质点分量叠加之和的模与结构弹簧形变量总和的比值、质点-弹簧模型中结构弹簧构成的四邻域拓扑结构,以及这两个因素的简单组合估计得到的。
5.根据权利要求1所述的一种面向无拉伸布料仿真的质点-弹簧模型约束方法,其特征在于步骤(A4)所述的位置修正量的分量叠加之和与最优松弛因子相乘,获取质点的位置修正量,使弹簧形变约束的收敛速度加快,而且估计获得的最优松弛因子可以重复应用于同一时间步内弹簧形变约束迭代实施,从而提高弹簧形变约束实施的效率。
全文摘要
本发明提供一种面向无拉伸布料仿真的质点-弹簧模型约束方法,通过修正质点-弹簧模型的质点位置,实现质点-弹簧模型中结构弹簧的形变修复,具体包括为加快约束实施的收敛速度,基于质点-弹簧模型中结构弹簧的拓扑结构和结构弹簧形变等,给出最优松弛因子;根据单根结构弹簧的形变,计算两端点质点沿弹簧方向的位置修正量的分量;将属于同一质点的位置修正量的分量进行叠加,再将叠加之和与最优松弛因子相乘,结果作为质点的位置修正量,然后更新质点位置,实现结构弹簧形变修复。在约束实施过程中,能确保布料的线动量和角动量守恒,能高效稳定地仿真无拉伸布料。本发明可广泛地应用于影视制作、数字娱乐等虚拟现实系统的无拉伸布料仿真。
文档编号G06T19/00GK102324108SQ20111029968
公开日2012年1月18日 申请日期2011年9月30日 优先权日2011年9月30日
发明者李发明, 赵沁平, 陈小武 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1