MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}}); function MyAutoRun() {    var topp=$(window).height()/2; if($(window).height()>450){ jQuery(".outline_switch_td").css({ position : "fixed", top:topp+"px" }); }  }    window.onload=MyAutoRun; $(window).resize(function(){ var bodyw=$win.width(); var _leftPaneInner_width = jQuery(".rich_html_content #leftPaneInner").width(); var _main_article_body = jQuery(".rich_html_content #main_article_body").width(); var rightw=bodyw-_leftPaneInner_width-_main_article_body-25;   var topp=$(window).height()/2; if(rightw<0||$(window).height()<455){ $("#nav-article-page").hide(); $(".outline_switch_td").hide(); }else{ $("#nav-article-page").show(); $(".outline_switch_td").show(); var topp=$(window).height()/2; jQuery(".outline_switch_td").css({ position : "fixed", top:topp+"px" }); } }); 基于几何测量和变形的真实感织物模拟
  软件学报  2015, Vol. 26 Issue (7): 1785-1799   PDF    
基于几何测量和变形的真实感织物模拟
刘骊1,2,3, 王若梅1,3, 罗笑南1,3    
1 中山大学 信息科学与技术学院 国家数字家庭工程技术研究中心, 广东 广州 510006;
2 昆明理工大学 信息工程与自动化学院, 云南 昆明 650050;
3 数字家庭互动应用国家地方联合工程实验室, 广东 广州 510006
摘要:提出一种有效、直观的基于几何测量和网格变形的织物模拟方法,可以获得具有不同面料属性的织物真实感形态.织物几何测量方法能够度量反映面料几何属性的3个关键特征,包括复原性、拉伸性和弯曲性.对应这3个几何属性度量,建立包括顶点位置、边长和二面角约束能量项的基于微分网格变形的泛函能量优化模型.3个变形能量项各自对应的权重是从每种真实面料测量数据中量化统计得到.该变形能量函数可以统一在最小二乘数值优化中求解,通过过程优化和权重设置,即可模拟到真实织物行为.实验结果表明,该方法可以有效地仿真到不同面料材质的织物真实感效果.
关键词织物模拟     几何测量     网格变形     能量优化     数据驱动    
Realistic Cloth Simulation Based on Geometrical Measurement and Deformation
LIU Li1,2,3, WANG Ruo-Mei1,3, LUO Xiao-Nan1,3    
1 National Engineering Research Center of Digital Life, School of Information Science & Technology, Sun Yat-Sen University, Guangzhou 510006, China;
2 Faculty of Information Engineering and Automation, Kunming University of Science and Technology, Kunming 650500, China;
3 National State-Province Joint Laboratory of Digital Home Interactive Applications, Guangzhou 510006, China
Abstract: This paper presents an efficient and expressive cloth simulation method based on geometrical measurement and mesh deformation for obtaining realistic cloth shapes with various fabric materials. Geometrical measurement can measure the geometric material properties including recovery, stretching and bending of different real cloth behaviors. In accordance with these three geometric properties, three energy terms related to the vertex position, edge length and dihedral angle are embedded into the functional energy optimization model based on differential mesh deformation. The corresponding weights for the three energy terms are learned from the measured data with real cloth. The solution to the energy optimization can be obtained by a numerical solution in the least square sense. Using the weight settings and numerical optimization can simulate realistic cloth behaviors. Experimental results show that the presented method can effectively provide realistic cloth effects with various materials.
Key words: cloth simulation     geometrical measurement     mesh deformation     energy optimization     data driven    

织物模拟是计算机图形学中研究的重要问题之一,在几何造型、计算机动画、影视游戏以及虚拟服装等领域都有广泛的应用[1].真实世界中的织物具有柔性变形、非线性等复杂性,因而在悬垂以及起褶皱时呈现出不同的真实感效果.目前的大多数织物仿真模型考虑的是织物的宏观行为,缺乏微观粒度上的面料属性刻画,且不能很好地将精确和效率进行统一,无法表现不同类别柔性织物的真实感模拟效果.因此,织物模拟的关键问题是如何量化织物的面料属性,并提出一种能概括织物变形规则的优化数学模型,同时平衡织物模拟精度、稳定性和算法效率之间的关系,对柔性织物进行模拟.

· 相关工作

目前,基于物理特性的织物模拟方法得到广泛研究,其主要考虑了织物在真实世界中的属性,例如摩擦力、碰撞等问题.很多研究者用物理的方法来模拟织物的行为,发展出了许多基于物理受力及动力学的织物仿真模型和算法.例如:Baraff等人[2]在弹簧质子模型的基础上提出了隐式积分的织物仿真方法;文献[3]提出用一种快速碰撞检测与修正算法来解决真实感布料仿真中布料与刚体之间产生的碰撞及摩擦等问题;文献[4]提出了基于改进的弹簧-质点模型的三维服装模拟;Bridson等人[5]首先提出了用物理建模的方法模拟织物的褶皱等细节以提高织物模拟的真实感;文献[6]提出了一种高效的碰撞处理算法以实现实时服装仿真;Thomaszewski等人[7]提出基于连续体物理模型的织物模拟方法;Kaldor[8]提出的基于纱线编织的织物模拟是针对复杂针织结构的织物模型;近期,Bridson等人[9]及Wang等人[10]都对织物模拟中的摩擦力以及碰撞等问题进行了深入研究.基于物理的方法虽然可以获得三维服装的真实感效果,但是由于涉及到微分方程的迭代求解,往往需要提供足够的仿真精度,使得计算效率较低,很难满足交互式应用的需要,复杂参数的设置影响了其在实际中的应用.

