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

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

Info

Publication number
CN102324108A
CN102324108A CN201110299685A CN201110299685A CN102324108A CN 102324108 A CN102324108 A CN 102324108A CN 201110299685 A CN201110299685 A CN 201110299685A CN 201110299685 A CN201110299685 A CN 201110299685A CN 102324108 A CN102324108 A CN 102324108A
Authority
CN
China
Prior art keywords
spring
particle
cloth
deformation
constraint
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.)
Granted
Application number
CN201110299685A
Other languages
English (en)
Other versions
CN102324108B (zh
Inventor
陈小武
赵沁平
李发明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN 201110299685 priority Critical patent/CN102324108B/zh
Publication of CN102324108A publication Critical patent/CN102324108A/zh
Application granted granted Critical
Publication of CN102324108B publication Critical patent/CN102324108B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种面向无拉伸布料仿真的质点-弹簧模型约束方法,通过修正质点-弹簧模型的质点位置,实现质点-弹簧模型中结构弹簧的形变修复,具体包括:为加快约束实施的收敛速度,基于质点-弹簧模型中结构弹簧的拓扑结构和结构弹簧形变等,给出最优松弛因子;根据单根结构弹簧的形变,计算两端点质点沿弹簧方向的位置修正量的分量;将属于同一质点的位置修正量的分量进行叠加,再将叠加之和与最优松弛因子相乘,结果作为质点的位置修正量,然后更新质点位置,实现结构弹簧形变修复。在约束实施过程中,能确保布料的线动量和角动量守恒,能高效稳定地仿真无拉伸布料。本发明可广泛地应用于影视制作、数字娱乐等虚拟现实***的无拉伸布料仿真。

Description

一种面向无拉伸布料仿真的质点-弹簧模型约束方法
技术领域
本发明属于计算机仿真和虚拟现实领域,具体地说是一种面向无拉伸布料仿真的质点-弹簧模型约束方法。
背景技术
利用计算机图形学及虚拟现实技术仿真自然真实人体运动过程的方法称为人体运动仿真,具体包括建立人体及其附属品的计算模型,仿真虚拟人在给定约束条件下自然真实的物理运动过程,并在计算机生成的虚拟环境中以三维图形方式逼真呈现该运动过程。然而,自然真实人体表面有80%的面积被布料覆盖,因此布料的逼真仿真在逼真人体运动仿真中起着关键作用。
布料是天然或人工纤维的网状编织物。在力学特性上,布料具有各向异性、不可压缩、抗拉不抗弯等一些明显的特征。布料是柔性物体,容易产生各种褶皱。与刚性物体不同,布料在外力的作用下会产生很大的形变,并且用不同材料、不同制造方法制造所得布料的形变也各不相同。由于布料形变的复杂性,无法构造一个统一的、能适用各种情况的模型。主要的困难在于,布料原料及其编织方法各不相同,实验数据的离散性往往较大,不容易构造一个比较统一的力学模型。
自Terzopoulos等人1987年提出第一个布料仿真模型以来,研究人员做了大量的实验和研究,获得了布料在外力作用下形变的各种物理参数,并开发了一些物理模型描述这些形变,主要有瑞士日内瓦大学Volino等人为代表的参数化模型、法国国立计算机及自动化研究院Provot和韩国汉城大学Choi等人为代表的质点-弹簧模型等。对于布料模型在动画中的应用,只要求能产生比较真实的布料动画效果,而对力学上的精确性要求不是很高;并且,为了能产生交互性的布料动画,要求模型足够简单。因此,质点-弹簧模型因其简单而被广泛采用。
抗拉不抗弯特性是布料的关键特性。根据该特性,人们很容易区分可变形物体是否是布料。然而,质点-弹簧模型在一定程度上是可以被拉伸的,基于该模型难以逼真地表现布料的抗拉伸特性,从而迫切需要研究无拉伸布料的仿真方法。仿真无拉伸特性的布料主要有两种方案:一种是研究能满足这种特性的模型替代质点-弹簧模型,另一种是基于质点-弹簧模型的弹簧形变约束方法。已有的研究表明采用别的模型替代质点-弹簧模型,表现布料的无拉伸特性,会大大降低布料仿真***的稳定性和效率。因此,许多人选择了基于质点-弹簧模型的弹簧形变约束方法来表现无拉伸特性。
现有的约束方法主要包括两类,一类是基于三角面片的形变约束方法、另一类是基于边的部分弹簧约束方法。因为基于质点-弹簧模型表示的布料,最终都是以三角面片的形式绘制。于是,人们提出了基于三角面片的形变约束方法,约束三角面片各边的形变。由于连接质点的三角面片的边的数量大都大于等于6,若使用严格的基于三角面片的形变约束,质点的自由度会达到饱和,将导致生硬的仿真布料。因此,基于三角面片的形变约束方法只能仿真允许一定拉伸形变程度的布料,如呢绒等。研究人员发现,布料具有各向异性,在某些方向可以在一定程度内被拉伸,而在某些方向难以被拉伸,如麻类织物。因此,人们提出了基于边的部分弹簧约束方法,避免了因约束弹簧数量过多而导致质点的自由度达到饱和。基于边的部分弹簧约束方法约束质点-弹簧模型中经纬方向的弹簧形变,这与织物的经纱和纬纱对应,能够比较逼真地表现布料的无拉伸特性。
自从1995年法国国立计算机及自动化研究院Provot首次提出基于高斯赛德尔迭代的部分弹簧约束方法以来,基于边的部分弹簧约束方法的研究已经取得一定发展。这方面的代表性成果有1998年卡内基美隆大学机器人学院David Baraff提出的基于隐式积分的约束方法、2001年丹麦哥本哈根IO Interactive公司的Thomas Jakobsen提出的基于高斯赛德尔迭代的部分弹簧约束方法和2007年美国哥伦比亚大学Rony Goldenthal等研究人员提出的基于拉格朗日力学约束的弹簧形变快速投影方法。基于隐式积分的约束方法会带来额外的阻尼力,使布料看起来像橡胶;基于高斯赛德尔迭代的约束方法在约束实施过程中会引入额外的线动量和角动量,仿真的布料会因动量不守恒而出现抖动现象。
发明内容
为了克服现有技术的不足,本发明提供了一种面向无拉伸布料仿真的质点-弹簧模型约束方法。本发明的目的在于根据质点-弹簧模型的拓扑和结构弹簧的形变量,修正质点位置,快速地实施弹簧形变约束,确保在约束实施过程中布料的线动量和角动量守恒,为高效稳定地仿真无拉伸布料奠定基础。
本发明采用的技术方案是:
一种面向无拉伸布料仿真的质点-弹簧模型约束方法,基于该方法的无拉伸布料仿真过程包括以下步骤:
(1)布料及虚拟环境初始化;
(2)质点受力分析:根据质点-弹簧所处的状态,分析质点所受结构弹簧的拉力、剪切弹簧的剪切力、弯曲弹簧的弯曲力、空气阻尼力、布料内部阻尼力、重力等;
(3)质点位置预测:采用基于位置和加速度的积分方法预测质点位置;
(4)无拉伸约束实施:利用质点-弹簧模型约束方法,修正质点位置,实现弹簧形变约束;
(5)布料自碰撞及碰撞处理:采用罗伯特提出的鲁棒的布料自碰撞及碰撞处理方法实现;
(6)布料及虚拟环境渲染:采用OPENGL实时渲染和POV-RAY离线渲染两种方式渲染布料及其环境;
(7)判断下一个时间步是否到达,若是,返回第(2)步骤;若否,则结束;
其中,步骤(4)中所述的质点-弹簧模型约束方法的具体步骤如下:
(A1)根据单根结构弹簧的形变,计算两端点质点沿弹簧方向的位置修正量的分量,位置修正量的分量简称为分量;
(A2)基于弹簧与质点的邻接关系,将属于同一质点的分量叠加在一起;
(A3)基于质点-弹簧模型中结构弹簧的拓扑结构、结构弹簧形变、质点分量叠加之和,估算最优松弛因子;
(A4)将分量叠加之和与最优松弛因子相乘,结果作为质点的位置修正量;
(A5)根据获得的质点位置修正量更新质点位置,实现弹簧形变修复。
进一步的,步骤(A1)中所有质点的分量是在同一状态下求解的,确保弹簧形变修复过程中能够保持布料的线动量和角动量守恒,使得仿真的布料非常稳定。
进一步的,步骤(A2)中属于同一质点的分量,是根据连接该质点的结构弹簧形变计算得到的;因此,分量叠加是局部的而非全局的,布料的大多数细节在约束实施中能够保持下来,仿真的布料具有大量褶皱。
进一步的,步骤(A3)所述的基于质点-弹簧模型中结构弹簧的拓扑结构、结构弹簧形变、质点分量叠加之和,估算最优松弛因子,具体地说,最优松弛因子是由两个因素:质点分量叠加之和的模与结构弹簧形变量总和的比值、质点-弹簧中结构弹簧构成的四邻域拓扑结构,以及这两个因素的简单组合估计得到的。
进一步的,步骤(A4)所述的位置修正量的分量叠加之和与最优松弛因子相乘,获取质点的位置修正量,使弹簧形变约束的收敛速度加快,而且估计获得的最优松弛因子可以重复应用于同一时间步内弹簧形变约束迭代实施,从而提高弹簧形变约束实施的效率。
本发明的原理为:基于质点-弹簧模型的约束方法,将发生形变的结构弹簧恢复至其静态长度,其过程包括根据单根结构弹簧形变量计算质点沿弹簧方向的位置修正量的分量,根据结构弹簧与质点的邻接关系、将属于同一质点的位置修正量的分量叠加在一起,利用质点位置修正量的分量叠加之和的模、结构弹簧形变和质点-弹簧模型中结构弹簧的拓扑结构估算最优松弛因子,利用获得的位置修正量的分量叠加之和与最优松弛因子相乘、其结果作为质点的位置修正量,利用获得的质点位置修正量更新质点位置、实现弹簧形变修复。
质点-弹簧模型包含三类弹簧:弯曲弹簧、剪切弹簧和结构弹簧。弯曲弹簧是为了描述布料的抗弯曲属性,其受力方向在质点所在曲面的法平面外,且弹性系数一般比较小。剪切弹簧和结构弹簧的受力方向在质点所在曲面的法平面内。结构弹簧是为了描述布料沿经纬纱线方向的抗拉特性,布料在该方向一般不易被拉伸,因此其弹性系数一般比较大。剪切弹簧是为了描述布料的抗剪切特性,弹性系数适中。在大多数布料中,沿经纱线方向和纬纱方向不会有明显拉伸现象。另一方面,若剪切弹簧也受弹簧形变约束,由于质点自由度过饱和问题,质点-弹簧模型仿真的结果是一块硬壳,无法实现柔软的布料仿真。因此,本发明只约束质点-弹簧模型的结构弹簧。
弹簧的静态长度是指弹簧在不受外力和内力的情况下保持的长度。弯曲弹簧只有在其长度小于其静态长度是才有力的作用,剪切弹簧和结构弹簧只在其长度大于其静态长度时才有力的作用。因此,本发明中的静态长度是指质点-弹簧模型中三类弹簧都不受外力和内力的情况下,结构弹簧可以保持的长度。
质点位置修正量是根据质点邻接的所有结构弹簧计算得到的质点位置修正量的分量之和与最优松弛因子相乘获得的。每一个分量的方向沿着弹簧方向:当弹簧被压缩,质点位置修正量的分量方向由弹簧中间指向弹簧两端;当弹簧被拉伸,质点位置修正量分量的方向由弹簧的两端指向中间。
最优松弛因子主要受两个因素影响:约束弹簧(即结构弹簧)所组成的四邻域拓扑结构,质点位置修正量分量叠加之和的模与弹簧形变量总和的比值。因此,本发明中根据这两个因素来估算最优松弛因子。由于最优松弛因子求解简单、可重用性好,在约束实施中可以大大加快收敛的速度,从而提高无拉伸布料仿真的效率。
本发明与现有技术相比的有益效果是:1、本发明中所有质点位置修正量的分量是在同一状态下求解的、质点位置修正量的分量叠加是线性的,能确保在弹簧形变约束与修复过程中能够保持布料的线动量和角动量守恒,相对以往的可能引起角动量不守恒及布料不稳定现象的约束方法,本发明提出的质点-弹簧模型约束方法在超约束条件下也能非常稳定地仿真布料。2、本发明提出的质点-弹簧模型约束方法可以高效地实施形变弹簧修复,其高效性得益于简单的最优松弛因子估算方法、估算获得的最优松弛因子可以重复应用于同一时间步内弹簧形变迭代修复、以及质点-弹簧模型中结构弹簧组成的四邻域网状拓扑结构。
附图说明:
图1是本发明无拉伸布料仿真的流程图;
图2是本发明弹簧形变约束实施的流程图;
图3是本发明最有松弛因子ω和质点位置修正量的分量叠加之和的模与结构弹簧形变量总和的比值R的函数关系;
图4是本发明弹簧形变约束实施实例图。
具体实施方式:
下面结合附图对本发明的具体实施方式进行描述,以便更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当采用已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
本发明提出的面向无拉伸布料仿真的质点-弹簧模型约束方法,是在已有的基于质点-弹簧模型的布料仿真***中,增加弹簧形变约束,实现无拉伸布料仿真。基于质点-弹簧模型约束方法的无拉伸布料仿真过程包括初始化、受力分析、质点位置预测、无拉伸约束、布料碰撞处理、结果渲染,如图1所示。初始化包括布料及其环境初始化,主要有布料仿真所在的虚拟环境及对象,质点-弹簧模型中质点的位置和速度、质点的质量、弹簧强度系数、空气阻尼系数、布料内部阻尼系数、重力加速度、仿真时间步长等。受力分析包括质点-弹簧模型中质点的受力分析和布料所受外力分析,具体包含结构弹簧的拉力、剪切弹簧的剪切力、弯曲弹簧的弯曲力、空气阻尼力、布料内部阻尼力、重力等。因为本发明提出的弹簧形变约束是通过质点位置移动来实现的,因此,采用verlet积分器来预测质点在下一个时间步的位置,因为该积分器基于质点位置和质点受力实现质点位置预测。布料碰撞处理是采用罗伯特提出的鲁棒的布料自碰撞及碰撞处理方法实现的。
本发明提出的质点-弹簧模型约束方法实施过程如图2所示,包括:最优松弛因子求解、根据单根结构弹簧计算质点位置修正量的分量、利用最优松弛因子和质点位置修正量的分量计算质点位置修正量、质点位置更新。因为最优松弛因子与根据弹簧形变量、质点位置修正量的分量之和及约束弹簧组成的拓扑结构有关,下面我们将先介绍如何实施弹簧形变约束,再介绍最优松弛因子的求解。
首先考虑单根弹簧形变的约束实施,建立在单根弹簧上面的约束是为了使该弹簧保持其静态长度,即:
cij=|pj-pi|-lij=0
其中,pi、pj是位于弹簧端点质点i、j的位置,|pj-pi|为端点质点的欧拉距离,lij是弹簧的静态长度。假设两质点的质量分别是mi和mj,为修复形变弹簧,质点沿弹簧方向的位置修正量的分量是:
Δ p i ( ij ) = m j m i + m j · c ij · p ^ ij - - - ( 1 )
Δp j ( ij ) = - m i m i + m j · c ij · p ^ ij
其中,pij=pj-pi
Figure BDA0000095269130000063
是pij的单位向量。给定一个松弛因子ω,质点的位置修正量为:
Δpi=ω·Δpi(ij)
Δpj=ω·Δpj(ij)
质点的位置更新为:
p i ( 1 ) = p i + Δp i
p j ( 1 ) = p j + Δp j
经过弹簧形变约束实施一次迭代,弹簧的约束变为:
c ij ( 1 ) = | p j ( 1 ) - p i ( 1 ) | - l ij = ( 1 - ω ) · c ij
同理,经过弹簧形变约束实施h次迭代,弹簧的约束变为:
c ij ( h ) = ( 1 - ω ) h · c ij
约束是收敛的意味着弹簧的约束趋近于零,即:
lim h → ∞ c ij ( h ) = c ij · lim h → ∞ ( 1 - ω ) h = 0
因此,松弛因子ω应大于0,且小于2。同时,如果ω大于1,一根拉伸状态的弹簧经过一次迭代约束后可能变成压缩状态的弹簧,一根压缩状态的弹簧经过一次迭代约束后可能变成拉伸状态的弹簧,引起弹簧在约束实施过程中出现抖动现象。因此,为了避免抖动现象,获得稳定的布料仿真,松弛因子ω应在区间(0,1)内。
质点-弹簧模型中的弹簧可以分为三类:弯曲弹簧、剪切弹簧和结构弹簧。为了获得合适的自由度,形变约束只作用在结构弹簧上。结构弹簧及其邻接质点构成四邻域的拓扑结构,拓扑结构中每根弹簧连接2个质点,每个质点最多连接4根弹簧。为了实现布料的线动量和角动量在约束实施过程中守恒,本发明采用雅可比类型迭代求解质点位置修正量。该过程包括两步,第一步独立求解所有弹簧对应质点沿该弹簧方向的位置修正量分量,第二步把每个质点的这些分量分别叠加起来,再将叠加之和与用松弛因子相乘,乘得的结果作为质点在该次迭代中的位置修正量。
具体来说,假设质点-弹簧模型包含n个质点、m根约束弹簧m≤2n,质点的位置修正量分量根据公式(1)求解,质点的位置修正量为:
Δp i = ω · Σ j Δp i ( ij ) - - - ( 2 )
其中,1≤i,j≤n,然后更新质点位置。
下面我们引入准线动量Ilin和准角动量Iang来证明布料在约束实施过程中线动量和角动量是守恒的。
I lin = Σ i m i Δp i
I ang = Σ i ( p i - p ′ ) × m i Δp i
其中p′是空间中任意点的坐标。根据已有的关于动量守恒的文献,若Ilin=0则布料的线动量守恒,若Iang=0则布料的角动量守恒。将公式(2)和公式(1)代入上式中的准线动量Ilin,得:
I lin = Σ i m i ( ω · Σ j Δp i ( ij ) ) = ω · Σ i Σ j m i Δp i ( ij )
由于约束及雅可比迭代的对称性,对于集合{miΔpi(ij)|1≤i,j≤n}中的任何元素miΔpi(ij),都有一个唯一的元素mjΔpj(ij)与之对应。根据公式(1),有miΔpi(ij)+mjΔpj(ij)=0。所以Ilin=0。
根据公式(1)、准角动量公式Iang和准线动量Ilin,得:
I ang = Σ i p i × m i Δp i - Σ i p ′ × m i Δp i
= Σ i p i × m i Δp i = ω · Σ i Σ j p i × m i Δp i ( ij )
类似于Ilin=0,由于对称性,Iang=0。因此,在弹簧形变约束的实施过程中,布料的线动量和角动量守恒。
下面介绍如何求解最优松弛因子ω。
记可接受的约束误差为e,即|cij|≤e。在单根弹簧上弹簧形变约束至少要迭代h次才能使约束误差小于e,
h = 0 | c ij | ≤ e ln e - ln | c ij | ln ( 1 - ω ) | c ij | > e
因此,随着松弛因子ω从0到1增加,迭代次数h一直在减小。同时,当ω=1,在由两根弹簧组成的链中,两端点质点的质点位置修正量的分量之和可能引起质点位置修正过度、甚至弹簧形变约束不收敛。为确保约束的收敛性以及提高收敛速度,必须寻找松弛因子的最优值,即最优松弛因子。
虽然采用某些方法可以精确地求解最优松弛因子,由于描述布料的质点-弹簧模型上有成千上万的约束弹簧,精确计算开销很大。为了快速地获得最优松弛因子,我们采用估计的方法获得最优松弛因子的估计值,而不是精确值。首先分析和公式化最优松弛因子的估计量,然后根据实验修正这一估计量,最终获得估计值。
在由n质点、m约束弹簧组成的质点-弹簧模型中,弹簧形变约束实施一次迭代之后,弹簧的约束变为:
c ij ( 1 ) = | ( p j + Δp j ) - ( p i + Δp i ) | - l ij
= | ( p j - p i ) + ( Δp j - Δp i ) | - l ij
= | l ij · p ^ ij + c ij · p ^ ij + Δc ij | - l ij
其中Δcij=(Δpj-Δpi)。因此,
| c ij ( 1 ) | ≤ | c ij · p ^ ij + Δc ij |
弹簧形变约束的目的是修正质点位置,修复形变弹簧,即
Figure BDA0000095269130000085
于是,当
Σ i , j | c ij · p ^ ij + Δc ij | = 0
得到满足时,
Figure BDA0000095269130000087
可以得到满足。
由于
Σ i , j | c ij · p ^ ij + Δc ij | ≥ Σ i , j | c ij | - Σ i , j | Δc ij | - - - ( 3 )
又由于在四邻域网中质点数n与弹簧数m之间满足关系m≤2n,因此,
Σ i , j | Δc ij | = Σ i , j | Δp j - Δp i | ≤ 4 Σ i | Δp i | ≤ 4 ω · Σ i | Σ j Δp i ( ij ) | - - - ( 4 )
将公式(4)代入公式(3),得:
ω ≥ Σ i , j | c ij | - Σ i , j | c ij · p ^ ij + Δc ij | 4 Σ i | Σ j Δp i ( ij ) | - - - ( 5 )
同理,为了满足不等式
Figure BDA00000952691300000812
ω ≤ Σ i , j | c ij | + Σ i , j | c ij · p ^ ij + Δc ij | 4 Σ i | Σ j Δp i ( ij ) | . - - - ( 6 )
结合公式(5)、公式(6)和约束目标,得:
ω = Σ i , j | c ij | 4 Σ i | Σ j Δp i ( ij ) | - - - ( 7 )
用R(≠0)表示质点位置修正量的分量叠加之和的模与结构弹簧形变量总和的比值:
R = Σ i | Σ j Δp i ( ij ) | Σ i , j | c ij | ≤ Σ i Σ | Δp i ( ij ) | j Σ i , j | c ij | = 1
则公式(7)可以被简记为:
ω = 1 4 · 1 R = 1 4 + 1 4 · 1 - R R
其中,0<R≤1。若R<1/4,则ω>1,这与前面的推测ω∈(0,1]矛盾。为了将松弛因子ω限定在这一区域,必须对上式做修正。
在四邻域结构中,每个质点可能连接四根约束弹簧,根据基本的雅可比迭代求解方法,最优松弛因子应该不小于0.25。这意味着若用一个函数f(R)来替换上式右边第二项,
ω = 1 4 · 1 R = 1 4 + f ( R )
则f(R)≥0。另一方面,如前面所述若松弛因子ω接近1,则弹簧形变约束的收敛性会很差。于是我们通过布料包裹球体的实验在区间ω∈[0.25,0.85]上测试约束迭代的收敛性。时间步长是1.1ms,弹簧形变约束在每个时间步内迭代实施,直到四邻域网上所有弹簧的形变量不超过其静态长度的1%。实验统计了该过程中弹簧形变约束平均迭代次数。
结果显示当松弛因子从0.25增加到0.6附近,弹簧形变约束平均迭代次数慢慢减少;然后随着松弛因子继续增大,平均迭代次数剧增。在其他例子中也发现类似的情况,如果松弛因子大于0.75(ω>0.75),弹簧形变约束的效率非常差。因此,我们限定最优松弛因子的上限是0.75,并给出函数f(R),
f ( R ) = 1 2 · sin ( π 2 ( 1 - R ) )
ω = 1 4 + 1 2 · sin ( π 2 ( 1 - R ) )
最有松弛因子ω与比值R的函数关系如图3所示。
在无拉伸布料仿真中,本发明提出的方法更胜任于短的时间步长。在时间步长较短的情况下,比值R值在同一时间步内的变化较小,最优松弛因子在同一时间步内的变化也很小。因此,在每一时间步内对最优松弛因子估计一次,该估计值被重复应用于当前时间步内的所有迭代中。每一次迭代包括根据单根弹簧计算质点位置修正量的分量、利用最优松弛因子和质点位置修正量的分量计算质点位置修正量、质点位置更新。图4展示了由3个质点、2根弹簧组成的链的弹簧形变约束实施过程。
在一个包含n个质点的质点-弹簧模型中,其约束弹簧的数量不超过2n;而每一次约束实施迭代中,在每一个弹簧上实施约束所花的时间是常数,因此本发明提出的质点-弹簧模型中弹簧形变约束方法一次迭代所花的时间与质点数量是线性关系,约束实施的效率很高。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

Claims (5)

1.一种面向无拉伸布料仿真的质点-弹簧模型约束方法,其特征在于:基于该方法的无拉伸布料仿真过程包括以下步骤:
(1)布料及虚拟环境初始化;
(2)质点受力分析:根据质点-弹簧所处的状态,分析质点所受结构弹簧的拉力、剪切弹簧的剪切力、弯曲弹簧的弯曲力、空气阻尼力、布料内部阻尼力、重力等;
(3)质点位置预测:采用基于位置和加速度的积分方法预测质点位置;
(4)无拉伸约束实施:利用质点-弹簧模型约束方法,修正质点位置,实现弹簧形变约束;
(5)布料自碰撞及碰撞处理:采用罗伯特提出的鲁棒的布料自碰撞及碰撞处理方法实现;
(6)布料及虚拟环境渲染:采用OPENGL实时渲染和POV-RAY离线渲染两种方式渲染布料及其环境;
(7)判断下一个时间步是否到达,若是,返回第(2)步骤;若否,则结束;
其中,步骤(4)中所述的质点-弹簧模型约束方法的具体步骤如下:
(A1)根据单根结构弹簧的形变,计算两端点质点沿弹簧方向的位置修正量的分量,位置修正量的分量简称为分量;
(A2)基于弹簧与质点的邻接关系,将属于同一质点的分量叠加在一起;
(A3)基于质点-弹簧模型中结构弹簧的拓扑结构、结构弹簧形变、质点分量叠加之和,估算最优松弛因子;
(A4)将分量叠加之和与最优松弛因子相乘,结果作为质点的位置修正量;
(A5)根据获得的质点位置修正量更新质点位置,实现弹簧形变修复。
2.根据权利要求1所述的一种面向无拉伸布料仿真的质点-弹簧模型约束方法,其特征在于:步骤(A1)中所有质点的分量是在同一状态下求解的,确保弹簧形变修复过程中能够保持布料的线动量和角动量守恒,使得仿真的布料非常稳定。
3.根据权利要求1所述的一种面向无拉伸布料仿真的质点-弹簧模型约束方法,其特征在于:步骤(A2)中属于同一质点的分量,是根据连接该质点的结构弹簧形变计算得到的;因此,分量叠加是局部的而非全局的,布料的大多数细节在约束实施中能够保持下来,仿真的布料具有大量褶皱。
4.根据权利要求1所述的一种面向无拉伸布料仿真的质点-弹簧模型约束方法,其特征在于:步骤(A3)所述的基于质点-弹簧模型中结构弹簧的拓扑结构、结构弹簧形变、质点分量叠加之和,估算最优松弛因子,具体地说,最优松弛因子是由两个因素:质点分量叠加之和的模与结构弹簧形变量总和的比值、质点-弹簧模型中结构弹簧构成的四邻域拓扑结构,以及这两个因素的简单组合估计得到的。
5.根据权利要求1所述的一种面向无拉伸布料仿真的质点-弹簧模型约束方法,其特征在于:步骤(A4)所述的位置修正量的分量叠加之和与最优松弛因子相乘,获取质点的位置修正量,使弹簧形变约束的收敛速度加快,而且估计获得的最优松弛因子可以重复应用于同一时间步内弹簧形变约束迭代实施,从而提高弹簧形变约束实施的效率。
CN 201110299685 2011-09-30 2011-09-30 一种面向无拉伸布料仿真的质点-弹簧模型约束方法 Active CN102324108B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110299685 CN102324108B (zh) 2011-09-30 2011-09-30 一种面向无拉伸布料仿真的质点-弹簧模型约束方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110299685 CN102324108B (zh) 2011-09-30 2011-09-30 一种面向无拉伸布料仿真的质点-弹簧模型约束方法

Publications (2)

Publication Number Publication Date
CN102324108A true CN102324108A (zh) 2012-01-18
CN102324108B CN102324108B (zh) 2013-08-28

Family

ID=45451847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110299685 Active CN102324108B (zh) 2011-09-30 2011-09-30 一种面向无拉伸布料仿真的质点-弹簧模型约束方法

Country Status (1)

Country Link
CN (1) CN102324108B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103366054A (zh) * 2013-06-28 2013-10-23 北京航空航天大学 一种基于质点弹簧模型的衣物接缝处理和褶皱增强方法
CN104463934A (zh) * 2014-11-05 2015-03-25 南京师范大学 一种“质点-弹簧”***驱动的点集模型动画自动生成方法
CN106204697A (zh) * 2016-07-14 2016-12-07 燕山大学 一种布料撕裂动态模拟***
CN106384381A (zh) * 2016-08-31 2017-02-08 北京维盛视通科技有限公司 二维服装版片的三维展示方法及装置
CN106874563A (zh) * 2017-01-16 2017-06-20 广西大学 一种基于空间约束的可变形组件快速设计方法
CN108550180A (zh) * 2018-03-09 2018-09-18 南京信息工程大学 基于内点集域约束及高斯过程参数优化的血管建模方法
CN111028320A (zh) * 2019-12-11 2020-04-17 腾讯科技(深圳)有限公司 布料动画的生成方法、装置、计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156785A (zh) * 2011-04-18 2011-08-17 浙江工业职业技术学院 一种动态布料仿真方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156785A (zh) * 2011-04-18 2011-08-17 浙江工业职业技术学院 一种动态布料仿真方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
MICHAEL HAUTH: "Numerical Techniques for Cloth Simulation", 《SIGGRAPH 2003》, 31 December 2003 (2003-12-31) *
PASCAL VOLINO ET AL: "Implementing Fast Cloth Simulation with Collision Response", 《PROCEEDINGS OF COMPUTER GRAPHICS INTERNATIONAL》, 31 December 2000 (2000-12-31) *
RONY GOLDENTHAL ET AL: "Efficient Simulation of Inextensible Cloth", 《PROCEEDINGS OF ACM SIGGRAPH 2007》, vol. 26, no. 3, 31 July 2007 (2007-07-31) *
VLADIMIR DOCHEV ET AL: "Image-space Based Collision Detection in Cloth Simulation on Walking Humans", 《INTERNATIONAL CONFERENCE ON COMPUTER SYSTEMS AND TECHNOLOGIES》, 31 December 2004 (2004-12-31) *
沈照功 等: "基于弹簧质点模型的布料仿真及碰撞处理方法", 《计算机仿真》, vol. 23, no. 3, 31 March 2006 (2006-03-31) *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103366054A (zh) * 2013-06-28 2013-10-23 北京航空航天大学 一种基于质点弹簧模型的衣物接缝处理和褶皱增强方法
CN103366054B (zh) * 2013-06-28 2016-08-31 北京航空航天大学 一种基于质点弹簧模型的衣物接缝处理和褶皱增强方法
CN104463934A (zh) * 2014-11-05 2015-03-25 南京师范大学 一种“质点-弹簧”***驱动的点集模型动画自动生成方法
CN104463934B (zh) * 2014-11-05 2017-06-23 南京师范大学 一种“质点‑弹簧”***驱动的点集模型动画自动生成方法
CN106204697A (zh) * 2016-07-14 2016-12-07 燕山大学 一种布料撕裂动态模拟***
CN106204697B (zh) * 2016-07-14 2019-05-28 燕山大学 一种布料撕裂动态模拟***
CN106384381A (zh) * 2016-08-31 2017-02-08 北京维盛视通科技有限公司 二维服装版片的三维展示方法及装置
CN106874563A (zh) * 2017-01-16 2017-06-20 广西大学 一种基于空间约束的可变形组件快速设计方法
CN108550180A (zh) * 2018-03-09 2018-09-18 南京信息工程大学 基于内点集域约束及高斯过程参数优化的血管建模方法
CN108550180B (zh) * 2018-03-09 2021-11-19 南京信息工程大学 基于内点集域约束及高斯过程参数优化的血管建模方法
CN111028320A (zh) * 2019-12-11 2020-04-17 腾讯科技(深圳)有限公司 布料动画的生成方法、装置、计算机可读存储介质

Also Published As

Publication number Publication date
CN102324108B (zh) 2013-08-28

Similar Documents

Publication Publication Date Title
CN102324108B (zh) 一种面向无拉伸布料仿真的质点-弹簧模型约束方法
CN101542487B (zh) 图形处理器上的物理仿真
Tang et al. I-Cloth: Incremental collision handling for GPU-based interactive cloth simulation
Selle et al. A mass spring model for hair simulation
CN105302974B (zh) 一种基于有限元和时变模态分析的柔性物体实时切割仿真方法
CN101944144B (zh) 一种基于无网格的布类仿真方法
Teran et al. Adaptive physics based tetrahedral mesh generation using level sets
CN105354879A (zh) 基于质点弹簧结构的通用服装三维模型仿真方法及***
CN101711400A (zh) 使用线性拉伸/剪切模型仿真布的方法
US7091977B2 (en) Animation method of deformable objects using an oriented material point and generalized spring model
CN103810607A (zh) 虚拟试衣方法
Kenwright A lightweight rigid-body verlet simulator for real-time environments
CN109002630B (zh) 一种超弹性材料的快速仿真方法
KR100914869B1 (ko) 실시간 직물 시뮬레이션 시스템 및 방법
CN101833785A (zh) 一种具有物理真实感的可控动态形状插值方法
Schvartzman et al. Fracture animation based on high-dimensional voronoi diagrams
CN100583160C (zh) 一种基于细节编码及重构的物理变形方法
CN101425188A (zh) 带刚体核的广义弹簧振子形变仿真方法
Li et al. Subspace-preconditioned gpu projective dynamics with contact for cloth simulation
Luo et al. Deepwarp: Dnn-based nonlinear deformation
Volino et al. Stop-and-go cloth draping
Cetinaslan ESPEFs: Exponential spring potential energy functions for simulating deformable objects
Weber Fast simulation of realistic trees
CN109118561B (zh) 一种基于位置的层次化动态模拟方法
Weidner et al. Conjac: Large steps in dynamic simulation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant