APP下载

基于OpenGL的虚拟服装二维样版设计与修改

2018-08-21梁惠娥王宏付

关键词:衣片网格化轮廓

柯 莹, 梁惠娥, 王宏付

(江南大学 a.纺织服装学院; b.江苏省非物质文化遗产研究基地, 江苏 无锡 214122)

随着服装时尚的产业化发展,服装辅助虚拟设计工具已经得到了广泛应用,并深入到服装设计和生产领域。许多服装辅助虚拟设计工具已经实现了产业化,如虚拟设计软件Marvelous Designer、 Mechanix、 OptiTex、 Lectra系统等。利用虚拟设计软件进行服装设计,是一个多次迭代的过程。首先需要设计组成三维服装的二维样版,然后将二维样版虚拟缝合生成三维服装,最后将三维服装穿着在虚拟人体模型上进行展示,以便观察服装设计效果并进行样版修改。

服装二维样版设计是虚拟服装设计中的重要环节。在设计过程中,设计师需要不断修改服装样版,而二维样版需要进行网格化之后才能映射到三维空间。二维样版的设计包括两方面内容:一是二维样版的轮廓绘制和修改,二是二维样版的网格化。服装结构的外轮廓线主要由各种不同的曲线和直线段组成,在虚拟样版设计中多采用二阶或三阶Beizer曲线以及B样条曲线或插值样条曲线来模拟逼近曲线部分[1]。王宏付等[2]基于NURBS(非均匀有理B样条曲线)方法提出了按型值点修改曲线的方法,通过鼠标的移动实现曲线调整,不需要调整重新计算整个曲线,修改速度快,易于控制。在网格剖分方面,为了满足质子-弹簧模型所要求的规则四边域单元,聂卉等[3]提出了一种基于正则栅格法思想的四边域网格剖分算法,但是弹簧质点模型在处理二维样版到三维服装穿着的过程中会产生不稳定效果。朱光舟等[4]采用正则栅格化对服装CAD软件设计的纸样裁片进行四边形剖分,连接四边形对角线完成对二维裁片的网格化,该方法同样适用于构建裁片的弹簧质点模型,但是如果对裁片进行修改操作,会影响到缝合生成的三维服装的稳定性。方贵盛采用笔式交互的方式来构造二维服装样版的轮廓线,快速地将设计草稿转化为二维服装样版;并对草绘衣片轮廓线进行自动分段识别与处理,生成样版外轮廓线;最后在正则栅格法的基础上,采用坐标扰动技术,对二维衣片进行Delaunay三角网格剖分。该方法既可以解决正则栅格法在后续纹理贴图过程中出现的空洞现象,又基本能保持服装布料的经纬构造特点。Umetani等[5]提出了一套敏感性双向服装设计工具,采用Delaunay三角化方法构建二维样版,既可以对服装样版进行编辑,又可以将在三维空间对样版的修改反馈到二维空间,将虚拟产生的衣片缝合起来穿着在人体模型上,增强服装衣片的真实感。

为保证二维样版网格生成的质量,本文基于OpenGL技术,进行虚拟服装二维样版的设计与修改研究。首先绘制二维样版轮廓,并对其进行修改;其次使用Delaunay三角化方法对样版进行网格划分,并通过定义对应三维空间的拉伸矢量来控制三角形密度;根据特定的省道形状,提出在二维样版中插入省道的解决方法;最后通过实例对文中提出的方法进行验证。

1 样版轮廓绘制与修改

1.1 样版轮廓绘制

二维样版主要由各种不同的曲线和直线段组成,目前多采用二阶或三阶NURBS曲线以及B样条曲线或插值样条曲线来模拟逼近曲线部分。构造初始化二维样版,通过OpenGL函数创建直线段,采用三次NURBS曲线来模拟曲线部分。

本文绘制样版轮廓首先定义绘制轮廓顶点的位置,然后定义顶点间连线的类型,因连线类型为曲线而采用NURBS方法定义。NURBS的数学定义如下:

(1)

式中:P(u)为曲线上的位置向量。

