APP下载

面向Remeshing的混合材质布料仿真

2016-08-05郑利平周乘龙程亚军

计算机应用与软件 2016年7期
关键词:网格法分割线真实感

郑利平 周乘龙 程亚军 陈 星

1(合肥工业大学计算机与信息学院 安徽 合肥 230009)2(中国航天系统科学与工程研究院 北京 100048)



面向Remeshing的混合材质布料仿真

郑利平1周乘龙1程亚军1陈星2

1(合肥工业大学计算机与信息学院安徽 合肥 230009)2(中国航天系统科学与工程研究院北京 100048)

摘要目前布料仿真所采用的布料模型主要是单一材质的,导致了布料的真实性和多样性没有得到很好体现。从布料材质的多样性角度出发,对Narain提出的自适应Remeshing方法进行改进和扩展,使其适合于混合材质问题。首先提出一种交互方法对布料模型进行分割,然后通过材质属性库为分割的区域填充不同的材质,设计出混合材质的布料模型,并通过改进的自适应网格法来克服布料模型材质单一性的限制,得到真实感较强的混合材质布料仿真效果。

关键词布料仿真交互混合材质重网格化

0引言

布料仿真作为一门新兴的技术在3D电影动画、电子游戏、虚拟试衣等诸多领域得到了广泛应用。在仿真过程中,往往要求仿真出的布料动画具有丰富细腻的细节特征和较高的逼真程度。而布料动画的逼真感不仅仅取决于布料的褶皱细节,同时也取决于布料所选用的材质。

从布料的物理特性来讲,不同的材质如丝绸和羊毛,由于内部纺线结构和编织方式的不同,在相同外力(如风力)的作用下,二者的仿真效果是明显不同的。具体表现在:前者的形变程度会明显比后者大,更容易发生拉伸、弯曲、剪切和产生各种褶皱。在服装设计领域目前研究[1,2]表明,服装设计极大程度上依赖于服装材料的设计细节,而不同材质的衣服表现出的运动特性是不同的。在布料仿真研究中,毛天露等人[3]提出了一种基于实例的布料模型运动参数学习方法,给出了不同材质布料块的运动对比情况。Bhat等人[4]通过大量的实验得出了不同材质衣服精确的运动特征参数。但以上方法均未考虑由几种不同材质的布料片缝制而成的混合材质衣服情况,无法仿真出现实中衣服样式的多样性和真实性。

基于上述原因,本文从衣服材质角度出发,创新性地提出一种基于自适应网格法的混合材质布料仿真方法。首先对仿真所用的衣服模型进行样式和材质设计,得到混合材质衣服模型。最后将该模型置于自然环境中实现布料模型与人体模型、外力之间的交互来展现布料的动态细节。实验结果表明,该方法能够生成样式各异且真实感较强的仿真效果,同时也可以为其他仿真平台以及服装设计领域提供便利。

1相关工作

布料仿真是计算机图形学中的研究难点之一,如何快速地仿真出逼真的布料动画效果是布料仿真的核心问题。布料在力学特性上属于柔性物体,容易产生各种褶皱,在外力的作用下会产生很大的形变,且布料的形变同材料、织造制造方法密切相关。由于形变的复杂性,难以构造统一的、能够适用各种情况的模型。在布料模型的建模方面,Provot等人[5-7]使用弹簧质点模型来模拟布料,但是仿真结果的真实感较低。Choi[8]等使用基于四边形网格的Choi系统,但该方法的适用性较低。Baraff等人[9]使用几何表示能力更强、适应范围更大的三角网格来表示布料模型,并提出了隐式积分法解决了数值积分过程中的不稳定问题,为后续的研究奠定了基础。

在布料仿真的真实感方面 Feng等人[10]、Wang等人[11]等提出了一种混合方法将高精度的褶皱模型和低精度的运动模型相结合,得到了比较精细的实验效果。但是因为不同精细程度的模型采用的驱动技术不同,所以在变形过程中可能会产生变形的不平滑。Jiao等人[12]、Narain等人[13]采用自适应网格法来动态仿真不同精细程度的网格,较好地实现了真实感和时间效率的折中。在布料材质的研究方面,Etzmuss等人[14]使用有限元法来建模弹性、易扩展布料,将具有不同材质信息的CAD二维模型块,进行组合拼接来进行仿真,该方法容易出现拼接部分效果差且时间代价较大。Wang等人[15]使用分段线性弹性模型来模拟各种材质的非线性、各项异性拉伸和弯曲行为,并对该种弹性模型的真实布料的拉伸和弯曲系数进行精确测量,得到了实验布料的精确材质属性信息。

2基于自适应网格法的布料仿真

在布料仿真过程中,要使得生成的仿真效果具有很强的真实感,通常要使用高精度模型,但是这样会大大增加算法的时间损耗。文献[13]采用了自适应网格法来进行仿真,采用Remeshing技术,在弯曲变形程度较大、褶皱细节较多的区域采用高密度网格。而在变形程度不大、细节较少的区域使用相对稀疏的网格,在保证仿真结果真实性的前提下,提高算法的效率,取得动画效果与计算效率的平衡。文献[13]的具体算法是根据文献[16-18]中的方法首先为整个布料网格模型建立张量场M。M描述的是每个位置和方向上允许的最大边长,并提出了三种基本的操作来实现布料模型的动态Remeshing,分别是split(分裂)操作、flipped(翻转)操作、collapsed(坍塌)操作,如图1所示。

图1 Remeshing操作示意图

2.1Split操作

(1)

其中nj表示顶点j的法向量,εf表示元素的应变张量,‖·‖F表示F-范数,adjaci表示顶点i的所有邻点集合。当Q(Xi)取得最小值时,此时的Xi即为新顶点的三维坐标。

2.2Flipped操作

如图1(c)图所示,假定边ij有邻点k、l,边ij要翻转形成边kl必须满足式(2):

(2)

其中符号a×b=axby-aybx,Mavg表示四个顶点的平均张量。

2.3Collapsed操作

如图1(d)图所示,collapsed操作可以从边的任意一个顶点开始。但是以下情况是不允许执行collapsed操作的:

(1) collapsed操作产生的面仅仅是颠倒了原来的面,或者该面的长宽比太小,造成网格的质量差。

(2) 经过collapsed操作之后模型中产生了近似无效边。

这里仿真过程中生成的边大小一般不超过1-h,这样的边成为近似无效边。h是一个比较小的磁滞参数,文献[13]中取h=0.2。

3混合材质布料仿真

文献[13]提出的方法虽然能够较好地实现布料仿真过程中布料的真实感和仿真速度的平衡。但该方法只适用于单一材质的布料模型而无法仿真出混合材质的布料模型,没有很好地体现出用户和仿真系统之间的交互性和布料的多样性。为解决该问题,我们需要对单一材质的布料模型按照用户的需求进行自定义分割,进行衣服的样式设计,构建多样化的材质信息库。并为分割后的不同区域赋予不同的材质属性信息,进行衣服的材质设计,组合出一种混合材质的布料模型,再使用该模型进行后续仿真。

3.1布料模型交互式分割

对于布料模型的自定义分割,本文引入线性划分的概念。由用户输入若干条分割线,所有分割线分割区域的交集确定一个封闭的区域,该区域即为用户所需区域。为保证不产生错误的分割结果,这里要求初始的衣服模型没有折叠,且待分割的模型表面没有较大的弯曲。

图2 交互式分割示意图

简要的分割示意如图2所示。不失一般性,任意选取上述输入模型的一小块网格,即示意图2中由△ABC、△ACD、△DCE、△DEF组成的区域。线段PQ作为分割线是算法的输入,通过该线段来将网格分块。

具体的实现过程是:首先计算出PQ的方程记为:

(3)其中a、b、c、m0、m1、m2为已知量,简记该方程为f,因为分割线的顶点处在三角面片的不同位置需要进行不同的三角化操作,故需要判定图中起点P的位置,包含以下三种情况(如图3所示):

图3 点P分布示意图

(2) 点P位于△ABC顶点上,如图3(b)所示。这种情况不必对△ABC进行细致划分。但需要遍历该点的所有邻接三角形,并分别计算每个三角形三条边的方程,求出交点,后续步骤同(1)相同。

(3) 点P位于△ABC某边上,如图3(c)所示。从P点出发三角化△ABC。同(1)相比少了一次从M点出发的三角化(该三角化的面是已经三角化之后的△ABC形成的小三角面),后续步骤同(1)相同。

同样地,终点Q的情况也分为以上三种,也需要进行位置判别后对应情况的三角划分。此外,当P、Q两点同时处在同一个三角形中,因为对布料模型的划分通常涉及的三角网格数很多,当分割线处在同一个三角形中时划分的区域很小,最后得出的仿真结果很不明显,所以这种情况的输入是没有意义的。