对于大部分的织物模拟应用来说,普遍要求模拟速度能够在满足交互响应的前提下,获得视觉效果上的真实感,即物理似然的模拟效果.典型的基于几何的织物模拟方法是通过特定的几何约束来表示织物的几何特征,例如:悬链线模型[11]是用几何方法建立织物模型的典型代表之一,基于几何模型的交互式衣服设计方法[12]以及基于自适应形状匹配的织物模拟方法[13]都是采用几何的方法事先模拟织物的褶皱形态变化;近期,Chen等人[14]提出基于优化的可展曲面逼近的方法,可以模拟可展织物的柔性变形效果;Rohmer等人[15]也是利用几何方法模拟了织物表面的褶皱.这些方法无需求解大量复杂的动力学方程,计算简单,速度快.然而,由于没有考虑织物本身所具有的面料属性,与达到视觉满意的真实感织物模拟效果还有一定的差距.

网格变形方法在几何造型中得到了广泛的关注和应用,随着网格模型的几何细节越来越丰富,基于微分域属性的变形方法[16,17]利用一些定义在表面网格上的微分属性来表达几何细节,并采用优化策略来达到保持几何细节的效果.而且近年来,Popa[18]以及Huang[19]等人将材质属性的描述引入到微分几何变形方法中,可以得到不同材质的刚性物体变形效果.在此基础上,还出现了一些基于自适应网格模型的织物模拟方法[20, 21, 22].Lee等人[20]提出了基于几何逆向工程的自适应网格模型.Muller[21]采用更加直观的方式将织物褶皱细节的动态形态直接考虑至实时的织物网格变化中,但该方法的操作较为复杂,尤其是在指定控制顶点以及方向时,同样也需要较为繁琐的过程.Narain[22]提出了一种能够有效仿真织物各向异性行为的方法,这种方法可以动态调整粗糙的网格使之能自适应模拟到织物变形的细节,但没有考虑不同织物的面料属性.

在纺织领域中,Wu等人[23]提出用Kawabata测量设备获得织物模拟的面料属性,它使用简化的函数估计出实际织物的物理参数,用真实曲线内插变形点构成精确的多项式.然而,基于物理的测量设备昂贵,且测量到的物理参数无法直接用于几何仿真建模.为了简化这一工作,Bhat等人[24]和Miguel等人[25]提出通过视频图像技术估计和自动测量三维织物形态变化的参数.虽然他们的方法不需要复杂的测量设备以及环境的建立,但是独立地用其中某一个参数表征织物会产生较大的误差或出现失真现象.Wang等人[26]提出了基于数据驱动的分段弹性模型来模拟织物的各向异性行为,该模型主要建立在对真实织物样本的拉伸性和弯曲度进行物理测量的基础上,有效地解决了超弹性现象的产生.但该方法仍然在表达形式上不能 准确地反映真实织物的面料属性,尤其是在织物部分区域拉伸过大的情况下,就会产生较大的失真.

· 本文方法概述

影响织物形态变化的因素众多,本文提出一种基于几何测量和变形的织物模拟方法,综合考虑影响织物真实形态的各种因素,统计分析出织物几何变形的关键特征,揭示真实世界中的不同织物的面料属性与几何变形数学模型间的关联.与现有方法相比,该方法将织物微观粒度上的面料属性与基于微分网格变形的泛函能量最小化模型相结合,更好地模拟到近似织物的真实感效果.图 1描述了本文方法的主要流程:

Fig. 1 Overview of our approach图 1 本文方法的流程

· 我们首先基于15种真实织物样本的选取,建立了一种织物几何测量方法,量化分析得到影响织物形态的3个关键因素,即织物面料的几何属性度量(见第1节);

· 基于测量到的几何数据,我们进一步统计与总结了可反映不同织物面料属性几何度量的变形规则,提出了数据驱动的几何约束变形策略,形成了基于微分网格变形的泛函能量最小化模型,该模型中的3个能量项(顶点位置、边长、二面角)与织物面料的3个几何属性度量(复原性、拉伸性、弯曲性)一一对应(见第2节);

· 最后,通过权重设置和过程优化算法可以获得织物模拟的真实感效果(见第3节).

综上所述,本文的创新点主要有3点:

· 一是提出了一种几何测量机制,用于测量真实织物样本数据,并对数据样本进行量化分析;

· 二是基于织物的几何属性度量,进一步探讨了织物面料属性与基于微分网格变形中能量项之间的关联,提出了数据驱动的织物几何变形策略;

· 三是构造了织物样本的真实测量数据与几何织物变形框架中的3个能量项各自权重间的统计回归模型.

本文方法为织物模拟提供了一条新的用科学实验方法模拟客观世界织物的思路.

1 织物的几何测量方法

织物模拟的视觉效果要能真正仿真织物的变形行为,就需要考虑不同面料对其形态的影响.织物的面料属性作为织物模拟的一个重要方面,关系到着装外观的悬垂、褶皱和弯曲表现.从理论上说,织物的面料属性都可以通过经、纬度方向的物理性能推导得出,因此,基于物理的织物仿真方法[4,8]一般通过织物经纬方向的拉伸、弯曲、剪切、摩擦等进行织物的物理仿真.然而,这些物理参数无法直接用于基于几何的织物模拟中.基于几何的织物测量方法[27]通过直接测量真实的织物样本,获得能表现织物各向异性的几何特征参数.区别于文献[27],本文方法进一步考虑了样本选取的合理性以及对测量数据所进行的统计回归建模.

1.1 织物测量样本选取

