基于改进弹簧-质点模型的纬编织物三维模拟
2015-03-12蒋高明马丕波李欣欣
沙 莎,蒋高明,马丕波,李欣欣
(江南大学教育部针织技术工程研究中心,江苏无锡 214122)
利用计算机技术对纬编织物进行模拟是近年来比较热门的研究课题。国内外许多专家和学者针对织物模拟进行了一系列研究工作。利用计算机技术对纬编织物进行模拟,可提高设计效率,降低生产成本,对开发纬编新产品和提高纬编产品性能具有重要的意义。
Weil[1]采用他用纯几何的方法,将织物悬挂在约束点上,通过计算约束点间悬链线位置的变化对织物进行模拟。Ng等[2]基于几何模型,在人体模型的基础上建立衣服层,同时在织物褶皱线附近建立正弦曲线模拟褶皱。这2种方法都是基于几何造型的方法,虽然可较好地展示织物外形,但不能准确表现出织物的局部结构特征。针对几何造型方法存在的问题,Terzopoulos等[3]提出了基于物理的连续弹性变形模型,该模型认为形变体的变化遵循牛顿定律和弹性力学原理,通过求解方程可得到物体上各点的空间几何位置。Yang等[4]在此基础上提出了粒子系统技术,使织物具有更逼真的物理效果,将织物模型仿真提升到更高的层次,但这种连续的物理模型计算量极大,没有考虑到纱线的编织结构等微观特征,难以适用于更加松弛的毛衣、围巾等针织物的模拟[5]。
Xabier[6]结合了 Terzpopulos 的弹性变形模型,提出了基于物理方法的离散型弹簧-质点模型,这个模型使用一个准确的时间间隔方法,得到力学方程,对织物进行模拟。Baraff等[7]用隐式欧拉法对力学方程求解,得到稳定的模拟效果,但计算复杂。国内对于这方面的研究已经进行了一段时间,刘卉等[8]将弹性曲线在某点的曲率作为弹性系数,将相同的弹簧设置成不同的弹性系数,解决了仿真中出现的超弹性问题,并且将服装的省道和褶皱等问题考虑在内。Yang等[9]用四阶的龙格-库塔法对力学方程求解,获得了稳定的模拟效果,但计算也复杂。
由于纬编织物组织结构的复杂性和特殊性,对其模拟的方法与机织物有所不同。离散的物理模型能够较好展现出纬编织物结构的局部细节,运算效率高,仿真效果好,但传统离散的平面弹簧-质点模型在模拟结构复杂的纬编组织时存在局限性。为解决以上问题,本文对平面弹簧-质点模型进行改进,提出立体的弹簧-质点模型对纬编织物进行模拟。将平面的弹簧质点模型立体化为长方体模型,采用标准模板类(standard template library,STL)中的队列模板(deque)来创建队列,使得元素可被随机访问读取。通过定义作用于质点的力对纬编织物进行物理模拟,用Velocity-Verlet法求解变形的方程,该方法增强了模拟效果的真实感和稳定性。
1 改进的弹簧质点模型及力学分析
1.1 弹簧-质点模型及存在的问题
将织物看成是由排列规则的离散质点组成的,织物的质量均匀分布在各个质点上,质点由没有质量的弹簧连接,如图1所示。图中弹簧分为3种类型:结构弹簧、剪切弹簧与弯曲弹簧。结构弹簧用于保持织物质点间经纬方向的距离;剪切弹簧用于保持织物质点间斜向方向的距离;弯曲弹簧连接经纬方向间隔的2个质点,用于模拟织物弯曲或折叠时的抗弯曲性能。前2种弹簧弹性系数很大,最后一种弹簧的弹性系数很小,在织物仿真中可不考虑。
传统的弹簧-质点模型虽然有其独特的优势,但是在纬编织物仿真模拟中存在局限性。纬编织物组织结构复杂,织物层次多样,而应用传统的弹簧质点模型对纬编织物的形态模拟单一,不能生动展示出对纬编组织的模拟效果。
图1 弹簧-质点模型Fig.1 Mass spring models.(a)Mass connections;(b)Structure spring;(c)Shear spring;(d)Bend spring
1.2 改进的弹簧-质点模型
为解决传统的弹簧质点模型在纬编织物模拟中存在的问题,本文在原模型的基础上,将平面模型立体化,变成长方体弹簧,如图2所示。
图2 改进的弹簧-质点模型Fig.2 Improved spring-mass model
各质点均匀分布在空间的网格上,每个小长方体的每条边作为结构弹簧,长方体面上的对角线作为剪切弹簧,由于弯曲弹簧的弹性系数极小,因此在本模型中,将弯曲弹簧忽略。模型中的质点是随时间变化的动态系统,在每个时间步长里,质点模拟受内力(弹簧力和阻尼力)和外力(重力、风力等)的作用而移动。质点运动规律遵循Newton第二定律:
式中:m为将模型离散化为n个质点后每个质点的质量;a为合力F作用于质点所产生的加速度;X为质点的位移;Fext(X,t)和Fint(X,t)分别为质点所受的外力和内力。
1.3 线圈上质点的内力分析
质点所受的内力由弹簧力和阻尼力组成,即Fint=Fspr+Fdamp。其中,Fspr代表弹簧弹力,Fd代表阻尼力。图3(b)和(c)为线圈上质点受结构弹簧力和剪切弹簧力的受力分析图。弹簧的弹力Fspr利用胡克定律可得到:
式中:Kspr为弹簧变形系数;|X0Xj|t-|X0Xj|0表示在t时刻和零时刻X0与Xj距离的变化;为X0指向Xj的单位向量。
阻尼力Fdamp定义为:
式中:Kdamp为连接质点i和j的阻尼系数;Vi(t)和Vj(t)分别为质点i与j的速度。
图3 线圈受力变形原理Fig.3 Deformation principle of forced loop.(a)Loop structure;(b)Loop forced main view;(c)Loop forced lateral view
1.4 线圈上质点的外力分析
外力包括重力、风力和用户施加的作用力。假设织物受力均匀,则质点所受重力Fgrave为:
式中:M为织物的总质量;n为织物的总质点数;g为重力加速度,取值为9.8 N/kg。
定义一个水平方向的力作为风力,风力Fwind为:
式中:Kwind为风力因子;△Vi(t)为t时刻,风速与质点速度之差。
用户拖动鼠标,拽取织物时,给织物增加了一个作用力,当用户释放鼠标时,此作用力消失。作用力Fuser为:
式中:Kuser为鼠标操作力的强度,△L为鼠标拖拽的长度,与Fuser的大小成正比。
1.5 对弹簧质点力的传播
当用户对织物施加一个外力时,整个织物会产生形变,根据力由近及远传播扩散的原理,受力质点将力传播到相邻的质点。作用的外力不会让所有的质点移动,只会让受力点相邻的质点发生位移,因此,只需考虑在相应的范围内质点的相互作用。
当外力F作用于m0时,这个点在力的作用下产生位移,该点与L1层相邻,所以L1层上的节点m1、m2、m3也随之运动,同理与L1相邻层上的质点也依次运动,如图4所示。当力一层一层地传播下去,达到一定深度的时候,后面的层次几乎不受影响,可忽略不计。这样既保证了计算的精度,又减少了计算量。在三维空间中,若一个质点受到力的作用,限定力的传播深度为n,则受此力影响的质点总数[10]为N=(n+2)(2n2+8n+9)/3。
图4 力的传播Fig.4 Force spread
2 Velocity-Verlets数值积分法
用显式欧拉法来求解弹簧质点模型的动力学方程,虽然方法简单,但求解结果为一阶精度,必须采用很小的时间步长,影响系统的运行速度;隐式欧拉法虽然可采用较大的时间步长获得稳定结果,但在求解过程中需要多次迭代,计算复杂,运算量远大于同阶的显式积分法;梯形法将显式和隐式欧拉法结合,它的计算精度比隐式欧拉法高,但是使用传统的显式欧拉法为第1次迭代的预测初值,迭代的初值误差较大,因此为获得与隐式欧拉法同样的精度,需要多次迭代;四阶龙格-库塔积分法为五阶精度,运算较为复杂;Verlet显式积分法为二阶精度,时间步长可取值更大,精度比显示欧拉法更高。
Verlet显式积分法在计算时间和精度上都有很大的优势,但是它需要获得质点在前一时刻和后一时刻的位置来计算质点当前的速度。针对这一问题,本文选用Velocity-Verlet数值积分法。
式中:m为质点的质量;Xi(t)为质点i在t时刻的位置;Fi(t)表示质点受力;Fi(t+△t)表示新位置质点受力;Vi(t)表示质点在t时刻的速度。
3 超弹性问题的解决
采用理想弹簧模拟织物受力变形时,弹簧的伸长量与受力成正比,若用这种线性弹簧模拟具有高度非线性特性的织物,会产生超弹性现象。避免这一现象的常用方法为:提高弹簧的刚度系数;设置弹簧长度变化的阈值;调整质点起止点位置和有序的调整质点速度等[11]。增加刚度系数的方法会降低织物的变形率,调整质点的起止点位置可能会导致与其相邻的弹簧发生超弹性问题[12]。调整质点速度也不能从根本解决织物变形的非线性问题[13]。因此本文选用设置弹簧长度变化阈值的方法来解决超弹性问题。如果弹簧变形长度超过了设定的阈值,就修改这个弹簧的张力,将超过阈值的弹簧拉回正常的位置。通过修正发生超弹性问题弹簧的张力,来解决超弹性问题。
4 织物模拟实现过程
4.1 初始化模型建立
使用Visual Studio和OpenGL建立改进的弹簧质点模型,并赋予质点和弹簧物理属性,实现了纬编针织物的动态模拟。采用标准模板类STL中的队列模板deque来创建双向队列。双向队列能够以分段存储,整体维护的方式,在队列中的任意位置添加删除元素,并且能够随机遍历、访问、读取元素,这些功能是传统呆板的链表所达不到的。使用这种方式在对质点、弹簧和控制点初始化时,相对于普通链表,可显著提高查询效率,使程序更加灵活、高效。
图5为建立改进模型的初始化流程图,通过获得视图指针分别创建弹簧-质点模型中的弹簧、质点和线圈上的型值点,以此来赋予弹簧和质点物理属性和几何属性,完成弹簧-质点模型的建立。
4.2 织物模拟的实现
通过图6所展示的程序处理流程实现对织物受力的模拟。图7为线圈动态模拟的效果图。
5 结论
图5 模型初始化流程图Fig.5 Model initialization flowchart
图6 工作流程图Fig.6 Work flow chart
本文针对纬编织物组织结构的特性,改进了传统的弹簧-质点模型,将二维模型立体化,通过立体化模型来模拟组织结构复杂的纬编织物。在模拟织物受力时,限定了力的传播深度,保证计算精度同时又减少了计算量。用Velocity-Verlet数值积分法求解运动微分方程,该方法能够在较大的时间步长内获得稳定且实时性好的动态模拟效果。采用标准模板类中的队列模板创建队列,加快了模型的初始化速度和访问速度。通过限制弹簧变形值,将超过阈值的弹簧增加张力,有效地解决了纬编织物的超弹性形变问题。应用本文的模型和方法,用 Visual Studio和OpenGL编程,模拟实现了纬编织物受拉力等外力作用时的动态效果,实现了纬编织物的三维仿真,增强了纬编织物动态仿真的立体感,模拟效果真实且实时性好。
图7 线圈动态模拟效果Fig.7 Loop dynamic simulation of plain stitch without force(a)and with force(b),rib stitch without force(c)and with force(d)
[1] WEIL J.The synthesis of cloth objects[J].Computer Graphics,1986,20(4):49 -54.
[2] NG N H,GRIMSDALE L R.GEOFF-A geometrical editorfor fold formation[C]//Lecture Notes in Computer Science. Berlin:Springer-Verlag, 1995:124-331.
[3] DEMETRI Terzopoulos,PLATT J,BARR A,et al.Elastically deformable models[J].Computer Graphics,1987,21(4):205-214.
[4] YANG Ying,THALMANN N M,THALMANN D.Three-dimensional garment design and animation,a new design tool for the garment industry[J].Computers in Industry,1992,19(3):185-191.
[5] 李汉文.3D虚拟衣服动画系统关键技术的研究与实现[D].兰州:兰州大学,2012:19-21.LI Hanwen.Research and implementation of key technologies in 3D virtual clothing animation[D].Lanzhou:Lanzhou University,2012:19-21.
[6] XABIER Provot.Deformation constraints in a massspring model to describe rigid cloth behavior[C]//Proceedings of Graphics Interface.Canadian Human-Computer Communications Society,1995:147 -54.
[7] BARAFF D,WITKIN A.Large steps in cloth simulation[C]//Proceedings of the 25th Annual Conference on Computer Graphics and Interactive techniques.New York,USA:ACM,1998:43-54.
[8] 刘卉,陈纯,施伯乐.基于改进的弹簧-质点模型的三维服装模拟[J].软件学报,2003,14(3):619-626.LIU Hui,CHEN Chun,SHI Bole.Simulation of 3D garment based on improved spring-mass model[J].Journal of Software,2003,14(3):619-626.
[9] YANG Jiandong,SHANG Shuyuan.Cloth modeling simulation based on mass spring model[J].Applied Mechanics,2013,310:676-683.
[10] 孟军,卫巍.基于弹簧质点与有限元混合模型的建模研究[C]//全国第 19届计算机技术与应用(CACIS)学术会议论文集:上册.合肥:中国科技大学出版社,2008:69 -73.MENG Jun,WEI Wei.Research on modeling based on mass spring model[C]//19th NationalComputer Technology andApplications(CACIS)Conference Proceedings:Volume I.Hefei:University of Science and Technology of China Press,2008:69 -73.
[11] 肖明兴,耿兆丰.织物动态仿真中改进的粒子模型[J].计算机应用,2007,27(5):1145 -1146.XIAO Mingxing,GENG Zhaofeng.Improved particle system for cloth animation[J].Computer Applications,2007,27(5):1145 -1146.
[12] 惠卫华,关正西.基于质点-弹簧模型的布料仿真研究[J].计算机工程与设计,2007,28(3):664-667.WEI Huihua, GUAN Zhengxi. Researchoncloth modeling simulation based on mass spring model[J].Computer Engineering and Design,2007,28(3):664 -667.
[13] 纪峰,李汝勤,张瑞云.基于粒子-弹簧模型的动态服装仿真[J].纺织学报,2004,25(6):22 -25.JI Feng,LI Ruqin,ZHANG Ruiyun.Cloth modeling dynamic simulation based on mass spring model[J].Journal of Textile Research,2004,25(6):22 -25.