由此给出算法过程如下:

算法:衣服模型交互式分割算法

输入:分割线段集L={li…ln},衣服模型m。记F为m中三角面集合,V为m中顶点集合,E为m中边集合。

输出:分割处理后的衣服模型。

1.FOR EACH li(1≤i≤n)

2.记P为li起点,Q为终点

3.计算li的方程fi

4.FOR EACH t∈F

5.IF t∩P≠∅

6.定义变量Temp←P

7.MeshDivision(t,Temp,fi,Q)

8.END IF

9.END FOR

10.END FOR

11.根据L选定线性划分区域,标定该区域内部所有三角面片

算法过程:MeshDivision

12.MeshDivision(t,Temp,fi,Q) {

13.WHILE (Temp≠Q)

14.IF Temp在t内部OR t的某条边上

16.按常规方法三角化面t

17.ELSE IF Temp在t的某个顶点上

19.END IF

21.IF (M = ∅)

22.RETURN

23.END IF

24.IF (M为t某顶点)

25.Temp←M

26.CONTINUE

27.ELSE

28.存储M所在边e的不为t的邻接面s按常规方法三角化t

29.IF (s =∅)

30.存储e的非空邻接面r,按常规方法三角化面r

31.RETURN

32.ELSE

33.存储e的非s邻接面y,按常规方法三角化面y

34.Temp←M

35.MeshDivision(s,Temp,fi,Q)

36.END WHILE

37.}

3.2材质属性添加

布料因为编织模式的不同和纤维方式的差异常表现出复杂的非线性弹性行为,而布料的弹性、粘性这些参数与材质的属性相关。布料的材质属性信息元素项主要包括:材料密度、拉伸系数矩阵、剪切系数矩阵、弯曲系数矩阵等。文献[15]中通过对实际布料进行测量得到大量的材质属性信息。本文引用该信息构建材质库,参照服装设计标准来进行仿真。上述经分割后的布料模型在逻辑上是彼此独立但在物理上是一体的,这就避免了文献[14]拼接上的问题。首先对三角面片赋予材质信息,然后离散到各个模型顶点上,对于分割线上的顶点使用加权平均的方法来得出该点的材质属性信息。

为了减小系统的时间开销,本文将整个模型分割操作和材质信息的赋予操作放在整个仿真过程的预处理部分。

3.3自适应网格法改进

在文献[13]的算法过程中,三种Remeshing操作会经常破坏原本的三角面而产生了新的三角面。考虑本文的混合材质情况,可能会导致原本三角面的材质信息发生改变,出现畸变,这一畸变现象集中表现在已经划分好的区域边界。如图4所示,图中黑色实线代表三角网格的边线,红色实线表示分割线,红色虚线表示划分过程中的三角化过程线。字母A(B)表示该三角区域适应的材质是A(B)材质。该图模拟了collapsed操作引发的畸变。

图4 Collapsed畸变模拟示意图

为解决该问题,需要保证在Remeshing过程中分割边界的相对完整性,同时最大程度上保证Remeshing操作的进行,使仿真结果的精度不至于下降,在不出现剧烈形变时避免了边界畸变现象。由此,我们对文献[13]算法提出了改进,步骤如下:

1) 遍历模型的边集合E,找出所有的边e,满足共享边e的两个面材质信息不同,即e为两种不同的材质的分界边。

2) 将上述以e为公共边的三角形从原模型的面集合F中删除,并加入边界面集合F′中。将边e的两个顶点从原模型的顶点集合V中删除,并加入新建的约束点集合V′中。

3) 在自适应的Remeshing过程中:

(1) 执行split操作时:对于∀f∈F,将经过该操作之后生成的新面放入F中,而对于∀f∈F′,将经过该操作之后生成的新面放入F′中。

(2) 执行flipped操作时:对于∀f∈F′,此时如果f中的边ei∈E(0≤i≤2),对该边进行flipped操作会引起边界的畸变。故对于该边,需要限制其flipped操作,对于f中的其他两条边则无需增加限制(同样地将经过该操作之后生成的新面加入F′中并删除原面)。