基函数由递推公式定义如下:

(2)

(3)

(4)

1.2 样版轮廓修改

对于绘制的样版轮廓,从两个方面进行设计修改。一是调整边界线交点的位置,根据拖动边界线交点所产生的新位置来调整轮廓的形状。如果边界交点对应的两条边界都为线段,根据线段对应的顶点调整线段的长度;如果边界交点对应的其中一条为曲线,根据NURBS参数调整来修改曲线形状,根据拖动后产生的新坐标,重新生成线段和曲线。二是修改曲线形状,采用调整NURBS权因子的方法对曲线形状进行微调。根据鼠标点的移动来改变曲线,在不改变原曲线首尾控制点的情况下,用户能直接改变曲线上任意参数点的几何特性。

当保持控制顶点与其他权因子不变,减少和加大某权因子时,权因子对NURBS曲线的影响起到把曲线推离和拉向相应顶点的作用[6]。已给一条k次NURBS曲线上参数为u的一点p,将曲线在该点拉向或推理控制点di距离为s以得到一个新点p*。修改相对应的权因子来完成:

(5)

1.3 样版轮廓绘制与修改实例

以简单上装衣身样版为例,首先设定构成上衣样版的关键顶点,设定顶点间连线的类型,选择袖窿位置连线为曲线线段,其他部位为直线段。上装衣身样版轮廓绘制及曲线修改如图1所示。图1(a)为绘制上衣样版的轮廓,图1(b)为根据鼠标移动修改样版右侧袖窿位置的曲线,该操作选择曲线中间部位顶点向内侧拖动。

(a) 绘制样版轮廓

(b) 修改样版轮廓曲线

2 样版的网格化处理

基于Dirichlet提出的思想,对创建的二维裁片轮廓模型进行不规则网格化,将由边界所定义的任意平面划分成Delaunay三角形[7]。本文不考虑针对弹簧质点模型的正则栅格化操作,仅考虑三角网格的生成质量,结合拉伸后网格密度的变化,对样版进行三角网格化操作。

2.1 Delaunay网格剖分算法

Delaunay三角化[8]通常是通过其对偶结构Voronoi图来定义,平面N个点集的Voronoi图由平面上N个Voronoi多边形组成,其中第i个Voronoi多边形定义为

V(Pi)={x:||x-xi||≤||x-xj||,j≠i,i∈In}

(6)

式中:||·||为欧氏距离。一般生成的Delaunay三角化结果有两个特点:一是得到的是点集的凸包;二是三个点所在的圆不包含其他任意一点,也表述为最小内角和最大化,通常通过边的翻转实现。

为对给定衣片轮廓线所围成的区域进行网格化,实现自动加点的功能,按指定的步长插入等边三角形网格,保证尽可能多产生正三角形集合。给定边界点,然后通过向边界内逐步加入新点的方法,形成一定密度的三角形网格。通过长度标尺和三角形外接圆无量纲半径两个参数来分别控制网格疏密程度和正三角形的偏离程度。

图2 内点长度标尺示意图Fig.2 The schematic diagram of length scale of interior point

对于内点Q,定义其长度标尺[8]为

(7)

式中:LA、LB、LC为边界网格的长度标尺。设rk为第k个三角形的外接圆半径,定义每个三角形的无量纲外接圆半径为Rk=rk/Lk,因此可将Rk视为网格疏密程度以及三角形形状的判据。选择Rk最大的三角形中心点为新增点,向内部加点直至Rk, max小于1为止。

内点长度标尺的算法步骤描述如下:

第1步 给定边界点集,计算各点长度标尺。

第2步 初始化三角形网格,给定一个外接圆标准,计算Rk。

第3步 将各三角形按照Rk的大小进行排序,如果因引入新的节点而导致不满足外接圆准则,那么原来的三角形和与之相关的外接圆圆心将被删除,并确定被删除点。

第4步 确定所有与被删除的三角形相邻但本身未被删除的三角形的Voronoi顶点,以便于形成相邻点之间的联系。

