薛 原, 黄璐宸, 杨若瑜
(南京大学软件新技术国家重点实验室,江苏 南京 210046)
不同材质服装的实时动态仿真
薛原, 黄璐宸, 杨若瑜
(南京大学软件新技术国家重点实验室,江苏 南京 210046)
提出参数化的人体建模方法。将人体分为10个部分,并且定义了一系列特征参数用来控制人体的拓扑结构。文献[1]中提出的Zhang样条曲线被用于构造每个部分的人体表面。在完整人体模型的基础上,实现实时的着装模拟。在传统弹簧质点模型的基础上提出大弯曲弹簧以实现褶皱效果。另外,通过合理的参数设置以及多重校正机制实现不同材质的效果,包括丝质、棉质和弹性布料。实验结果证明该系统可以建立较为真实的人体模型,并且能实时地进行较为复杂的试穿仿真。
Zhang样条;参数化变形;大弯曲弹簧;服装材质
当下,随着网络购物的盛行,虚拟试衣技术越来越被广大学者所关注。实现虚拟试衣系统需要考虑两个关键问题,即真实的人体模拟和服装在虚拟人体上的动态试穿仿真。
针对不同的数据来源和不同的应用场景,人体建模方法有许多,其相关工作取得了一些成果。一般数据来源可分为二维图像、三维视频、三维点云以及用户所指定的参数。Lin和Wang[2]提出了以数据源为人体的彩色正面照和侧面照的重建方法,其过程为:轮廓检测、型值点检测、获取人体各部分尺寸信息以及根据已有3D模版重建人体模型。这种方法对于照片的拍摄要求较为严格,且由于只用到二维信息,对于人体腋下等部位的重建较为粗糙。Kakadiaris和 Metaxas[3]提出了通过在圆屋顶安装多台摄像机来多方位捕获不同视点的场景,并使用正交视频序列进行人体建模。该方法对设备和场地的要求较高。Izadi等[4]通过Kinect深度摄像头获取人体的三维点云,使用ICP算法、体素整合算法和光线投射算法以获取变换后的坐标,最终重建出人体模型。Wang[5]通过3D无序点云建立模型并将其加入数据库,然后通过比对数据库中的模型和将要重建的人体,选取数据库中与该重建人体较为接近的模型来实现人体重建。基于点云方法构建的人体比较逼真,但大量点云数据的存储、传输成为其瓶颈。
毛天露和王兆其[6]提出的人体建模步骤为:获取人体的21个测量参数、缩放人体表面模型的相应部分、建立模型、构造人体骨架并通过骨架驱动人体模型以实现较为简单的动作。这种参数化变形方法实时性较好,但在完成动作时,需对人体拼接部位进行人工干预,否则易出现错位、不接合等问题。文献[7-8]通过对已有模型进行修改实现实时性,类似的参数化建模方法的效果更多依赖于初始模型的精细化程度,另外,为了获得较好效果需要对初始模型进行分割。Barmpoutis[9]提出利用 Kinect 每帧数据直接进行人体表面建模,该方法不关注人体结构尺寸,但某些点的误差会影响整个建模结果。总之,以上人体建模方法欠缺效率及灵活性,另不能满足虚拟试衣系统对实时及完成各种动作的人体建模的要求。
复杂的服装仿真是以简单的布料模拟为基础的,因此国内外很多研究者对简单布料的特性进行了探究并归纳出一般规律。文献[10]比较了包括欧拉积分、中点积分和龙格-库塔积分方法,将这些方法实现在简单布料模型上,并通过实验结果比较了其方法的优缺点及适用情况。Kang等[11]使用隐式积分实现布料仿真,并对隐式积分的特性进行研究,得出隐式积分相比显式积分具有较高的稳定性。另外,在仿真中采用了物理和几何的结合方法,即使用三次样条曲线对褶皱效果进行模拟。文献[12-13]针对摩擦力提出了更为精确的公式,对布料和刚性球体的碰撞过程进行实验,使得碰撞处理的过程更加真实。Cao和He[14]研究了弹簧质点模型中的超弹性现象,并提出使用快速碰撞树进行碰撞检测以加速这一过程。
为实现较为真实的试穿仿真效果,文献[15]提出基于几何的区域划分方法以实现碰撞检测,其只获取质点的位置信息而不考虑质点的速度和受力情况。Wang等[16]对织物构建褶皱数据库,相同的褶皱可以被应用到相似的动作中。Guan等[17]使用两组训练集,一组包含体型不同但动作相同的人体模型,另一组是相同体型但动作不同的人体试穿的结果。将训练结果结合就可获得特定体型和动作的人体试穿效果。刘炯宙等[18]将三维服装模型划分为紧身层、浮贴层和宽松层,前两层利用蒙皮和近似刚性的模拟来保证效率,宽松层则采用物理模拟以保证一定真实性。这些方法效果较为逼真,但是由于物理信息缺乏或是实现过程较为复杂,因此很难应用在动态试穿仿真中。
为实现不同的材质效果,Wang等[19]在传统的质点弹簧模型基础上增加若干组弹簧,并增加弹簧参数数量以充分实现服装应有的各向异性效果。此方法实现了材质的区分,但对每种材质的模拟都需要进行许多参数组合,限制了方法的扩展性,同时又增加了程序计算量。Liu等[20]通过测量获取服装的 3组几何信息,分别为面积、长度和角度信息,并通过纹理映射的方式实现仿真。由于采用了几何方法,因此难以实现动态仿真,另外由于测量参数数目巨大,该方法也不适用于较为复杂的服装模拟。姜延等[21]通过测量的方法测试服装样本的力学参数,并重点考虑与悬垂性相关参数,通过BP神经网络建立织物力学属性与仿真控制参数之间的非线性映射关系。此方法的不足之处是需要大量计算,实时性欠佳。
本文提出一种兼顾效率、真实性和灵活性的参数化人体建模方法,并在此人体模型的基础上,实现完整的试穿仿真系统。不同于前文提到的通过大量参数设置实现的材质区分方法,本文根据不同材质的特性,对材质的处理贯穿于仿真过程中的每个步骤,从而避免了大量的测量工作,大大提升了系统效率和灵活性。通过改进常用的质点弹簧模型,提出了大弯曲弹簧以快速实现褶皱效果。图1为本文试穿仿真方法的整体流程图。
图1 试穿仿真系统流程图
参数化三维人体建模需经过特征点、特征尺寸获取、数据预处理、型值点计算、表面重建、各曲面拼接、显示等步骤。在此主要流程基础上,若要实现参数化建模功能或人体动画效果,还需分别返回到型值点计算或特征点、特征尺寸获取这两个步骤重新对人体表面点进行计算。本文中特征点、特征尺寸的获取既可以通过 Kinect深度摄像头识别获取,也可简单的由用户指定。前者精确性较高,后者便于人体模型的灵活调整。
1.1参数化模型设计
由于人体表面并非规则,尤其是人体每个部分接合处拓扑结构比较复杂并且要考虑到灵活的动作变换,因此人体表面不能以整体的方式进行重建。本文将人体模型分为左右大臂、左右小臂、左右大腿、左右小腿、躯干、臀部10个部分。根据一般人体的结构特征,选取对体型有较大影响的测量参数作为参数化建模的依据。
特征参数包含特征点和特征尺寸。特征点分别为:衣领、肩膀、腋窝、胸口、乳头、腰部、臀部、大腿、膝盖,人体骨骼可以通过顺次连接这些特征点(除去乳头)。特征尺寸包括身高、颈宽、颈厚、肩宽、胸围、腰围、臀围、大腿围、小腿围、大臂围、小臂长、小臂围、乳间距、乳高、肚高。特征尺寸中如三围、臂长、身高等是人体的主要尺寸,而乳高、乳间距、肚高等本文视为附加特征尺寸,可用于构造特殊的人体模型。
人体表面的型值点是在特征点和特征尺寸的基础上并结合标准人体模型的分层信息得到的。以人体躯干为例,计算方法如下:
首先确定人体躯干所需的型值点层数,如胸部及以上较为复杂,其建模的型值点层应更为密集,而腹部建模型值点层则应相对稀疏。最终使用 9层型值点进行建模,包括颈部顶层、颈部底层、肩膀层、胸部附近层,胸部和腹部之间三层,腹部两层。
其次,需要确定每层型值点的 Y坐标,由于初始人体的姿势是垂直站立的,因此同一层型值点间的 Y坐标相同。人体躯干长度可以根据特征点计算获得,如表 1所示,特征点高度所占人体模型总高度的比例结果是一个统计平均值。根据这一结果和每一部分的层数可计算出每一层的 Y坐标。型值点的X或Z坐标可通过该型值点附近的特征尺寸获得。例如腹部特征点的计算过程如下:
表1 特征点高度比例均值
1.2基于Zhang样条的人体建模
本文采用各个部分建模的方式,并且最终需要保证人体模型易于修改。采用 Zhang样条曲面进行人体建模,因为该曲面易于实现光顺拼接,使得每个部分连接后的效果更加逼真。另外,Zhang样条是插值型样条曲面,所以可将所有的型值点直接作为控制点使用,对人体的体型和动作修改都更加快捷。Zhang样条的样条基函数由sin函数和高斯函数拟合得到,因此继承了高斯函数具有快速衰减至 0的特性,该特性有益于局部控制。同时继承了sin函数易于插值的特性。其中一个基函数如下:
其中,a大于0,为了减少错误和产生光滑表面,取a∈[1/7,1/3]。
本文使用“重复型值点”的方法以实现光顺拼接,若要对一块曲面片 u方向首尾光顺拼接,则需在u方向首尾各重复两层v方向的型值点作为辅助控制点,并将控制点矩阵代入 Zhang插值样条曲面公式;若要对有公共交点的不同曲面片完成光顺拼接,则在曲面片交接线附近各取两层点作为辅助控制点,可简单选取两曲面上交接线附近的型值点。例如,腰部的第j层控制点为:
本文人体各个部分建模步骤如下:
(1) 计算人体躯干各层控制点,形成人体躯干控制点矩阵。
(2) 求取Zhang插值样条曲面的一组基函数。
(3) 将控制点坐标与一组基函数的值代入Zhang插值样条曲面表达式中,可通过调整参数方程中u,v的变化率,求得人体表面任意个数点的坐标。
(4) 对躯干生成点进行三角网格化,并计算各点法向量,方便后续光照条件下观察人体。
对于每个人体部分,都需要构建一张曲面片,除了考虑曲面片本身的封闭拼接之外,还需考虑不同人体部位之间的拼接,如大腿与小腿之间、大臂与小臂之间、躯干与臀部之间、臀部与大腿之间、大臂与躯干的肩部之间。
由于大腿与小腿各层型值点数量相同,且有公共的一层型值点,故可在接合处各增加两层辅助控制点即可完成光顺拼接;大臂与小臂、躯干与臀部之间的拼接同理。例如,当对臀部和躯干进行拼接时,腰部和臀部的控制点如下:
拼接前:
拼接后:
服装试穿首先需要建立服装模型,构造弹簧,接着选取适当的参数,选择合适的积分方法和校正方法,最后进行适当的碰撞检测和处理。
2.1服装建模和弹簧构造
典型的服装建模方法为:几何模型和物理模型。几何模型多用于静态展示;物理模型可分为连续力学模型和粒子系统。其中,连续力学模型实时性不高,而粒子系统中力的相互关系是局部化的,计算量较小,实时性较高,因此仿真采用粒子系统。
首先根据模型初始的点和面信息建立邻接表,在此基础上添加弹簧信息,弹簧种类包括传统质点-弹簧模型中的拉伸弹簧、剪切弹簧、弯曲弹簧和本文提出的大弯曲弹簧。
考虑到衣服模型由 3dmax建模获取,一般较为精细,模型顶点和面片的信息较为复杂,为了减少仿真过程中不必要的耗时,需要对服装网格模型进行简化。常用的网格简化算法包括顶点删除法、边收缩法和三角形删除法。其中,三角形删除法比边收缩法简化模型速度更快,相对于顶点删除法数据结构的存储较为简单,因此选用三角形删除法。
此外,本文设计了大弯曲弹簧以实现特定材质的仿真。该弹簧不同于原模型弹簧,主要用于控制服装产生较大范围褶皱效果。
所有弹簧的构造过程如下:
(1) 对所有相邻质点之间添加拉伸和剪切弹簧,纵横方向拉伸,斜向剪切。
(2) 对所有中间相隔一个质点的两质点间添加弯曲弹簧,包括水平竖直和斜向。
(3) 根据指定简化度对模型简化,得到简化质点。此处的简化度可根据需要调整,并且可以与下文提到的碰撞检测中的简化度不同。
(4) 对于任意简化质点P,获取该质点所有邻接简化质点Qi(i=1,•••,n),在P和Qi之间添加大弯曲弹簧。
弹簧构造示意图如图2所示,其为只进行一次简化的弹簧构造效果。假设进行一次简化后,删除 Δv0v1v2,此时顶点 v1、v2被删除,v0被保留并标记为简化质点,与 v0邻接的质点(除去 v1、v2)以及与原v1、v2邻接的质点均标记为简化质点,并在质点间添加大弯曲弹簧,而原所有非简化点之间弹簧保持不变。图 2(b)中所示点线为与 v0相连的大弯曲弹簧。
图2 弹簧构造示意图
2.2参数分类及使用
得到服装模型后,需为模型添加物理信息。本文对服装的物理仿真主要是通过设置不同的参数来实现,为了方便讨论,将参数分为 4组,分别为外力相关参数,内力相关参数,碰撞相关参数以及其他参数(表2)。
表2 服装仿真参数表
外力相关参数分为人为力和非人为力参数。非人为力是指服装在自然状态下受到的外部作用力,包括重力、风力和空气阻力,其中重力可通过对象总质量和重力加速度这两个参数实现,而风力和空气阻力分别受到风力因子和空气阻力系数的影响,公式为:
人为力是指为了使服装产生特定运动效果所施加的外力,包括提拉力、拖拽力和旋转力。施加这些力的目的是为了使模型产生多种多样的运动,从而观察模型的局部动态效果,以达到较精确仿真的目的。
内力相关参数为各种类型弹簧的相关参数,对于拉伸和剪切弹簧,内力相关参数包括拉伸常量,阻尼常量,弹簧最大伸长率。其中拉伸常量是阻碍弹簧拉伸的;而阻尼常量是为了使弹簧进行阻尼运动,因为弹簧振子的能量是会逐渐衰减的,因此,其振幅会逐渐缩小,最后稳定;弹簧最大伸长率用于限制弹簧最大长度,防止弹簧过度伸长。弹力计算公式如下:
大弯曲弹簧相关参数:拉伸常量、阻尼常量、弹簧原长。建模时,大弯曲弹簧的长度设为Lorigin,弹簧原长设为Lrest,一般情况Lrest<Lorigin,也就是说弯曲力在初始的简化质点之间就存在,因此会出现褶皱效果。
碰撞相关参数:碰撞响应系数、静摩擦系数和动摩擦系数。当服装与人体发生碰撞时,服装会受到人体的碰撞响应力,其垂直于碰撞平面向外。摩擦力包括静摩擦力和动摩擦力,其由阈值决定,该值为响应力与静摩擦系数的乘积。若超过阈值,则为动摩擦力,反之,则为静摩擦力。根据常理,动摩擦系数略小于静摩擦系数。
其他参数:积分步长、模型简化度。后者是一个百分比,用来灵活控制碰撞检测的效果和大弯曲弹簧的设置。
以上参数为实验中用到参数的集合,对于某种特定类型织物或某种特定类型材质,所有参数将有变化。
2.3积分和校正
在设置一定的参数后,对每步进行积分计算,并得到下一时刻每个质点的速度和位移,即实现服装动态效果。本文选取Verlet积分进行计算。
对于Sn+1和Sn–1,使用泰勒公式:
式(a)+(b),变形可得位置表达式:
式((a)–(b))/(2∆t)可得速度表达式:
对于采用弹簧质点模型建立的系统,由于弹簧本身的性质,容易产生超弹性现象,即弹簧过度拉伸,造成最终效果失真。解决方法是通过积分后的校正对结果进行修改,常见的校正方法有基于位置和速度的校正。
基于位置的校正是指为每个弹簧设定一个阈值,该值通过弹簧最大伸长率获得,称为弹簧最大长度。传统位置校正规定:如果弹簧长度超过最大长度或小于最小长度,则改变两端质点位置,调整弹簧为设定的最大值/最小值,该方法称为PM。为保证系统稳定性,本文采用改进位置校正(PMA),调整策略为:
按式(7)计算校正后质点的目标位置:
基于速度的校正是指通过改变弹簧两侧质点的速度以防止弹簧进一步伸长或缩短,常用方法为将速度清零,称为VM。
对于较复杂模型,PM容易使模型整体产生抖动,需采用PMA以保证系统稳定性,本文介绍的复杂服装模型中的拉伸和剪切弹簧就是采用PMA校正。对于复杂模型中的大弯曲弹簧,如果仅使用位置校正,就会表现出柔软布料的特性,无法产生富有硬度特性的褶皱效果。需要结合速度校正,即采用PMA+VM的方法,使得模型迅速进入最终状态。
2.4碰撞检测和处理
对于衣服模型,在试穿过程中需要与人体模型进行碰撞检测和碰撞处理[1]。
首先需要将人体模型网格点向外扩张,产生虚拟的人体模型,称为扩张人体模型。服装与人体进行碰撞检测时,只需与扩张人体模型进行碰撞检测,该方法可以只进行衣服质点和人体模型三角面片的碰撞,即“点-三角形”碰撞,从而避免了“边-边”碰撞和“三角形-点”碰撞。
为了实现服装运动,碰撞检测需要精确到人体每个部分,包括身体、大臂、小臂、大腿、小腿。因此,需要将人体进行划分,并对人体的各个部位建立圆柱映射表、计算方向包围盒(oriented bounding box, OBB),以加速碰撞检测。
碰撞检测和处理的流程如下:
首先对服装中每一部分的简化质点与所在映射表的人体块进行碰撞检测,如果发生碰撞,则进一步对每一部分的所有服装质点进行检测。无论是简化点还是非简化点,其检测和处理过程均为:
(1) 对于某一质点P,首先判断其是否在OBB包围盒内。如果是,跳至2;否则,结束处理。
(2) 进一步检测质点 P是否与扩张人体模型发生点-三角形碰撞,如果是,表示碰撞成立,否则,结束处理。
(3) 如果检测质点P碰撞成立,则使其沿法向量向外拉伸至人体模型表面处,并对 P施加补偿力,该力类似于人体对衣服的支撑力,方向同沿着碰撞平面向外的法向量方向。另外,对 P施加摩擦力,具体是动摩擦力还是静摩擦力要根据 P的总体受力状态和摩擦系数确定。
2.5服装材质实现
本文对丝质、棉质和弹性纤维3种常见材质的服装进行了区分。
丝质布料难以被拉伸且由于其顺滑的特点,摩擦力较小,因此拉伸和剪切弹簧应具有较大的弹性系数以使得布料不易拉伸,而弹簧阻尼系数应较小。取较小的弹性系数是因为丝质布料柔顺易弯曲,丝质服装不需要大弯曲弹簧的控制,因为其褶皱都是小范围的并且不具备硬度特点。
弹性布料的拉伸和剪切弹簧的弹性系数和阻尼系数都应被设置得较小,另外,弹簧的自然长度应该小于弹簧的初始长度,以便在模拟中产生收紧效果。
棉质布料不易于拉伸且其弹性系数介于丝质和弹性布料之间,取适中的弹性系数,而由于棉质布料内力较大,因此阻尼系数较大。
每种材质的参考值如表3所示。其中弹簧自然状态下(弹簧不发生形变,没有弹力)的长度与弹簧初始长度的比值计为RL。
表3 不同服装材质参数设置
图3为弹簧设置流程图。不同材质在具体实现上的区别是由弹簧的初始设置、力的计算和校正方法决定的。
图3 弹簧设置流程
对于任意弹簧s,获得其两端点索引号p1,p2的方法如下:
(1) 如果s非大弯曲弹簧,则通过弹力阻尼力的计算公式可得到s两端质点受的力(两端点受到的力向量大小相同,方向相反)。注意如果是弹性服装中的弹簧,在一开始,由于自然长度小于初始长度,两端点就受到回缩力。
(2) 如果s是大弯曲弹簧,若弹簧长度大于初始长度,则弯曲力为0,若弹簧长度介于自然长度和初始长度之间(自然长度由RL确定),弯曲力的大小通过弹力阻尼力公式计算,需要将式(5)修改为:
其中,Lrest为大弯曲弹簧自然长度。
(3) 进行积分计算后,得到质点新位置,该位置未必是下一步长的最终位置,可能要经过校正处理。
(4) 对于除大弯曲弹簧以外的弹簧,仅需使用PMA进行校正;而对于大弯曲弹簧,则使用PMA+VM进行校正。另外,在绝大部分情况下,使用PM+VM进行大弯曲弹簧校正就可以保证效果和系统稳定性。
本文方法通过改进实现了一个完整的人体着装系统,将原有静态仿真[12]扩展为可区分材质的、动态试穿效果。
该系统在主频3.30 GHz,Windows 7操作系统及4 GB内存的机器上实验,期间没有使用CUDA加速。
将实验结果分为3组,图4为参数化人体建模结果,以及快速变形效果,图4(d)展示特殊体型人体——孕妇的效果图,通过调整附加尺寸可以快速实现。图 5为不同材质的服装在男性和女性人体的试穿效果图。图中可以看出,棉质服装存在一些硬质褶皱现象,丝质服装较为顺滑,弹性服装有一定收紧效果。图 6使用骨架驱动使人体产生各种动作,展示了丝质服装的动态试穿效果。
图4 改变参数以修改人体模型
图5 不同材质服装的试穿效果(上:女;下:男)
图6 动态试穿仿真效果
程序各主要部分耗时如表4所示,其中从图4所示的服装模型初始状态到服装模型稳定的仿真状态,其所消耗的时间称作预处理时间。
表4 仿真效率分析表(ms)
从表 4中可以看出,预处理耗时较多,然而此处的耗时可以有效地提高其后的仿真效率,且该过程仅需进行一次。而每个步长计算耗时仅需20~50 ms,因此在人体运动或后续其他交互情况下,本文的服装仿真算法具有良好的实时响应效果。
本文实现了实时的人体建模和试穿仿真系统,根据特征参数计算人体表面的型值点,使用Zhang样条曲面对人体每个部分建模并实现各部分的光顺拼接和人体模型的灵活修改。构造了相对逼真且适用于虚拟试衣仿真的人体模型。本文实现完整的试穿系统,积分、校正、碰撞检测和处理,特别通过大弯曲弹簧的设置改进了传统弹簧质点模型,并最终在动态仿真系统中实现 3种服装材质效果。在以后工作中,将对其他复杂材质的仿真实现做进一步研究,并考虑改进碰撞检测等算法以期适用于更大幅度、更加多样的动作。
[1] Zhang R J, Ma W Y. An efficient scheme for curve and surface construction based on a set of interpolatory basis functions [J]. ACM Transactions on Graphics (TOG), 2011, 30(2): 10.
[2] Lin Y L, Wang M J J. Constructing 3D human model from front and side images [J]. Expert Systems with Applications, 2012, 39(5): 5012-5018.
[3] Kakadiaris I A, Metaxas D. 3D human body model acquisition from multiple views [C]//Computer Vision, 1995 Proceedings, Fifth International Conference on. IEEE, 1995: 618-623.
[4] Izadi S, Kim D, Hilliges O, et al. KinectFusion: real-time 3D reconstruction and interaction using a moving depth camera [C]//Proceedings of the 24th Annual ACM Symposium on User Interface Software and Technology. ACM, 2011: 559-568.
[5] Wang C C L. Parameterization and parametric design of mannequins [J]. Computer-Aided Design, 2005, 37(1): 83-98.
[6] 毛天露, 王兆其. 个性化三维人体模型快速建模方法[J].计算机辅助设计与图形学学报, 2006, 17(10): 2191-2195.
[7] Kasap M, Magnenat-Thalmann N. Parameterized human body model for real-time applications [C]//Cyberworlds, 2007. CW’07 International Conference on. IEEE, 2007: 160-167.
[8] Zhou S Z, Fu H B, Liu L G, et al. Parametric reshaping of human bodies in images [C]//ACM Transactions on Graphics (TOG). ACM, 2010, 29(4): 126.
[9] Barmpoutis A. Tensor body: real-time reconstruction of the human body and avatar synthesis from RGB-D [J]. Cybernetics, IEEE Transactions on, 2013, 43(5): 1347-1356.
[10] Volino P, Magnenat-Thalmann N. Comparing efficiency of integration methods for cloth simulation [C]//Computer Graphics International 2001. Proceedings. IEEE, 2001: 265-272.
[11] Kang Y M, Choi J H, Cho H G, et al. An efficient animation of wrinkled cloth with approximate implicit integration [J]. The Visual Computer, 2001, 17(3): 147-157.
[12] Pabst S, Thomaszewski B, Straßer W. Anisotropic friction for deformable surfaces and solids [C]//Proceedings of the 2009 ACM SIGGRAPH/Eurographics Symposium on Computer Animation. ACM, 2009: 149-154.
[13] Bridson R, Fedkiw R, Anderson J. Robust treatment of collisions, contact and friction for cloth animation [C]// ACM Transactions on Graphics (ToG). ACM, 2002, 21(3): 594-603.
[14] Cao Z F, He B. Research of fast cloth simulation based on mass-spring model [C]//National Conference on Information Technology and Computer Science 2012, Lanzhou, China, 2012: 323-327.
[15] ElBadrawy A A, Hemayed E E, Fayek M B. Rapid collision detection for deformable objects using inclusion-fields applied to cloth simulation [J]. Journal of Advanced Research, 2012, 3(3): 245-252.
[16] Wang H M, Hecht F, Ramamoorthi R, et al. Example-based wrinkle synthesis for clothing animation [C]//ACM Transactions on Graphics (TOG). ACM, 2010: 107.
[17] Guan P, Reiss L, Hirshberg D A, et al. DRAPE: DRessing Any PErson [J]. ACM Transactions on Graphics (TOG), 2012, 31(4): 35.
[18] 刘炯宙, 李基拓, 陆国栋. 三维服装物理-几何实时混合模拟[J]. 计算机辅助设计与图形学学报, 2014, 26(12): 2244-2250.
[19] Wang H M, O’Brien J F, Ramamoorthi R. Data-driven elastic models for cloth: modeling and measurement [J]. ACM Transactions on Graphics (TOG), 2011, 30(4): 71.
[20] Liu L, Su Z, Wang R M, et al. Material-aware cloth simulation via constrained geometric deformation [J]. Computers & Graphics, 2013, 37(1): 21-32.
[21] 姜延, 刘正东, 陈春丽. 基于面料力学属性的三维织物模拟[J]. 计算机辅助设计与图形学学报, 2012, 24(3): 323-329.
Real-Time and Dynamic Clothes Simulation of Different Fabric Materials
Xue Yuan,Huang Luchen,Yang Ruoyu
(Key Laboratory for Advanced Technology of Software, Nanjing University, Nanjing Jiangsu 210046, China)
A parametric method for 3D human modeling is proposed in this paper. A set of feature parameters are defined to control the topological structure of human body comprising ten parts. Zhang spline is then used to construct the human surface of each part. Real-time garment dressing simulation is implemented based on the integrated human model. As an improvement of traditional mass-spring method, large-span bend spring is proposed for the purpose of wrinkle simulation. Furthermore, proper setting of parameters along with multistep correction strategy enables simulation of different fabric materials, namely cotton, silk and elasticity. The experimental results show that our system can construct relatively realistic human model as well as realize complete and flexible garment dressing simulation in real time.
Zhang spline; parameterized deformation; large-span bend spring; fabric materials
TP 391.9
10.11996/JG.j.2095-302X.2016010102
A
2095-302X(2016)01-0102-08
2015-09-24;定稿日期:2015-10-10
国家自然科学基金项目(61272218;61321491)
薛原(1990–),男,江苏徐州人,硕士研究生。主要研究方向为3D服饰仿真。E-mail:960443741@qq.com
杨若瑜(1977–),女,安徽滁州人,副教授,博士。主要研究方向为计算机视觉、三维重建和仿真。E-mail:yangry@nju.edu.cn