(3) 执行collapsed操作时:如图4(a),顶点M只能经过collapsed操作到其邻点H、J、Q、P、O、N中的其中一点,不难发现引发边界畸变的是M点坍塌到N、H、P、Q点而坍塌到O、J两点时则不会引起畸变。即对于∀v∈V′,允许该点坍塌到点v′当且仅当v′∈V′且v′为v的邻接点。然后从V′中删除点v,将生成的新面加入F′中并删除原面。对于∀v∈V,可将其经collapsed操作到其邻接点v′(v′∈V or v′∈V′)。

3.4作用力模型

在布料模拟中,为了提高仿真效果的真实感,往往要考虑力对布料的影响。仿真模型中受到的外部作用力主要包括风力、重力等。受到的内部作用力可以直接应用文献[19]的公式导出,然后将作用力离散到三角面片的顶点即可,方法比较成熟。需要考虑的附加作用力包括:阻尼力、空气阻力以及摩擦力。增加阻尼力是为了体现布料的厚实度,适当的阻尼力添加可以防止布料出现不切实际的平面内振动,增加空气阻力则是为了增加轻质布料的真实感,而摩擦力的考虑则是因为布料与人体模型之间发生摩擦,需要计算出摩擦力。这些力模型均采用目前较成熟的模型。

4实验结果

本文的实验环境为64位Ubuntu 9.0 操作系统,主机CPU为Intel Core四核 Q8400 2.66 GHz,内存6 GB,程序运行环境为Eclipse+vim,采用OpenGL作为显示和交互平台,其他库包括 BLAS、Boost、LAPACK、libpng、gfortran。实现了混合材质布料模型的仿真,经过分割仿真的实验效果如图5所示。图5中所采用的材质信息为表1所示。

图5 不同混合材质模型的分割效果图

单肩裙粉色蓝色材质成分95%棉5%氨纶60%棉40%涤纶密度(kg/m2)0.2760.187误差(mm)1.922.58T恤蓝色红色材质成分87%尼龙13%氨纶60%棉40%涤纶密度(kg/m2)0.2040.187误差(mm)1.572.58连衣裙天蓝色浅黄色材质成分99%棉1%氨纶100%涤纶密度(kg/m2)0.3240.113误差(mm)2.302.06

以T恤模型为例,图6为用户对布料模型的自定义分割,图中均为划分后模型的初始状态,即为第0帧的状态。

图6 用户自定义分割效果图

在仿真过程中,布料模型受到外界作用力如风力的影响开始运动,在运动过程中如果使用不加约束的自适应网格法来进行仿真得到的效果如图7(a)所示,出现畸变;使用改进的自适应网格法仿真效果如图7(b)所示,畸变现象得以消除。

在给出的三种模型中,连衣裙模型与人体模型之间的贴身效果最差,在同等环境下表现出形变的差异最为明显,我们仿真出相同环境下的运动过程。图8(a)-(c)展示的是单一材质布料的渲染效果,图8(d)-(f)混合材质布料的渲染效果。可以看出随着风力的逐渐加大,因为两种衣服模型的上半部分采用的材质相同,为密度较大的皮革混合物,所以相对而言形变、褶皱细节基本相同;而下半部分图8(d)-(f)采用的纯涤纶材料相对于图8(a)-(c)采用的皮革混合物更为轻柔,在相同的环境中发生的形变较大,“僵硬”感觉较小,生成的褶皱细节更为丰富,该实验效果符合自然物理现象。

图8 单一材质布料与混合材质布料运动对比图

5结语

本文在之前研究工作的基础上,从布料材质的多样性角度出发,搭建系统平台进行模拟仿真。成功地实现了混合布料的仿真并得到了非实时性仿真动画,取得了真实感较强的效果,更好地展现出衣服样式的多样性,实验结果可用于服装设计领域以及其他仿真平台。在下一步研究工作中,本文将讨论复杂情况下模型的分割,如在网格上划分出圆形、弧形等复杂形状。并将进一步研究和探索减少算法的时间复杂度方法。

参考文献

[1] 马旖旎.服装材质对设计风格的影响[J].丝绸,2006(2):14-16.

[2] 姜宇冰,司国红,孟祥玉.服装材料与服装设计的关系[J].黑龙江纺织,2002(1):35-36.

[3] 毛天露,夏时洪,王兆其.布料运动模型参数学习方法[J].计算机辅助设计与图形学学报,2010,22(5):823-826.

[4] Bhat K S,Twigg C D,Hodgins J K,et al.Estimating cloth simulation parameters from video[M].The Eurographics Association,2010.