第5步 将新引入的点分别与被删除的三角形的两个顶点确定为新三角形的形成点,原三角形的两个顶点必须与新的顶点相邻并构成三角形的边,计算新增三角形的无量纲外接圆半径。

第6步 如果Rk, max>1,重复第2步至第5步;如果Rk, max<1,结束。

2.2 自适应拉伸控制

原始网格化样版与拉伸样版如图3所示。

(a) 衣身样版网格化

(b) 衣身样版拉伸

Fig.3Patterngriddinganddragging

将衣身二维样版进行自动加点网格化剖分,见图3(a)所示。为了支持对网格化衣片的拉伸操作,以便调整衣片尺寸,本文为每一个网格节点确定一个拉伸矢量,即方向和大小,目的是保证整个样版区域均匀变化。样版网格化剖分在二维空间内进行,将样片中的Delaunay三角形映射到一个由拉伸矢量定义的拉伸空间中,拉伸空间为衣片缝合穿着展示的三维空间。在上述三维空间中构造三角形,然后重新将其映射回二维空间。映射空间可以通过三维空间中的一个控制面获得。构建二维空间控制面时,假设控制面中各点间的距离相等。在物理空间上的任意三角形映射到控制面后,形成正三角形。因此Delaunay三角形可以在控制面内构造,然后映射回物理空间,就得到一定拉伸比的三角形单元[9]。根据上述定义,设置拉伸常量为常数值,衣片拉伸后的效果如图3(b)所示。

2.3 省道设计

服装裁剪过程中,服装面料近似于锥面的折叠缝统称为省道。沿着省道边界缝制将使裁片产生立体效果[10]。本文给出在二维裁片上模拟锥子省(图4(a))和橄榄省(图4(b))的方法,其中,锥子省位于样版边界,橄榄省位于样版内部。

(a) 锥子省 (b) 橄榄省

(c) 省道设计实例

具体实现方法如下:三角形网格化的二维样版数学表达式Sφ=(P,Eα,Eβ,T),其由一系列的三角片顶点P={Pj}、三角形T={Tj}、直线网格边界Eα={Eαk}、曲线网格边界Eβ={Eβl} 表示,其中三角形为三个顶点的集合Tj=△(Pj0,Pj1,Pj2),边界为两个顶点的集合Eαk={Pα0,Pα1}。对初始化二维样版的线段边界插入省道,即:通过鼠标画直线E={E0,E1}来表示省道插入位置。根据省道插入的位置,分两种情况进行考虑:如果E与直线边界Eα相交,绘制省道为三角形,方向为从边界指向样版的内部,开口方向位于边界处,开口大小为ε;如果省道位于样版的内部,绘制省道为正边菱形。插入省道效果图如图4(c)所示。

3 应用实例

本文通过OpenGL编程技术实现了二维样版Demo系统Pattern Design的开发,上文提出的算法均在该系统中得以实现。通过本文系统构建的服装袖片和裙片结构设计实例如表1所示。从表1中可见本文算法的有效性。

表1 服装样版设计实例

4 结 语

为实现服装虚拟设计软件中二维样版的设计和编辑,本文应用NURBS构建二维样版基础轮廓,基于Dirichlet提出的思想,对二维样版进行自动化三角剖分,实现了利用控制点对二维样版进行拉伸操作,并对锥子省和橄榄省的插入过程进行了模拟。模拟系统借助OpenGL库函数实现了对简单服装衣片二维样版的模拟和编辑操作。

猜你喜欢

衣片网格化轮廓
以党建网格化探索“户长制”治理新路子
OPENCV轮廓识别研究与实践
基于动作分析的女西服绱袖与绱领工序的工时研究
基于实时轮廓误差估算的数控系统轮廓控制
针织服装衣片造型设计方法初探
多功能普外科及妇科手术衣的设计及护理应用
城市大气污染防治网格化管理信息系统设计
高速公路主动发光轮廓标应用方案设计探讨
基于3D试衣软件虚拟缝合的优化研究
化解难题,力促环境监管网格化见实效