摘要:为了模拟服装设计与款式的着装效果,提出了一个三维服装设计与仿真的系统集成框架。系统的主要功能包括:人体运动和动画、服装设计、裁剪、裁片生成与缝合等。服装的构建过程是:先自动生成服装裁片,再对裁片进行修正,最后对裁片进行缝合。系统还能利用虚拟模特对设计好的服装进行虚拟试衣,直观展示着装效果。实验表明:系统具有较高的运行效率和快速设计能力。
关键词:三维服装设计 虚拟试衣 服装裁片 人体模型
中***分类号:J523.5 文献标识码:A 文章编号:1007-9416(2014)02-0178-03
Abstract:In order simulate garment design and the clothing effect, a system integration framework of 3D garment design and simulation is proposed. The main functions of the system include: human motion and animation, garment design, cutting, cutting and pattern generation and sewing. The garment construction process is performed through automatic pattern generation, posterior correction, and seaming. The system can use the virtual model for virtual fitting, intuitive display the effective of dressing. Experimental results show that the system has a high efficiency and fast design ability.
Key Words:3D garment design virtual fitting garment pattern human body model
1 引言
长久以来,服装仿真设计一直是计算机***形学中一个具有挑战性的问题。现今,纺织和娱乐行业对计算机***形学的需求日益增加。布料仿真的更深一步就是服装设计仿真,就是在仿真环境中将各个服装部件进行组装的模拟设计。最近,出现了大量的有关三维服装设计的研究[1,2,3]。
在本文中,我们提出了一个三维服装设计与仿真系统的集成框架,该系统功能主要包括:人体运动和动画、服装设计、裁剪、裁片缝合等各个方面。另外,受Bresenham的Line Drawing算法[4]启发,在本文中给出了一个仅使用整数运算的自动2D服装裁片构造算法。该方法考虑了人体模型的测量,并能根据具体的服装款式自动生成服装裁片。算法通过寻找各个裁片边界顶点,并通过这些顶点来计算裁片的形状。在大多数已开发的软件工具中,二维服装裁片是从现有纺织设计工具得到,然后对其进行三角化并转换成基于物理的模型。与这些系统相对比,本文通过切割初始矩形网格来创建三维布网服装裁片。
本文给出的三维服装设计与仿真系统是建立在人体建模和动画工具基础之上的。人体运动模块允许用户通过调整关节点的位置、距离和旋转曲线来定义各种人体运动行为。服装设计模块是创建3D服装的一种有效工具,主要是通过对布板的切割和缝合来创建。系统能够让服装设计师围绕虚拟人物,对服装裁片进行虚拟缝合,实现服装3D模型。此外,该系统还提供了不同的选项来对服装进行渲染。系统的仿真模块还能根据人体运动、布料变形和碰撞做出相应的处理。
2 服装设计
服装设计包括:定义布料模型、服装模型的设计及服装的制作过程,在本文的系统中使用的布料模型是一个质点弹簧模型(Mass-Spring Model, M***)[5]。M***是一个粒子系统的具体实例,其中粒子是通过弹簧力连接。布料的类型和行为是由弹簧力的强度和布料的拓扑结构来确定的,而弹簧力的强度又取决于弹簧是如何连接各个粒子的。系统使用三种类型的弹簧来展现布的拉伸、剪切和弯曲性能。结构弹簧连接沿网格的行或列相邻的顶点;剪切弹簧连接对角线顶点;弯曲弹簧连接沿矩形网格的两个方向上相隔的每一个粒子。之所以采用质点弹簧模型,是因为其具有简单性、高效率和模拟布料物理性能的能力。
服装裁片的构建是一项繁琐而耗时的任务,为了减少在该任务中所花费的精力,我们提出一种自动化的过程,该过程考虑到了人体模型的测量结果。系统中采用的人体模型符合H-anim 1.1规范,它将人体关节分类成几个部分,如膝盖、肩膀或手肘等。现实生活中的服装设计需要一些人体模型的测量数据,如肩的长度、臂长、胸围和腰围等。我们根据人体的各个组成部分来计算相应的数值,并将不同服装款式的相关数据信息存储在数据库中。例如,设计一件衬衫需要肩膀的长度、胸围、腰围、臂围度、胸围和身高。因此,需要根据人体测量数据来定义服装裁片的边界顶点。从这些边界顶点,就可以生成服装的裁片结构。
综上所述,给出具体的服装裁片生成步骤如下:
(1)设V=v1,v2,…,vn是服装裁片的边界角顶点,初始的边界顶点集为B=v1,v2,…,vn。
(2)根据计算V的质心c。
(3)显示c,如果c不在期望的裁片中,允许用户选则裁片中的另外一点c’。
(4)按逆时针方向围绕c排序V,设W=w1,w2,…,wn是排序后的顶点集。
(5)Fori=1ton,应用Line Drawing算法寻找顶点集组成的边(wi,w(i+1)mod n),将属于边(wi,w(i+1)mod n)的顶点加入到集合B,这样就获得了裁片的边界点集。
(6)在集合B定义的区域中应用4-近邻边界填充算法。
(7)如果有必要,手动对结果进行优化。例如,为了防止产生锯齿装的边缘,得到平滑的边缘外观,用户可以根据需要选择正确的边界顶点。并以选择顶点作为控制点,生成相应的Bezier样条曲线。
***1显示了生成T恤裁片的具体步骤。在***1中,(a)定义边界角顶点;(b)应用Bresenham的Line Drawing 算法连接边界角顶点;(c)应用边界填充算法后的结果;(d)沿边界切割;(e)定义平滑边界;(f)对边界进行平滑处理;(g)定义领子边界和袖窿;(h)提取领子边界和袖窿;(i)平滑处理。
3 服装模拟
要做到服装效果仿真,系统必须具备数值积分功能。随着时间的推移,构成服装布料的布粒子的位置的计算需要考虑作用在布料上的力。作用在布片上的力可以分为外力和内力:内力又叫做弹簧力;外力是布料与环境的相互作用,包括重力和碰撞力。
3.1 缝合
各个服装裁片在身体周围的准确位置确定之后,裁片缝合过程就是在裁片接缝之间施加力量调用。接缝可以看作是吸引两个裁片到一起的力量源,在这个意义上,可以把接缝看成是弹性力量源。然而,弹性力的确切行为模拟是相当耗时的工作,另外一种更简单的启发式方法可以有效地解决该问题。启发式的方法应用对称的力量,让接缝将两个裁片进行吸附,具体如公式(1)所示。
两个服装裁片互相吸引,直到它们被碰撞力约束。在缝合过程中,没有任何其他的力被应用到服装裁片上。当两个裁片p1和p2相互靠近,达到某个阈值,缝合过程就结束,两个裁片合为一个裁片。
接缝是通过定义两个服装裁片的边缘顶点来实现的。在实现过程中,先手工选择一个裁片的边缘线,裁片生成算法会在另一个裁片上找到最近的顶点,并在两个裁片的边缘之间添加接缝。接缝的处理如***2所示,其中(a)是2D视***,(b)是在人体模型上的3D视***。
3.2 碰撞处理
为了获得逼真的模拟结果,我们需要执行衣服和人体的皮层之间的碰撞的处理。碰撞的处理分为两个阶段:碰撞检测和碰撞响应。碰撞检测算法测试服装模型的轴对齐包围盒(Axis Aligned Bounding Box,AABB)和人体模型的包围盒之间的所有交叉点[6]。对AABB模型进行遍历,直到叶节点被遍历完。一旦发现两个包围盒相交,就应用几何碰撞检测方法来测试三角形之间的碰撞,用同样的方法检测服装的自碰撞。两多边形之间的碰撞检测是通过检查点的三角形相交和接近来完成的,类似于服装与人体的碰撞检测。为了避免边缘的碰撞检测,我们扩大服装裁片模型的包围盒。
碰撞检测后,使用速度和位置校正。速度矫正类似于文献[7]中的速度矫正方法,将碰撞检测后的速度修改为:
其中和是摩擦系数和反射系数,是人体模型的速度,和是布粒子相对于人体的相对速度的切线和法线分量。
如果某个点已通过裁片多边形的底部或点到人体表面的距离低于某个阈值,就要使用位置矫正。对于第一种情况,就将点的位置通过公式(3)带到裁片表面上。
其中,P是最终位置,是粒子在三角形区域上的投影,是碰撞平面的法向量。对于第二种情况,点的位置按照公式(4)进行修正。
4 服装可视化
服装的逼真渲染是非常重要的,因为对服装布料或织物的重要信息是通过对它们的悬垂行为仿真来体现的,而服装的最终效果可以通过视觉外观得到[8]。除了一般的渲染技术,如高洛德着色(Gouraud shading),还有一些特别针对纺织品的着色和渲染技术。从纱线到服装面料的织布方法有多种,比如针织、梭织和编结等,其中最重要的是针织和梭织。因此,在系统中对这两种方法进行了仿真。
4.1 针织服装
针织服装是指用针织物或毛纱线加工制成的服装[9]。广义上分两类,一类是用毛纱或毛型化纤纱线编结成的服装;一类是用棉、丝、麻、棉型化纤或混纺交织的针织物缝制成的服装。狭义上针织服装仅指后一类服装。这类服装的材料有坯布和成型衣片两种,成型衣片又有全成型和部分成型之别。相对与其他技术而言,针织服装的结构比较复杂。
在本文给出的集成系统框架中,考虑到相邻环的相互作用,利用了粒子系统和布料网格的质点-弹簧模型。为此,只能使用规则的四边形网格布,每个四边形网格布包含一种类型的环。每一个四边形环的结构是由接合点(Bonding Points, BPs)来定义的,接合点的位置可以由封闭的四边形顶点参数确定。由于纱线的厚度,考虑到我们需要规则的四边形,这些接合点需要轻微的移动。这样,每一个接合点BPi被添加一个值,即:BPi+N,其中N是曲面的法线。这样,当从前或后视***看针织物,就会有不一样的效果。为了渲染纱线的3D结构,需要在连续的接合点之间绘制纹理映射。***3(a)显示了一个针织服装的例子。
4.2 梭织面料
梭织面料是织机以投梭的形式,将纱线通过经、纬向的交错而组成,其组织一般有平纹、斜纹和缎纹三大类以及它们的变化组织[10]。从组成成份来分类包括棉织物、丝织物、毛织物、麻织物、化纤织物及它们的混纺和交织织物等等,梭织面料在服装中的使用无论在品种上还是在生产数量上都处于领先地位。梭织服装因其款式、工艺、风格等因素的差异在加工流程及工艺手段上有很大的区别。
对于梭织面料的可视化处理,系统按照如下步骤进行工作:(1)从裁片描述文件中,读取出裁片信息;(2) 通过经、纬向的交错绘制3D结构***,并计算其位置;(3)进行纹理映射来捕获纤维的详细外观。***3(b)显示了梭织面料从前视***和后视***看上去的区别。
5 性能分析
该系统运行的PC环境是:第三代智能英特尔酷睿i5处理器,4GB内存,***型显示卡是AMD Radeon HD8570M带2G显存。软件平台是微软Visual C++6.0和OperGL库。每一轮迭代的时间间隔是0.05秒,人体模型具有17953个顶点,整个人体模型包含53个部分,诸如:臀部、腹部、头部、右腿、左腿等等。帧速率为每秒一个模特动画序列,还有用纹理映射的1700个顶点编织而成的服装模型。***4给出了一个穿着衣服行走的动画截***,***5显示了一个T恤的缝合时间,该T恤具有2774个顶点和140个接缝,***6给出了缝合过程的一个示例。
6 结语
本文给出了在3D***像环境中进行服装设计与模拟的详细过程和实现方法。能够在系统中自动的生成服装裁片,并对裁片进行虚拟缝合。另外,还给出几种服装面料在系统中的可视化效果及实现过程。
参考文献
[1]Wu S,Kang Y,Ko Y A,et al.A Study on 3D Virtual Clothing by Utilizing Digital Fashion Show[J].Journal of Korea Multimedia Society,2013,16(4): 529-537.
[2]陈青青.采用交互式缝合设置的三维服装模拟技术[J].计算机系统应用,2013(4):88-91.
[3]何钰菡.电脑辅助设计手段在服装设计中的应用与发展[D].西南大学,2013.
[4]J. Bresenham,“Algorithm for computer control of a digital plotter,” IBM Systems J.,vol. 4,no.1,pp.25-30,1965.
[5]Hu J,Huang W Q,Yu K Q,et al.Cloth Simulation with a Modified Implicit Method Based on a Simplified Mass-Spring Model[J].Applied Mechanics and Materials,2013,373:1920-1926.
[6]Hong M,Jeon J H,Oh D I,et al. Implementation of 3D Deformable Objects on Smart Devices Using FFD-AABB Algorithm[M]//Ubiquitous Information Technologies and Applications.Springer Netherlands, 2013:833-840.
[7]de Aguiar E,Ukita N.Representing mesh-based character animations[J].Computers & Graphics,2014,38:10-17.
[8]孙健.浅析虚拟现实技术在服装设计中的应用[J].纺织导报,2013(7):105-106.
[9]陈国强.国内外针织服装设计差异化研究[J].针织工业,2013(11):60-61.
[10]黄微,徐蓉蓉,刘雁.针织与梭织面料拼接的缝口强度研究[J].针织工业,2013(4):64-67.
转载请注明出处学文网 » 三维服装设计与虚拟试衣