织物的模拟效果是与织物的具体类别有关的,由于其编织结构方式以及所含成分不同,各自展示出不同的真实感行为.本文主要针对服装织物的质感差异进行模拟,而纤维构成是区分织物质感风格的重要因素,在原料相类似的情况下,织物的经纬密度对仿真织物的形态不构成主要影响.因此,我们基于织物构成纤维的不同,首先合理选取用于实验的织物样本,主要针对机织物进行选取,囊括了常用的服装机织物种类:棉织物、麻织物、毛织物、丝绸织物、化纤织物(涤纶、绵纶、氨纶等)、皮革织物等.表 1给出了实验中的15种织物样本.

Table 1 Reasonable selection of samples for different cloth materials 表 1 不同织物面料样本的合理选取

织物是一种具有柔韧性的材料,织物的质感决定了织物在穿着时的外观效果.在我们选取的织物样本中,棉织物、麻织物的特点是在形态上易产生褶皱;而毛织物及皮革织物属于材质较硬的织物,在形态及质感上表现出抗皱等特性;丝绸织物的特点是柔软光滑;化纤织物中,涤纶面料挺括、抗皱,绵纶、氨纶织物弹性好,伸缩性大,松弛后又可迅速恢复原状.这些织物样本是构成目前服装的主要面料,根据不同需求及设计,每种织物面料具有不同的用途.因此,与文献[26,27]工作不同的是,我们选取的织物样本考虑了大部分的不同的服装织物面料.

1.2 实验设置与测量方法

本文侧重使用几何方法对表 1中的15种织物样本进行测量,用面积、长度和角度的真实测量数据来量化统计,并对织物面料属性进行度量,从而替代物理参数.

几何测量实验平台的主要组成部件包括:

· 单反相机Canon EOS 550D一台(3.7 fps and a DIGIC 4处理器),用于记录织物样本的面积变化,在整个拍摄过程中固定在三角架上,位置固定不变,相机离测量织物样本的焦距距离为615.2mm;

· 标准直尺一把(1 000mm),用来测量被拉伸的样本对角线长度以及发生卷曲变形后的弯曲高度;

· 指针式推拉力计一个,其最大测定范围为10N(1Kgf),最小负载(精度)为0.05N(5gf),量程(测量距离)为10mm,用来固定织物样本的拉伸范围.

在实验中,被采样的织物被裁剪为460×400mm2的样本,500×500mm2的栅格板用来放置每个织物测量样本.除此之外,我们还使用到固定装置用来固定测量的织物样本.整个实验环境的设置搭建及织物复原、拉伸、弯曲测量方法的建立如图 2所示.

Fig. 2 Geometrically based experiment and measurement setup for recovery,stretching,and bending tests图 2 基于几何测量的实验环境关键部件组成及织物复原、拉伸、弯曲测量方法的建立
1.2.1 复原测量

为了更好地获取织物变形后的复原性度量,我们设计了一系列的实验来测量织物样本的投影面积比.将每个织物样本展开,平整地放在栅格板上,拍下真实照片,记录其初始面积.然后,将织物样本揉成一团后放到固定的摆放位置,拍摄每一次的面积变化情况.为了尽量减小误差,复原测量重复了20次.最后,用Matlab工具统计图像中黑色像素点的个数,则黑色区域的面积=图像实际成像面积大小×黑色像素点的个数¸图像像素点的总个数.以此得到初始织物样本与变形后样本间的面积变化.

1.2.2 拉伸测量

区别于传统的物理测量方法[19],我们通过直接测量被拉伸织物对角线长度来度量织物的拉伸特性.在测量中,固定织物样本对角线上3个顶点,首先记录初始样本未被施加拉力的初始对角线长度.然后,用一个拉力计拉伸另外一个顶点,不同纤维成分的织物面料拉伸到最大长度所用的拉力也各有不同,我们用(400g,800g)范围的拉力,拉力方向为0°.考虑到精确度,我们重复对每个织物样本拉伸20次,用直尺测量被拉伸的对角线的最大长度,并记录测量数据.最后,通过计算得到受拉伸力后织物变形的程度与初始样本之间的拉伸长度变化情况.

1.2.3 弯曲测量

将织物展开,平整地放在栅格上,给织物施加外力,使其产生褶皱.测量织物弯曲褶皱的高度,重复测量20次,并记录数据,通过计算得到织物样本产生最大褶皱的高度与其他高度平均值之间的变化情况.总的来说,每种织物样本分别做了20次复原测量,20次拉伸测量以及20次弯曲测量.因此,对于所有样本来说,共有900(15×20×3)次测量.与文献[27]相比,测量样本以及重复次数的增加能够提高测量数据接近客观真实织物的准确性.

1.3 织物面料属性的几何度量

织物的形态主要由悬垂性、抗弯性、抗皱性综合反映,基于以上测量数据,可以对织物面料属性进行几何度量,即,织物的复原性度量、拉伸性度量以及弯曲性度量,见公式(1).

