CN111651894A - 一种布料形变实时模拟方法 - Google Patents
一种布料形变实时模拟方法 Download PDFInfo
- Publication number
- CN111651894A CN111651894A CN202010539103.0A CN202010539103A CN111651894A CN 111651894 A CN111651894 A CN 111651894A CN 202010539103 A CN202010539103 A CN 202010539103A CN 111651894 A CN111651894 A CN 111651894A
- Authority
- CN
- China
- Prior art keywords
- cloth
- particle
- force
- mass
- time
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/10—Numerical modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/14—Force analysis or force optimisation, e.g. static or dynamic forces
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种布料形变实时模拟方法,包括如下步骤:将布料参数初始化,并建立布料的质点弹簧模型;对所述布料的内部力和外部力进行受力计算;根据质点运动方程进行数值积分,求解得到所述布料上的各所述质点的位置。本发明通过求解布料上各质点的运动速度和位移,可动态模拟出布料形变,而且具有较高地形变逼真度。另外,由于算法计算量不大,可以在目前主流的计算机上实现实时的布料形变模拟,可用于CAD服装设计或实时动画影视领域。
Description
技术领域
本发明涉及布料仿真技术和动画领域,具体涉及一种布料形变实时模拟方法。
背景技术
柔性物体变形仿真技术是计算机动画中一个非常重要的研究方向,在虚拟现实、应试动画和服装CAD等技术领域中都有广泛的应用,其中布料是最具代表的柔性物体。布料在自身内部力和外部力的作用下,各质点状态会发生变化,从而导致布料外观形状变化。在布料变形中,当质点的受力非常大,布料会出现“超弹性”过度拉伸的问题。另外运动中的布料与球体等刚体对象发生碰撞时,需要避免布料发生进一步穿透的问题,所以布料仿真仍然是计算机图像学中的一个具有挑战性的问题。现有的布料形变实时模拟方法所模拟出的布料形变逼真度不高,形变模拟效果较差。另外,现有的布料模拟,计算量都很大,基本无法做到实时模拟,也因此限制了应用场景和范围。
发明内容
本发明的目的在于提供一种布料形变实时模拟方法,以解决上述技术问题。
为达此目的,本发明采用以下技术方案:
提供一种布料形变实时模拟方法,包括如下步骤:
步骤S1,将布料参数初始化,并建立布料的质点弹簧模型;
步骤S2,对所述布料的内部力和外部力进行受力计算;
步骤S3,根据质点运动方程进行数值积分,求解得到所述布料上的各所述质点的位置;
步骤S4,通过约束弹簧拉伸更新所述质点的位置;
步骤S5,检测是否有阻碍所述质点运动的障碍物,
若是,则结合障碍物碰撞情况动态更新所述质点的运动位置;
若否,则按照动态质点修正法动态更新所述质点的运动位置;
步骤S6,判断布料形变模拟过程是否结束,
若是,则退出布料形变模拟过程;
若否,则返回所述步骤S2。
作为本发明的一种优选方案,所述质点弹簧模型为基于四边形网格的质点弹簧模型或基于三角形网格的质点弹簧模型。
作为本发明的一种优选方案,所述步骤S2中,通过以下公式计算所述布料的所述内部力:
j是与质点i相连的质点;
质点i和质点j在所述布料上的位置分别为xi和xj;
质点i和质点j的位移速度分别为vi和vj;
作为本发明的一种优选方案,所述布料的所述外部力包括重力、风力、外部阻尼力或用户虚拟力中的任意一种或多种。
作为本发明的一种优选方案,所述布料上的每个所述质点所受重力Fgravity通过以下公式计算:
Fgravity=mg=Mg/n
上式中,M为所述布料的总质量;
g为重力加速度;
n为所述布料上的所述质点的数量。
作为本发明的一种优选方案,当所述质点弹簧模型为基于四边形网格的质点弹簧模型时,作用在所述布料上的所述风力可通过以下方法计算而得:
将所述布料上的每个四边形网格分解为两个三角面片;
通过以下公式计算作用在每个所述三角面片上的所述风力;
Fwind=Cwind[(Vwind-Vtriangle)×Normal]Normal
上式中,Cwind为作用在所述三角面片上的所述风力的阻尼系数;
Normal是所述三角面片的单位法向量;
Vwind为作用在所述三角面片上的风速;
Vtriangle为所述三角面片的运动速度。
作为本发明的一种优选方案,所述布料的所述外部阻尼力通过以下公式计算而得:
上式中,Fdamp表示质点j施加给质点i的总阻尼力;
Cdamp为阻尼系数;
vi表示质点i的运动速度;
vj表示质点j的运动速度;
R表示与质点i相连的弹簧的集合。
作为本发明的一种优选方案,所述布料的所述用户虚拟力通过以下公式计算而得:
Fuser=Cuser[(Vmouse-Vtriangle)×Normal]Normal
上式中,Fuser表示作用在所述布料上的所述用户虚拟力;
Cuser表示用户操纵鼠标的阻尼系数;
Vmouse表示鼠标运动速度;
Vtriangle表示鼠标点碰撞所述布料的所述三角面片的运动速度;
Normal表示所述三角面片的单位法向量。
作为本发明的一种优选方案,所述步骤S3中,所述质点运动方程通过以下公式(1)和公式(2)表达:
上式中,v(t+h)表示所述质点在当前时刻的速度;
vt表示所述质点在当前时刻的前一时刻的速度;
x(t+h)表示所述质点在当前时刻的位置;
x(t)表示所述质点在当前时刻的前一时刻的位置;
h表示当前时刻与当前时刻的前一时刻的时间步长;
Ft表示所述质点在当前时刻的前一时刻受到的合力,所述合力包括所述质点在t时刻受到的所述内部力和所述外部力;
m表示每个所述质点的质量。
作为本发明的一种优选方案,通过Verlet积分算法,并根据公式(2)的泰勒展开式进行推导以求解所述质点运动方程,具体推导过程如下:
x(t+h)=2x(t)-x(t-h)+h2F(t)/m
v(t+h)=(x(t+h)-x(t))/h
本发明通过求解布料上各质点的运动速度和位移,可动态模拟出布料形变,而且具有较高地形变逼真度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例所述的布料形变实时模拟方法的方法步骤图;
图2是基于四边形网格的质点弹簧模型的结构示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若出现术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
在本发明的描述中,除非另有明确的规定和限定,若出现术语“连接”等指示部件之间的连接关系,该术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个部件内部的连通或两个部件的相互作用关系。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
本发明一实施例提供的布料形变实时模拟方法,请参照图1,包括如下步骤:
步骤S1,将布料参数初始化,并建立布料的质点弹簧模型;本实施例采用的质点弹簧模型优选为基于四边形网格的质点弹簧模型或基于三角形网格的质点弹簧模型;基于四边形网格的质点弹簧模型的示意图请参照图2,由图2可知,四边形网格的质点弹簧模型将布料划分为若干个四边形网格,每个四边形网格的四个顶点为布料上的质点,四边形网格的边为弹簧。三角形网格中三角形的顶点为质点,三角形的边为弹簧。布料的运动可视为各个质点的位置运动,各个质点的位置运动包括质点的运动速度和位移。
步骤S2,对布料的内部力和外部力进行受力计算;内部力包括布料本身的弹性力和布料的弹簧内部的阻尼力;
步骤S3,根据质点运动方程进行数值积分,求解得到布料上的各质点的位置(位置运动);
步骤S4,通过约束弹簧拉伸更新质点的位置;弹簧拉伸是存在拉伸上限的,一旦突破拉伸上限,弹簧会断裂(布料撕裂),所以质点的运动位置受弹簧拉伸约束;
步骤S5,检测是否有阻碍质点运动的障碍物,
若是,则结合障碍物碰撞情况动态更新质点的运动位置;
若否,则按照动态质点修正法动态更新质点的运动位置;
步骤S6,判断布料形变模拟过程是否结束,
若是,则退出布料形变模拟过程;
若否,则返回步骤S2。
这里需要说明的是,步骤S5中所述的障碍物包括刚性球体等,当布料上的质点在运动过程中碰撞到障碍物时,会有突发的外部力作用在质点上而改变质点的运动轨迹,所以当质点运动遇到障碍物时需要结合具体地障碍物碰撞情况动态更新质点的运动位置。本发明实施例对碰撞到障碍物时动态更新质点的运动位置的过程不做阐述。
步骤S5中的所述动态质点修正法实际为步骤S3中所述的求解质点运动方程得到布料上各质点的运动位置的过程。
步骤S2中,通过以下公式计算布料的内部力:
j是与质点i相连的质点;
质点i和质点j在布料上的位置分别为xi和xj;
质点i和质点j的位移速度分别为vi和vj;
布料的外部力包括重力、风力、外部阻尼力或用户虚拟力中的任意一种或多种。
布料上的每个质点所受重力Fgravity通过以下公式计算:
Fgravity=mg=Mg/n
上式中,M为布料的总质量;
g为重力加速度;
n为布料上的质点的数量。
当质点弹簧模型为基于四边形网格的质点弹簧模型时,作用在布料上的风力可通过以下方法计算而得:
将布料上的每个四边形网格分解为两个三角面片;
通过以下公式计算作用在每个三角面片上的风力;
Fwind=Cwind[(Vwind-Vtriangle)×Normal]Normal
上式中,Cwind为作用在三角面片上的风力的阻尼系数;
Normal是三角面片的单位法向量;
Vwind为作用在三角面片上的风速;
Vtriangle为三角面片的运动速度。
布料的外部阻尼力通过以下公式计算而得:
上式中,Fdamp表示质点j施加给质点i的总阻尼力;
Cdamp为阻尼系数;
vi表示质点i的运动速度;
vj表示质点j的运动速度;
R表示与质点i相连的弹簧的集合。
布料的用户虚拟力通过以下公式计算而得:
Fuser=Cuser[(Vmouse-Vtriangle)×Normal]Normal
上式中,Fuser表示作用在布料上的用户虚拟力;
Cuser表示用户操纵鼠标的阻尼系数;
Vmouse表示鼠标运动速度;
Vtriangle表示鼠标点碰撞布料的三角面片的运动速度;
Normal表示三角面片的单位法向量。
步骤S3中,质点运动方程通过以下公式(1)和公式(2)表达:
上式中,v(t+h)表示质点在当前时刻的速度;
vt表示质点在当前时刻的前一时刻的速度;
x(t+h)表示质点在当前时刻的位置;
x(t)表示质点在当前时刻的前一时刻的位置;
h表示当前时刻与当前时刻的前一时刻的时间步长;
Ft表示质点在当前时刻的前一时刻受到的合力,合力包括质点在t时刻受到的内部力和所述外部力;
m表示每个质点的质量。
本实施例优选通过Verlet积分算法,并根据公式(2)的泰勒展开式进行推导以求解质点运动方程,具体推导过程如下:
x(t+h)=2x(t)-x(t-h)+h2F(t)/m
v(t+h)=(x(t+h)-x(t))/h
由推导出的公式v(t+h)=(x(t+h)-x(t))/h可知:
使用Verlet积分法只需要质点的当前位置和前一时刻位置就可以得到质点的当前速度v(t+h);
而由公式x(t+h)=2x(t)-x(t-h)+h2F(t)/m可知:
实用Verlet积分法计算质点位移时不需要使用速度就能通过一次求解得到计算结果。
综上,本发明通过求解布料上各质点的运动速度和位移,可动态模拟出布料形变,而且具有较高地形变逼真度。
需要声明的是,上述具体实施方式仅仅为本发明的较佳实施例及所运用技术原理。本领域技术人员应该明白,还可以对本发明做各种修改、等同替换、变化等等。但是,这些变换只要未背离本发明的精神,都应在本发明的保护范围之内。另外,本申请说明书和权利要求书所使用的一些术语并不是限制,仅仅是为了便于描述。
Claims (10)
1.一种布料形变实时模拟方法,其特征在于,包括如下步骤:
步骤S1,将布料参数初始化,并建立布料的质点弹簧模型;
步骤S2,对所述布料的内部力和外部力进行受力计算;
步骤S3,根据质点运动方程进行数值积分,求解得到所述布料上的各所述质点的位置;
步骤S4,通过约束弹簧拉伸更新所述质点的位置;
步骤S5,检测是否有阻碍所述质点运动的障碍物,
若是,则结合障碍物碰撞情况动态更新所述质点的运动位置;
若否,则按照动态质点修正法动态更新所述质点的运动位置;
步骤S6,判断布料形变模拟过程是否结束,
若是,则退出布料形变模拟过程;
若否,则返回所述步骤S2。
2.如权利要求1所述的布料形变实时模拟方法,其特征在于,所述质点弹簧模型为基于四边形网格的质点弹簧模型或基于三角形网格的质点弹簧模型。
4.如权利要求1所述的布料形变实时模拟方法,其特征在于,所述布料的所述外部力包括重力、风力、外部阻尼力或用户虚拟力中的任意一种或多种。
5.如权利要求4所述的布料形变实时模拟方法,其特征在于,所述布料上的每个所述质点所受重力Fgravity通过以下公式计算:
Fgravity=mg=Mg/n
上式中,M为所述布料的总质量;
g为重力加速度;
n为所述布料上的所述质点的数量。
6.如权利要求4所述的布料形变实时模拟方法,其特征在于,当所述质点弹簧模型为基于四边形网格的质点弹簧模型时,作用在所述布料上的所述风力可通过以下方法计算而得:
将所述布料上的每个四边形网格分解为两个三角面片;
通过以下公式计算作用在每个所述三角面片上的所述风力;
Fwind=Cwind[(Vwind-Vtriangle)×Normal]Normal
上式中,Cwind为作用在所述三角面片上的所述风力的阻尼系数;
Normal是所述三角面片的单位法向量;
Vwind为作用在所述三角面片上的风速;
Vtriangle为所述三角面片的运动速度。
8.如权利要求6所述的布料形变实时模拟方法,其特征在于,所述布料的所述用户虚拟力通过以下公式计算而得:
Fuser=Cuser[(Vmouse-Vtriangle)×Normal]Normal
上式中,Fuser表示作用在所述布料上的所述用户虚拟力;
Cuser表示用户操纵鼠标的阻尼系数;
Vmouse表示鼠标运动速度;
Vtriangle表示鼠标点碰撞所述布料的所述三角面片的运动速度;
Normal表示所述三角面片的单位法向量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010539103.0A CN111651894A (zh) | 2020-06-16 | 2020-06-16 | 一种布料形变实时模拟方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010539103.0A CN111651894A (zh) | 2020-06-16 | 2020-06-16 | 一种布料形变实时模拟方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111651894A true CN111651894A (zh) | 2020-09-11 |
Family
ID=72342893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010539103.0A Pending CN111651894A (zh) | 2020-06-16 | 2020-06-16 | 一种布料形变实时模拟方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111651894A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112581602A (zh) * | 2020-12-09 | 2021-03-30 | 北京维盛视通科技有限公司 | 服装动态模拟方法、装置、电子设备及存储介质 |
CN114882153A (zh) * | 2022-04-01 | 2022-08-09 | 网易(杭州)网络有限公司 | 一种动画生成的方法及装置 |
CN114925552A (zh) * | 2022-07-19 | 2022-08-19 | 武汉亘星智能技术有限公司 | 基于hpbd的布料仿真方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156785A (zh) * | 2011-04-18 | 2011-08-17 | 浙江工业职业技术学院 | 一种动态布料仿真方法 |
CN103412969A (zh) * | 2013-04-27 | 2013-11-27 | 天津大学 | 手绘织布印花图案的计算机模拟方法 |
CN104809319A (zh) * | 2015-05-25 | 2015-07-29 | 江苏大学 | 一种基于简化隐式Euler数值积分的布料仿真算法 |
-
2020
- 2020-06-16 CN CN202010539103.0A patent/CN111651894A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156785A (zh) * | 2011-04-18 | 2011-08-17 | 浙江工业职业技术学院 | 一种动态布料仿真方法 |
CN103412969A (zh) * | 2013-04-27 | 2013-11-27 | 天津大学 | 手绘织布印花图案的计算机模拟方法 |
CN104809319A (zh) * | 2015-05-25 | 2015-07-29 | 江苏大学 | 一种基于简化隐式Euler数值积分的布料仿真算法 |
Non-Patent Citations (1)
Title |
---|
汪晓斌 等: "基于物理模型的可交互的布料变形方法", 《系统仿真学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112581602A (zh) * | 2020-12-09 | 2021-03-30 | 北京维盛视通科技有限公司 | 服装动态模拟方法、装置、电子设备及存储介质 |
CN112581602B (zh) * | 2020-12-09 | 2023-07-07 | 北京维盛视通科技有限公司 | 服装动态模拟方法、装置、电子设备及存储介质 |
CN114882153A (zh) * | 2022-04-01 | 2022-08-09 | 网易(杭州)网络有限公司 | 一种动画生成的方法及装置 |
CN114925552A (zh) * | 2022-07-19 | 2022-08-19 | 武汉亘星智能技术有限公司 | 基于hpbd的布料仿真方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111651894A (zh) | 一种布料形变实时模拟方法 | |
US6909431B1 (en) | Position and shape control for cloth and soft body animation | |
Meyer et al. | Interactive animation of cloth‐like objects in virtual reality | |
US7091977B2 (en) | Animation method of deformable objects using an oriented material point and generalized spring model | |
US7791606B2 (en) | Goal-directed cloth simulation | |
JP2009529161A (ja) | 幾何学に基づくモデルを使用して変形可能物体をシミュレートする方法 | |
CN109002630B (zh) | 一种超弹性材料的快速仿真方法 | |
CN105976418A (zh) | 一种人物动态骨骼的设计系统和方法 | |
CN108230455A (zh) | 一种基于骨骼驱动的虚拟服装变形仿真方法 | |
CN106204697A (zh) | 一种布料撕裂动态模拟系统 | |
US8194079B2 (en) | Inertial field generator: a method for controllably coupling kinematic character motions to dynamically simulated elements | |
CN107146288A (zh) | 虚拟手术中支持实时按压形变的软组织模型建模方法 | |
CN109002571B (zh) | 基于等几何弹簧质点模型的布料动态仿真方法 | |
Bender et al. | Efficient Cloth Simulation Using an Adaptive Finite Element Method. | |
US9111391B2 (en) | Image generating device, image generating method, and non-transitory information storage medium | |
KR20190028634A (ko) | 디지털 크리쳐의 제작 방법 및 전자장치 | |
CN110717297B (zh) | 织物仿真模型的建立方法、系统、存储介质及电子设备 | |
Ozgen et al. | Directional constraint enforcement for fast cloth simulation | |
CN101866494A (zh) | 一种利用网格顶点对角色模型进行分割的方法 | |
CN116510295B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN109002607A (zh) | 虚拟仿真中改进的蜂窝状柔性绳索真实度的方法 | |
Mesit | Modeling and simulation of soft bodies | |
Wu et al. | Physically based animation of broad-leaf plant | |
Wei | Simulation of Deformable Solids with Anisotropy in Computer Graphics | |
CN105844698A (zh) | 一种基于自然交互的物理仿真方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200911 |