[5] Provot.Deformation constraints in a mass-spring model to describe rigid cloth behavior[C]//Proceedings of Graphics Interface,1995:147-154.

[6] Choi Ko.Stable but responsive cloth[J].ACM Transactions on Graphics (ACM SIGGRAPH) (S0730-0301),2002,21(3):604-611.

[7] 吕梦雅,李发明,唐勇,等.基于弹簧质点模型的快速逼真的布料模拟仿真[J].系统仿真学报,2009,21(16):36-40.

[8] Choi K J,Ko H S.Stable but responsive cloth[J].ACM Transactions on Graphics (ACM SIGGRAPH 2002),2002,21(3):604-611.

[9] Baraff,Andwitkin.A Large steps in cloth simulation[J].SIGGRAPH,2001:43-54.

[10] Feng Wei,Wen Yu Yizhou,Kim B U.A deformation transformer for rea1 time cloth animation[J].ACM Transactions on Graphics,2010,28(4):1-9.

[11] Wang H M,Hecht F,Ramamoorthi R.Example-based wrinkle synthesis for clothing animation[J].ACM Transactions on Graphics,2010,29(4):1-8.

[12] Jiao X,Colombi A,Ni X,et al.Anisotropic mesh adaptation for evolving triangulated surfaces[J].Engineering with Computers,2010,26(4):363-376.

[13] Rahul Narain,Armin Samii,James F O’Brien.Adaptive Anisotropic Remeshing for Cloth Simulation[J].ACM Transactions on Graphics,2012,31(6):147:1-10.

[14] Etzmuss O,Keckeisen M,Strasser W.A fast finite element solution for cloth modelling[C]//Proceedings of Pacific Graphics,2003:244-251.

[15] Huamin Wang,James F O’Brien,Ravi Ramamoorthi.Data-Driven Elastic Models for Cloth:Modeling and Measurement[J].SIGGRAPH,2011,30(4):71.

[16] Bossen F,Andheckbert P.A pliant method for anisotropic mesh generation[C]//In 5th Intl. Meshing Roundtable,1996:63-74.

[17] Labelle F,Andshewchuk J R.Anisotropic voronoi-diagrams and guaranteed-quality anisotropic mesh generation[C]//Proc.19th annual Symposium on Computational Geometry SCG 03,2003:191-200.

[18] Wicke M,Ritchie D,K lingner B M,et al.Dynamic Local Remeshing for Elastoplastic Simulation[J].ACM Transactions on Grahics,2010,29(4):157-166.

[19] Terzopoulos D,Fleischer K.Deformable models[J].The Visual Computer,1988,4(6):306-331.

收稿日期:2015-01-21。国家自然科学基金项目(61300118);安徽省科技强警项目(1401b042009)。郑利平,副教授,主研领域:可视化,群体和疏散仿真。周乘龙,硕士生。程亚军,硕士生。陈星,工程师。

中图分类号TP391.9

文献标识码A

DOI:10.3969/j.issn.1000-386x.2016.07.045

REMESHING-ORIENTED MULTI-MATERIAL CLOTH SIMULATION

Zheng Liping1Zhou Chenglong1Cheng Yajun1Chen Xing2

1(SchoolofComputerandInformation,HefeiUniversityofTechnology,Hefei230009,Anhui,China)2(ChinaAcademyofAerospaceSystemsScienceandEngineering,Beijing100048,China)

AbstractCurrently the cloth models used by cloths simulation are mainly the single material cloths, and this leads to the reality and diversity of cloths not being well exhibited. Proceeding from the diversity point of view of cloth material, in this paper we improve and extend Narain’s adaptive Remeshing method to make it adapt to the multi-materials cloth cases. First we present an interactive method to segment the cloth model. Then we fill the segmented parts with different materials through material attributes library and have designed the cloth models in multi-material. Moreover, through the improved adaptive Remeshing method we overcome the limitation of singularity in material of cloth model and obtain the simulation effect of multi-material cloth with quite high reality.

KeywordsCloth simulationInteractionMulti-materialRemeshing

猜你喜欢

网格法分割线真实感
女装分割线结构设计技术研究
雷击条件下接地系统的分布参数
角接触球轴承的优化设计算法
基于遗传算法的机器人路径规划研究
回归真实感
分割线在服装结构设计中的运用思路探析
基于GIS的植物叶片信息测量研究
细推物理重体验 表现人物贵专精
分割线设计手法在服装设计中的运用分析
南丰蜜桔造型