$\left\{ {\begin{array}{*{20}{l}} {v(r_i^k) = (r_i^0 - \bar r_i^k)/r_i^0,{\rm{ }}\bar r_i^k = \frac{1}{{20}}\sum\nolimits_{k = 1}^{20} {r_i^k} }\\ {v(s_i^k) = (s_i^0 - \bar s_i^k)/s_i^0,{\rm{ }}\bar s_i^k = \frac{1}{{20}}\sum\nolimits_{k = 1}^{20} {s_i^k} }\\ {v(b_i^k) = (b_i^{\max } - \bar b_i^k)/b_i^{\max },{\rm{ }}\bar b_i^k = \frac{1}{{20}}\sum\nolimits_{k = 1}^{20} {b_i^k} {\kern 1pt} } \end{array}} \right.$ (1)

其中,$r_i^0$是每种织物样本的初始投影面积,$\bar r_i^k$是每种织物样本发生变形后的平均投影面积;$s_i^0$是初始的织物样本对角线长度,$\bar s_i^k$是进行拉伸测量后的每种织物样本的平均对角线长度;$b_i^{\max }$代表每种样本最大褶皱的高度,$\bar b_i^k$是对应测量到的每种织物样本褶皱高度的平均值.ik分别表示织物样本和测量次数,且i=0,1,2,…,14,k=1,2,…,20.复原性度量$v(r_i^k)$反映了初始织物样本与变形后样本间的面积变化情况,拉伸性度量$v(s_i^k)$反映了受到拉伸后的织物样本与初始样本之间的拉伸变化情况,弯曲性度量$v(b_i^k)$反映了织物样本产生最大褶皱的高度与其他高度平均值之间的变化情况.表 2给出了度量织物面料复原、弯曲、拉伸性的几何数据(保留4位小数).

Table 2 Mean geometric properties,statistic value,and quantifiable scalar weights for 15 kinds of fabrics 表 2 15种不同织物面料的几何属性度量,量化统计后的标准数据和权重比值
2 数据驱动的几何约束变形策略

我们用科学而客观的实验方法测量到了不同面料织物的数据样本,基于测量数据样本的度量,进一步进行统计回归建模,提出数据驱动的几何约束变形策略.

2.1 测量数据样本的统计回归模型

为了量化织物测量样本的统计概率分布,我们通过归一化处理,将每种织物样本中测量数据的最小值和最大值分别作为训练样本数据的最大值和最小值.归一化数据在[0,1]闭区间.因此,将每种织物面料复原性、拉伸性和弯曲性度量归一化表示为

其中,$v{(r_i^k)_{\max }} = \max \{ v(r_i^k)\} ,v{(r_i^k)_{\min }} = \min \{ v(r_i^k)\} ,i \in [0,14],k \in [0,19].$同理,可以得到$v{(s_i^k)_{\max }}$和$v{(s_i^k)_{\min }},v{(b_i^k)_{\max }}$和$v{(b_i^k)_{\min }}.$因此,分别对应于测量数据的几何均值$v(r_i^k),v(s_i^k)$和$v(b_i^k),$我们得出不同织物面料属性的标准化度量数据$v'(r_i^k),v'(s_i^k)$和$v'(b_i^k),$见表 2.

基于获得的标准化度量数据,我们进一步建立了测量数据样本的统计回归模型,目的是更好地说明测量数据与标准化度量数据间的关联性,具体步骤如下:

· 首先,对测量中所选的15种织物样本,按其自身面料机理性能,如抗皱性、拉伸度、弯曲度的变化,进行排序,可以获得这3种面料属性不同织物的变化曲线;

· 然后,对15种不同织物的标准化度量数据$v'(r_i^k),v'(s_i^k)$和$v'(b_i^k)$分别进行插值,由此可以获得15种织物样本各自对应的连续数据;

· 最后,采用三次样条回归拟合,得到测量样本数据与织物自身具有的面料属性之间的回归函数映射关系.在此基础上,进一步构造基于织物样本的真实测量数据与几何约束变形模型中3个变形能量项前权重系数间的三次样条回归拟合函数,具体可定义为以下形式:

$\begin{array}{l} s(x) = {\beta _0}(i) + {\beta _1}(i)({x_i} - x) + {\beta _2}(i){({x_i} - x)^2} + {\beta _3}(i){({x_i} - x)^3},x \in [{x_i},{x_{i + 1}}]\\ {\rm{s}}{\rm{.t}}{\rm{. }}s(x){|_{x = - {x_i}}} = s(x){|_{x = + {x_i}}},s'(x){|_{x = - {x_i}}} = s'(x){|_{x = + {x_i}}}\\ {\rm{ }}s''(x){|_{x = - {x_i}}} = s''(x){|_{x = + {x_i}}},s''({x_1}){|_{x = - {x_i}}} = s''({x_P}) = 0 \end{array}$ (3)

通过以上统计回归建模后,可将反映织物的复原性、拉伸性和弯曲性的3个面料属性特征用几何度量来描述.图 3给出了15种织物样本的面料属性标准化几何度量数据与其各自具有的面料机理性能的三次样条回归的拟合关系.

Fig. 3 Cubic spline regression fitting relationship between the standard geometric measurement value of cloth samples and the corresponding real tested material properties图 3 织物样本的面料属性标准化几何度量数据与其各自具有的面料机理性能的三次样条回归拟合关系
2.2 几何约束变形

如何建立一个能够反映织物面料的复原性、拉伸性和弯曲性这3个非线性几何属性的数学模型,是我们接下来要解决的重点.基于测量织物样本面料属性的标准化几何度量,我们在微分几何理论的基础上提出一种能够反映织物面料属性的网格变形模型.三角形网格曲面具有形状简单、可以无限逼近任意拓扑的物体表面、便于利用硬件加速实现其绘制等优点,是数字几何处理中最普遍的物体表示方法之一.本文采用三角形网格思想,将织物用三角形网格M=(V,E,F)表示,其中,V为顶点集;E为边集;F为三角形面片集,其每一项由3个顶点的序列构成.基于微分域方法,分别构造了与织物面料几何属性相关的约束能量项.

2.2.1 顶点位置约束

织物复原性的几何度量与网格的顶点位置相关,主要体现了织物发生变形后的恢复程度,即,网格三角面片上每个顶点的位置变化.因此,通过优化后,发生变形后的织物目标网格T与初始网格M之间有一个关联性的度量,即能够反映出真实织物样本所具有的复原属性.由此,可以得到第1项约束能量项的定义.

${E_P}({v_1},...,{v_n},{t_1},...,{t_n}) = \sum\nolimits_{i = 1}^n {||{v_i} - {t_i}|{|^2}} $ (4)

这一项能量约束了当前网格顶点vi(xi,yi,zi),i=1,…,n要接近于目标网格顶点ti(xi,yi,zi),i=1,…,n,如图 4(a)所示,它们之间的差分可以通过欧拉公式计算得到.

Fig. 4 Geometrically based deformation includes vertex position,edge,and dihedral energy w.r.t. cloth geometric properties including recovery,stretching,and bending图 4 基于测量织物样本面料属性的标准化几何度量(复原性、拉伸性、弯曲性),构造了与之对应的包括顶点位置、边长、二面角能量的几何约束变形

然而,只有顶点位置能量项,获得的变形效果(如图 4(a)所示)并不符合织物模拟的自然变形效果.

2.2.2 边长约束

要刻画织物的柔性变形效果,就必须保证织物表面变形过程具有等距性,也就是保证变形后的网格和初始网格的每个面仍然是全等的,那么在变形过程中就能得到织物网格的可展性.织物模拟要保证尽量柔性的仿射变换,因此,基于Tang[28]提出的可展网格曲面优化方法,我们得到了第2项长度约束,能够较好地保持织物网格在模拟过程中的形状和局部几何细节,如图 4(b)所示.其具体能量形式如下:

${E_L} = \sum\nolimits_{e \in E} {||{L_T}(e) - {L_M}(e)|{|^2}} $ (5)

公式(5)中:E是边长的集合;LM(e)是初始织物模型三角形网格M对应的边长,其长度取决于网格M中共享一条边的两个相邻顶点vivj;LT(e)是发生变形后的目标网格T对应的边长,其长度取决于目标网格T中共享一条边的相邻两个顶点titj,并通过欧拉公式分别可求出LM(e)和LT(e)的数值解.

2.2.3 角度约束

织物弯曲性是决定织物真实感模拟的重要特性之一,为了获得丰富的织物弯曲变形效果,我们基于Huang[22]和Popa[23]提出的弯曲能量约束,加入了能够较好体现织物弯曲性的能量约束项,图 4(c)给出了二面角能量定义示例,因此,针对织物弯曲几何属性,我们定义的角度约束能量项表现为以下形式:

${E_A} = \sum\nolimits_{(e \in E)} {||{A_T}(e) - {A_M}(e)||_F^2} $ (6)

其中,||×||F是Frobenius范数.AT(e)和AM(e)分别表示目标网格T和初始网格M中各自相邻三角面片的二面角.已知初始网格M中相邻两个顶点vivj共享一条边e,而顶点vkvl是共享e的相邻三角面片中的另外两个顶点.目标网格T中相邻两个顶点titj共享一条边e,而顶点tktl是共享e的相邻三角面片中的另外两个顶点.因此,通过(mti+(1-m)tj)-(ltk+(1-l)tl)以及(mvi+(1-m)vj)-(lvk+(1-l)vl)能够计算AT(e)和AM(e)的大小.系数ml用于调整AT(e)-AM(e)平行于边长e对应的法线.

3 真实感织物模拟

对应于能够反映织物面料的复原性、拉伸性和弯曲性的3个几何属性,我们提出了包括顶点位置、边长和角度约束能量项的织物几何变形能量模型,建立了织物几何属性与变形能量项权重间的映射关系,将这些约束能量统一在最优化计算框架中进行求解,通过权重设置和优化过程,最终得到织物模拟的真实感效果.

3.1 织物模拟的几何变形能量模型

织物真实感模拟可以转化为基于顶点位置、边长和二面角的3个几何能量项的变形过程.我们的目标就是要求解以下非线性能量函数最小化问题:

$E(T) = \mathop {\arg \min }\limits_V ({\omega _R}{E_P} + {\omega _S}{E_L} + {\omega _B}{E_A})$ (7)

其中,wR,wS,wB是几何变形能量模型中度量织物复原性、拉伸性、弯曲性的3个约束能量项的权重.

3.2 权重设置

公式(7)中的3个能量项权重wR,wS,wB是通过对织物样本测量的真实数据进行优化得到的,它们分别反映了测量前后的真实织物样本投影面积、拉伸长度及弯曲度的变化.为了有效地从真实测量数据中估算织物面料几何属性的参数设置,以使其能够直接用于织物模拟的几何变形能量模型中,我们需要将测量统计得到的面料几何属性数据再进行标准化处理,从而消除因数据量纲不同而产生的差异.于是,基于$v'(r_i^k),v'(s_i^k),v'(b_i^k),$通过进一步归一化数据,可以将织物面料几何属性与织物几何变形能量模型间的函数映射关系如下表示:

由于织物变形能量模型的3个能量项权重设置的数值范围是[0,1],因此可以获得3个能量项前的权重比值,见表 2.我们通过实验,进一步证明了基于真实测量数据量化统计得到的3个能量项权重的有效性.

3.3 过程优化算法

整个目标函数E(T)很难给出显式的表达.目标网格T上的EP,ELEA相关的顶点坐标titj是未知的变量.对于求解非线性优化问题,我们采用轮替变量的迭代优化方法,在迭代的每一步,将目标函数在当前近似解附近进行二次展开.优化迭代过程中,固定一个变量而去优化另一个变量,不断轮替优化,直到迭代过程停止.考虑到优化求解过程的收敛性、稳定性和效率,我们通过线性化坐标差值中的非线性因素,确保算法的收敛速度以及步长.下面为整个真实感织物模拟的过程优化的具 体步骤:

Step 1. 初始化:在顶点位置约束(4)、边长约束(5)、角度约束(6)下求解能量最小化问题(7),将3个几何变形能量项表示为在X=[x1,y2,z3,…,xn,yn,zn]T的列向量.

Step 2. 局部线性化:通过泰勒公式对目标函数(7)中每一项能量线性化,例如,边长LM(e)=||vi-vj||可以线性化为LM(e)+(xi-xj)(Dxi-Dxj)/LM(e)+O(|(xi-xj)2|),同时构造出形如AX=b的线性稀疏矩阵.

Step 3. 全局最优:通过形如X=(ATA)-1ATb求解局部线性最小二乘问题,其中,ATA是稀疏矩阵,且通过Cholesky分解回代分解计算,将能量极小化问题转换为二次规划问题后,可使X的求解效率更高.

4 实验结果与分析

本文方法的实现是在Intel 3.10GHz CPU,IntelG41 Express Chipset,4GB DDR3 Ram的硬件平台以及Visual Studio 2010和Graphite的软件平台上完成的.整个优化的收敛性和稳定性取决于用户操作的响应、数值求解的算法.一般情况下,本文所有实验例子的迭代过程都可以在15步之内收敛至变形结果,达到视觉真实感效果.由于运行效率只取决于网格的精度,所以本文提出的织物模拟方法适用于不同精度和剖分的三角网格.

4.1 权重参数设置

影响织物真实感模拟结果的主要因素取决于织物的几何属性,本文方法中,我们将其映射为整个织物能量函数中3个能量项的权重wR,wS,wB.这里阐述这3个权重设置的有效性,采用表 2中优化得到的反映15种面料织物的权重值,输入同一初始矩形网格(顶点数2 000),如图 5(a)中子图所示,四周标注的顶点为固定点,对角线标注的点为控制顶点往上沿着对角拉伸后,可以获得表 1选取的15种面料织物的变形结果,如图 5(a)~图 5(o)所示.

Fig. 5 Simulation results with the fitted parameters optimized from Table 3 to model 15 kinds of cloth deformation behaviors with different materials图 5 采用表 3中优化得到的权重参数,模拟到的15种不同面料织物的变形结果

为了进一步说明不同面料织物真实感模拟结果只取决于不同权重参数设置,而不受输入网格的不同剖分及精度的影响,图 6中给出了两组实例进行比较:一组例子中分别输入相同顶点(顶点数为329)但不同剖分(不规则Delaunay三角剖分和规则剖分)的网格模型,另一组实例中分别输入相同规则棋盘式剖分但不同精度(顶点数分别为48和441)的网格模型.

Fig. 6 Simulation behaviors with different resolution and triangulation input meshes图 6 不同精度和不同剖分的输入网格的模拟结果
4.2 主观视觉效果

为了进一步验证我们方法的有效性,给出了一系列基于视觉的主观评测机制并设计了用户调查.我们使用表 2中量化统计得到的权重参数,输入相同的矩形网格(顶点数为2 601),通过不同控制约束操作(布下有球、对角拉伸、水平起皱)模拟到了15种不同织物面料样本的最终形态效果.图 7中给出了所拍摄的真实织物照片与采用我们的方法模拟结果之间的比较.在用户视觉主观评测中,选取了与真实照片最相似的包括亚麻、苎麻、府绸、羊毛、华达呢、丝绸、牛仔、帆布、尼龙、棉这10种织物面料的模拟结果.为了验证本文给出的每一种参数设置与真实面料织物行为之间的有效性,在用户主观视觉评测实验中不仅选取了与真实照片最相似的织物模拟结果,如图 7(a)~图 7(h)给出的示例所示;而且也选取了一些不太理想的模拟效果进行评测,如图 7(i)和图 7(j)的两组示例所示.同时,我们邀请了100名用户参与到问卷调查中来(其中,男性占50%,女性占50%,年龄范围在18岁~78岁之间),请他们评价每种织物样本对应的10种模拟结果与真实织物样本照片之间的相似度,并给出相似度比较评分.由于存在不理想的模拟效果,通过用户给出的主观视觉效果评测,统计得到的使用本文给出的参数设置后的织物模拟结果与真实织物间相似度没有达到90%以上,而是85%以上,如图 8所示.

Fig. 7 Comparison between real photographs and simulation results with the fitted parameters and different patterns of control vertices and target positions图 7 真实织物样本照片与使用权重参数设置、不同约束点和控制点操作后得到的织物模拟结果之间的比较

Fig. 8 Similarity between simulated results by fitted parameters and real photographs for each cloth material图 8 使用量化统计得到的权重参数设置模拟到的不同织物面料效果与其真实照片间的相似度度量
4.3 比较与分析

我们的方法是基于非线性能量最优化框架来模拟不同面料织物真实感效果,因此,本文与其他相关的能量极小化方法[14]进行了比较(如图 9所示).图 9(a)是输入顶点数为1 361的网格,使用相同的固定点(半裙腰围位置)和控制点(半裙裙角位置)操作后,图 9(b)给出了采用文献[14]方法后模拟到的结果.与该方法只能通过动态调整优化权重参数生成最终的变形效果不同的是,本文方法设置了对应于羊毛织物面料的权重参数后模拟到的与图 9(b)对应的效果.此外,与该方法的区别还表现在:文献[14]方法只能获得织物变形的最终形态,无法反映出不同织物的面料属性;而本文方法将织物面料的物理属性几何化,并很好地引入到几何变形能量框架中,当设置权重参数为羊毛和苎麻,并通过真实感纹理映射后,图 9(d)和图 9(e)进一步展示了基于本文方法获得的具有羊毛呢和苎麻面料织物的真实感褶皱效果.

Fig. 9 Comparison for simulation result between other minimization method[14] and ours图 9 本文方法模拟的结果与其他极小化方法模拟结果的比较

表 3给出了本文实例中输入网格顶点数、三角面数、边数、迭代次数以及每一项能量形式平均初始化和最终目标函数的求解时间.由于权重参数和线性系统中的稀疏矩阵已预先设定,所以运行时间仅为线性化和计算网格变形的时间.可见,本文算法效率较高,可以有效地应用于织物模拟中.

Table 3 Statistics of the input meshes and algorithmic running time for each experimental example 表 3 本文实验例子中输入网格模型的几何数据统计与算法运行时间

本文提出的基于几何测量和变形的织物模拟方法是通过直接测量真实的织物样本,获得最能反映不同面料织物样本的优化特征几何参数,并能直接用于几何变形数学模型中.在此基础上,形成一套对织物性能客观、合理、科学的几何描述指标体系.表 4给出了本文方法与其他用于织物模拟的测量方法的比较.

Table 4 Comparison between our geometric measurement and other main measurement methods to simulate cloth 表 4 本文方法与其他基于测量的织物模拟方法比较

表 4中,测量实验环境的搭建成本、复杂性和效率是用3层等级的指标进行评价的,分别是高、中、低.其中,对于成本指标来说,其单位为人民币(CNY),范围分别是高(>10000CNY)、中(5000~10000CNY)、低(<5000CNY);复杂性的评价主要与织物模拟中的参数设置个数有关,3个评价等级分别是高(9个参数)、中(4个参数)、低(3个参数);运行效率的时间单位是秒(s),其3项评价指标分别为高(20s~30s)、中(10s~20s)、低(0s~5s).

4.4 应 用

本文提出的基于几何测量和变形的真实感织物模拟方法可以应用于计算机娱乐动画、数字试衣等多个领域.由于大多数真实世界中的衣服面料本身具有的编织机制和纤维成分等属性,使其在悬垂以及起褶皱时呈现出不同的效果.如图 10所示,选用了4种材质的相同款式T恤在相同人体姿势下着装后的真实感效果各不相同,矩形框标注的是在胳膊和身体部分处不同材质的褶皱细节.由于蓝色水洗星状牛仔面料属于棉织物,其在形态上易产生褶皱,但相较于丝绸和尼龙材质而言,仿真到的衣服显示出较少的褶皱细节效果,如图 10(a)所示;而蓝色白点帆布属于材质较硬的粗棉织物,模拟到的衣服只是在胳膊处显示出褶皱细节,而在T恤的身体部分基本都没有褶皱,如图 10(b)所示;丝绸织物的特点是柔软,因此在衣服的胳膊和身体部分均显示出较丰富的褶皱细节,如图 10(c)所示;蓝色尼龙一般用作运动外套,仿真到的蓝色尼龙面料下的衣服细节特征效果如图 10(d)所示.

Fig. 10 Shirts made of different cloth materials show wrinkles when worn by the same human model图 10 同款上衣在相同姿势下所展现出的不同面料织物褶皱的真实感效果
5 总结与展望

本文提出了基于几何测量和网格变形的真实感织物模拟.简洁、有效的实验方法能够度量真实织物样本的面料属性,通过量化统计,将测量到的几何数据用于直接构造织物网格变形数学模型.建立了织物面料几何属性与织物变形能量项权重间的关联.将非线性的织物模拟转换为网格变形的能量极小化问题,并通过3个权重比例参数的设置和过程优化,获得不同面料的织物模拟效果.本文方法效果理想、运行效率较高、鲁棒性好,可以有效地应用于三维服装的仿真.

未来的工作包括对织物动态变形行为的参数进行测量,进一步结合织物具有的面料性能,分析和模拟织物变形的动态过程,并且尽量考虑避免误差以提高模拟的准确性.另外,如何减少约束点和更好地控制织物网格变形,也是今后的工作之一.

参考文献
[1] Shi M, Mao TL, Xia SH, Wang ZQ. Advances and challenges in cloth animation. Chinese Journal of Computers, 2012,35(12): 2446-2458 (in Chinese with English abstract) .
[2] Baraff D, Witkin A. Large steps in cloth simulation. In: Proc. of the 25th Annual Conf. on Computer Graphics and Interactive Techniques. ACM Press, 1998. 43-54 .
[3] Chen W, Xu NP. Detection and amend of collision between cloth and rigid body in realistic cloth simulation. Ruan Jian Xue Bao/ Journal of Software, 2001,12(12):1874-1880 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/12/1874.htm
[4] Liu H, Chen C, Shi BL. Simulation of 3D garment based on improved spring-mass model. Ruan Jian Xue Bao/Journal of Software, 2003,14(3):619-627 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/14/619.htm
[5] Bridson R, Fedkiw R, Anderson J. Simulation of clothing with folds and wrinkles. In: Proc. of the SIGGRAPH/Eurographics Symp. on Computer Animation. ACM Press, 2003. 28-36. http://dl.acm.org/citation.cfm?id=846281
[6] Sun SQ, Xu AG, Huang Q, Wang X. Real-Time garment simulation based on geometrically approximating character with colliding objects. Ruan Jian Xue Bao/Journal of Software, 2007,18(11):2921-2931 (in Chinese with English abstract). http://www.jos.org.cn/1000-9825/18/2921.htm
[7] Thomaszewski B, Pabst S. Continuum-Based strain limiting. Computer Graphics Forum, 2009,26(2):569-576 .
[8] Kaldor JM, James DL, Marschner S. Efficient yarn-based cloth with adaptive contact linearization. ACM Trans. on Graphics (TOG), 2010,29(4),105:1-10 .
[9] Robert B, Ronald F, John A. Robust treatment of collisions, contact and friction for cloth animation. ACM Trans. on Graphics (TOG), 2012,21(3):594-603 .
[10] Chen Z, Feng R, Wang H. Modeling friction and air effects between cloth and deformable Bodies. ACM Trans. on Graphics (TOG), 2013,32(4):1-8 .
[11] Weil J. The synthesis of cloth objects. In: Proc. of the 13th Annual Conf. on Computer Graphics and Interactive Techniques (SIGGRAPH), Vol.20. ACM Press, 1986. 49-54 .
[12] Decaudin P, Julius D, Wither J, Boissieux L, Sheffer A, Cani MP. Virtual garments: A fully geometric approach for clothing design. Computer Graphics Forum, 2006,25(3):625-634 .
[13] Stumpp T, Spillmann J, Becker M, Teschner M. A geometric deformation model for stable cloth simulation. In: Proc. of the Workshop on Virtual Reality Interaction and Physical Simulation. The Eurographics Association, 2008,8:39-46. http://citeseerx. ist.psu.edu/viewdoc/download?doi=10.1.1.162.3216&rep=rep1&type=pdf
[14] Chen M, Tang K. A fully geometric approach for developable cloth deformation simulation. The Visual Computer, 2010,26(6-8): 853-863 .
[15] Rohmer D, Popa T, Cani MP, Hahmann S, Sheffer A. Animation wrinkling: Augmenting coarse cloth simulations with realistic- looking wrinkles. ACM Trans. on Graphics (TOG), 2010,29(6),157:1-8 .
[16] Yu Y, Zhou K, Xu D, Shi X, Bao H, Guo B, Shum HY. Mesh editing with poisson based gradient field manipulation. ACM Trans. on Graphics (TOG), 2004,23(3):644-651 .
[17] Sorkine O, Cohen-Or D, Lipman Y, Alexa M, Rossl C, Seidel H. Laplacian surface editing. In: Proc. of the 2004 Eurographics/ACM SIGGRAPH Symp. on Geometry Processing. ACM Press, 2004. 175-184 .
[18] Popa T, Julius D, Sheffer A. Material-Aware mesh deformations. In: Proc. of the IEEE Int’l Conf. on Shape Modeling and Applications. IEEE, 2006,22:1-12 .
[19] Huang J, Zhang H, Shi X, Liu X, Bao H. Interactive mesh deformation with pseudo material effects. Computer Animation Virtual Worlds, 2006,17(3-4):383-392 .
[20] Lee Y, Yoon SE, Oh S, Kim D, Choi S. Multi-Resolution cloth simulation. Computer Graphics Forum, 2010,29(7):2225-2232 .
[21] Müller M, Chentanez N. Wrinkle meshes. In: Proc. of the ACM SIGGRAPH/Eurographics Symp. on Computer Animation. Eurographics Association, 2010. 85-92. http://dl.acm.org/citation.cfm?id=1921441
[22] Narain R, Samii A, O’Brien JF. Adaptive anisotropic remeshing for cloth simulation. ACM Trans. on Graphics (TOG), 2012,36(6), 147:1-10 .
[23] Wu Z, Au CK, Yuen M. Mechanical properties of fabric materials for draping simulation. Int’l Journal of Clothing Science and Technology, 2003,15(1):56-68 .
[24] Bhat K, Twigg C, Hodgins J, Khosla P, Popovic Z, Seitz S. Estimating cloth simulation parameters from video. In: Proc. of Eurographics/SIGGRAPH Symp. on Computer Animation. ACM Press, 2003. 37-51. http://dl.acm.org/citation.cfm?id=846282
[25] Miguel E, Bradley D, Thomaszewski B, Bickel B, Matusik W, Otaduy MA, Marschner S. Data-Driven estimation of cloth simulation models. Computer Graphics Forum, 2012,31(2):519-528 .
[26] Wang H, O’Brien J, Ramamoorthi R. Data-Driven elastic models for cloth: Modeling and measurement. ACM Trans. on Graphics (TOG), 2011,30(4),71:1-11 .
[27] Liu L, Su Z, Wang RM, Luo XN. Material-Aware cloth simulation via constrained geometric deformation. Computers & Graphics, 2013,32(1-2):21-32 .
[28] Tang K, Chen M. Quasi-Developable mesh surface interpolation via mesh deformation. IEEE Trans. on Visualization and Computer Graphics, 2009,15(3):518-528 .
[1] 石敏,毛天露,夏时洪,王兆其.布料动画方法研究进展及问题.计算机学报,2012,35(12):2446-2458 .
[3] 陈旿,徐乃平.真实感布仿真中布与刚体的碰撞检测及修正.软件学报,2001,12(12):1874-1880. http://www.jos.org.cn/1000-9825/12/1874.htm
[4] 刘卉,陈纯,施伯乐.基于改进的弹簧-质点模型的三维服装模拟.软件学报,2003,14(3):619-627. http://www.jos.org.cn/1000-9825/14/619.htm
[6] 孙守迁,徐爱国,黄琦,王鑫.基于角色几何碰撞体估计的实时服装仿真.软件学报,2007,18(11):2921-2931. http://www.jos.org.cn/ 1000-9825/18/2921.htm