基于有限元方法的虚拟服装仿真系统

2014-10-21 12:55贾博吴壮志
电子世界 2014年23期
关键词:褶皱有限元

贾博 吴壮志

【摘要】基于有限元方法设计并实现了一种虚拟服装仿真系统。首先基于有限元方法对服装布料所受拉伸力和弯曲力进行建模;然后将组成服装的多块布料根据对应关系进行缝合;最后在布料缝合过程中,检测布料与人体模型之间发生的碰撞并进行碰撞响应。实验结果表明,本系统具有仿真速度快和稳定性高的特点,在褶皱及折痕等细节方面也有较好的表现。

【关键词】服装仿真;有限元;褶皱

1.引言

随着计算机硬件的发展和计算机图形学的进步,服装仿真技术日渐成熟,广泛应用于3D电影制作、游戏制作、虚拟试衣、服装CAD等领域。服装仿真技术,使用力学模型将现实生活中的服装通过计算机进行仿真重现,无需试穿便能看到真实的服装穿戴效果。由于服装属于低抗弯刚度的软物质[1],与一般力学仿真中的刚性体、弹性体和塑性体等都有一定的区别,而且服装布料的属性多样,所以如何保证在较快仿真速度下获得折痕、褶皱等细节精度一直是服装仿真上的难点和重点。

服装仿真的关键部分是力学模型,国内外学者对此进行了比较深入的研究。Baraff D和Witkin A[2]提出的仿真系统基于有限元方法,使用隐式积分策略,能够在大时间步长下进行仿真;Volino P等[3]将隐式积分方法应用于质点弹簧模型,加快了仿真速度,但是在褶皱、折痕等细节方面的仿真效果较差;Etzmu? O等[4]提出了一种共旋转的方法,通过将应变张量分解为转动矩阵与Cauchy线性张量相乘的形式解决了有限元中使用Cauchy应变张量旋转失真的问题,缺点是旋转矩阵的计算比较耗时;Umetani N等[5]提出了应用于实时交互的仿真模型,使用非线性Green-Lagrange应变张量的有限元方法[6],取得了较好的仿真效果;Wang H等[7]提出了数据驱动的仿真方法,通过基于力学的仿真模型获得精确的样本进行离线学习和训练,在实时仿真过程中先快速仿真粗糙的服装,再根据离线学习数据添加精细的褶皱、折痕等细节。本文提出的虚拟服装仿真系统,基于有限元方法,结合弯曲力模型,实现一种精确、稳定、快速的仿真方法。在实现过程中,通过预计算对有限元方法进行了加速,并对原有的弯曲力模型进行扩展,使其能够对各向异性服装布料进行仿真。

2.系统流程

本文提出的虚拟服装仿真系统,以2D服装设计样式图作为输入,手动指定服装面片之间的缝合关系,将二维空间的服装面片映射到三维空间中,根据衣片间指定的对应关系进行缝合,使得虚拟服装衣片逐渐靠近并悬垂在3D虚拟人体模型上。在仿真计算的过程中,首先基于有限元方法和弯曲力模型计算出服装布料离散化后各质点所受到的弹性力和弯曲力,加上重力、摩擦力等外力,获得施加在每个质点的合力;然后根据牛顿第二定律,使用显示积分或者隐式积分方法计算出质点下一时刻位移;通过位移进行碰撞检测,对发生碰撞的点进行碰撞响应,防止发生穿刺现象。上述计算过程会在仿真过程中不断地迭代,最后收敛到一个稳定状态。本系统的流程图如图1所示。

图1 虚拟服装仿真系统流程图

3.力学模型

基于力学的服装仿真一般对面内弹性力和面外弯曲力分开建模,本文对面内弹性力使用有限元方法,使用非线性Green-Lagrange应变张量作为应变度量,通过预计算对有限元方法进行加速;在建模面外弯曲力方面,使用等距弯曲模型,并对其进行扩展,使其能够对各向异性材料进行弯曲力的计算。为了避免在仿真过程中彈性力引起的过度震荡,加快仿真收敛速度,本系统依据布料属性对每个质点施加了简单的阻尼力。

3.1 有限元模型

由弹性力学可知,布料内部张力产生的形变由应变来描述,张力由应力来描述,假定所使用的材料满足Hooke定律,即应力应变满足线性关系,如公式(1)所示。

(1)

其中,E为杨氏模量,描述材料抵抗形变的能力,v泊松比,描述横向应变与纵向应变的比例关系。本文使用x来表示2D初始材料坐标系下点的坐标,p来表示形变过程中3D世界坐标系中的坐标,在初始材料坐标系的每个三角形中,对于三角形内的任一点x,可以由三角形的3个顶点线性表示,如公式(2)

x=a(x1-x0)+b(x2-x0)             (2)

变形后的点也使用相同的权重来表示:

p(x)=a(p1-p0)+b(p2-p0)

p(x)=[p1-p0,p2-p0][x1-x0,x2-x0]-1x=px (3)

为了方便公式计算,可以假定x0=0,p0=0,后面公式中将使用x1,x2来代替x1-x0,x2-x0,使用p1,p2来代替p1-p0,p2-p0。由公式(2)(3)可将位移表示为:

u(x)=p(x)-x                      (4)

根据公式(4)可得到=P-I,由Green-Lagrange张量可得应变为:

(5)

对公式(5)展开后化简可得:

(6)

其中A=[x1,x2]-1,为2x2的一个矩阵,可以提前计算得到,由此B也可以提前计算来加快仿真速度。由弹性力学理论可得单位面积能量w与应力和应变的关系为,假设三角形单元的整体能量为W,则三角形每个顶点处所受到的力为:

(7)

其中s为三角形的面积。将公式(1)和(6)代入到公式(7)可得:

(8)

其中C为:

由公式(8)可以看出,K为可提前计算出的常量,因此通过预计算本文对每个点受力情况的计算速度非常快。

3.2 弯曲力模型

本文假设布料在当前弯曲状态下产生的抗弯曲变形力不会导致布料元素产生非等距变换,即当前状态下的布料曲面为不可延展曲面,对形变能量采用等距弯曲模型[8]进行建模。该模型计算连续曲面S的形变弯曲能量为:

其中H为平均曲率,dA为微分区域,该能量与Willmore能量相似,具有刚体运动不变性。对其进行离散化可推导出:

其中ei为相邻三角形的邻接边,Q为可预先计算出的二次型矩阵[8]。

该等距弯曲模型无法衡量各向异性弯曲力,为了使其适用于各向异性材料,本文对其进行扩展,为每个边赋一个简单的刚度权重。

(9)

其中ku,kv分别为u,v方向上的弯曲刚度,△u,△v分别为边ei两个顶点在u,v方向上的差值。

3.3 阻尼力

在服装仿真过程中,弹性力很容易引起震荡效果,使得仿真过程无法快速稳定。为了解决这个问题,本文引入了一种简单的线性阻尼力模型,该模型与质点的速度线性相关。

Fi=-kd(vi-vj)                    (10)

其中kd为阻尼系数。通过引入阻尼力,使得系统的收敛速度大大加快,而且阻尼力减缓了质点位移的变化率,使得系统变得更加稳定。

4.系统实现

通过上述力学模型可以获得每个质点的受力情况,本文采用Baraff D等[2]提出的隐式积分策略来计算质点的速度变化:

(11)

其中M为质量矩阵,在有限元方法中,质量分布在每个三角形单元上,本文使用质量集中近似,将三角形的整体质量离散化平均分配给三个顶点。公式(11)可看做求解稀疏线性方程组A△v=b,本文使用共轭梯度的方法进行求解。将2D服装面片转换为3D服装需要进行面片缝合,本文采用的缝合方法为惩罚力方法,在需要缝合的边界对应点之间使用抗拉刚度远大于布料材质抗拉刚度的弹簧,该方法能够保证系统的正定性,而且相对于其他方法不会降低系统的收敛速度。同时,本文对服装运动过程中发生碰撞进行响应的方法也采用的惩罚力方法,在预计算出来的碰撞点放置惩罚力弹簧,来阻止物体发生碰撞后的穿刺现象。本文所提出的虚拟服装仿真系统的整体算法描述如下:

虚拟服装仿真系统算法描述

输入:2D服装面片

输出:3D服装仿真结果

(1)//步骤1:系统预计算

(2)服装面片三角网格化,并指定缝合关系

(3)预计算公式(8)中K,公式(9)中Q和k

(4)//步骤2:系统实时仿真

(5)While

(6)根据力学模型计算各质点受力f,,

(7)使用CG方法求解方程(11)

(8)碰撞检测及响应

(9)更新质点位置p和速度v

(10)End while

5.实验结果与分析

实验所用的计算机配置是Intel(R) Core (TM) i5 @ CPU 3.2GHz*2和RAM 8.00 GB,分别对本文提出的系统在仿真速度和仿真效果进行了实验。

5.1 仿真速度

表1 不同模型的仿真时间对比

# 质点个数 质点弹簧模型 本文的模型

f&(ms) cg(ms) f&(ms) cg(ms)

FEM Bending

5041 12.024 10.812 7.82 5.669 26.995

10201 25.821 18.196 17.113 14.384 69.962

为了在仿真速度上进行对比,本文实现了一个简单地质点弹簧模型。通过实验可以看出本文对有限元方法进行加速后,对f和的计算速度与质点弹簧模型相差无几,但是所使用的CG方法求解稀疏线性方程组(11)的收敛速度相比质点弹簧模型较慢。

5.2 仿真效果

本系统对简单结构的服装进行了仿真实验,实验效果如图2所示。通过实验可以得出本系统拥有较快的仿真速度,同时从图中可看出系统对于褶皱、折痕的细节也有较好的表现力,从整体来看与现实生活中的穿衣效果极为接近。

图2 服装仿真效果图

6.结束语

本文提出了一种基于有限元方法的虚拟服装仿真系统,通过对有限元方法进行预计算处理加快其仿真速度,结合扩展的等距弯曲模型增加仿真精度,引入简单的阻尼力提高系统收敛速度和稳定性。实验结果表明,本文提出的系统用有较快的仿真速度,对褶皱、折痕等细节也有很好的表现力,仿真结果与现实中的穿戴效果非常相似。

参考文献

[1]Liu Y J,Zhang D L,Yuen M M F.A survey on CAD methods in 3D garment design[J].Computers in Industry,2010,61(6):576-593.

[2]Baraff D,Witkin A.Large steps in cloth simulation[C].Proceedings of the 25th annual conference on Com-puter graphics and interactive techniques.ACM,1998:43-54.

[3]Volino P,Thalmann N M.Implementing fast cloth sim-ulation with collision response[C].Computer Graphics International Conference.IEEE Computer Society,2000:257-257.

[4]Etzmu? O,Keckeisen M,Stra?er W.A fast finite ele-ment solution for cloth modelling[C].Computer Graphics and Applications,2003.Proceedings.11th Pacific Conference on.IEEE,2003:244-251.

[5]Umetani N,Kaufman D M,Igarashi T,et al.Sensitive couture for interactive garment modeling and editing[J].ACM Trans.Graph.,2011,30(4):90.

[6]Volino P,Magnenat-Thalmann N,Faure F.A simple approach to nonlinear tensile stiffness for accurate cloth simulation[J].ACM Transactions on Graphics,2009,28(4).

[7]WANG Hua-min,Ramamoorthi R,O'Brien J.Multi-resolution isotropic strain limiting[J].ACM Transactions on Graphics (SIGGRAPH Asia),2010,29(6)1-10.

[8]Bergou M,Wardetzky M,Harmon D,et al.A quadratic bending model for inextensible surfaces[C].Sympo-sium on Geometry Processing.2006:227-230.

作者簡介:贾博(1991—),男,硕士研究生,研究方向:计算机图形学。

猜你喜欢
褶皱有限元
有限元基础与应用课程专业赋能改革与实践
基于有限元的Q345E钢补焊焊接残余应力的数值模拟
将有限元分析引入材料力学组合变形的教学探索
大型压滤机主梁的弹性力学计算及有限元分析设计
大型压滤机主梁的弹性力学计算及有限元分析设计
动漫人物衣服褶皱的画法
动漫人物衣服褶皱的画法(1)
起重机吊臂振动模态的有限元分析
时髦褶皱
一点褶皱