一种基于褶皱基线的三维褶皱生成方法

xiaoxiao2020-10-23  19

一种基于褶皱基线的三维褶皱生成方法
【技术领域】
[0001] 本发明涉及一种基于褶皱基线的改进三维褶皱生成方法,属于柔性织物仿真技术 领域。
【背景技术】
[0002] 在衣物仿真模拟过程中,模拟效果的视觉真实性一直是衡量衣物模拟仿真价值的 一个标准。在现实生活当中,柔性的衣物会因为各种力的相互作用而产生褶皱,而这些褶皱 正是衣物布料所具有的不可忽视的主要细节。因此,褶皱的添加能增强衣物模拟的视觉真 实性,对褶皱的模拟仿真成为实现真实性柔性衣物模拟中不可或缺的一部分。
[0003] 衣物褶皱的模拟可以分为基于位图贴图的方法、基于几何的方法、基于物理的方 法和基于数据驱动的方法等。其中,基于几何的方法是比较常用的方法之一。2006年, Decaudin等人提出一个纯几何的方法模拟衣物裙皱。当衣物裹在圆筒形的身体部分时,会 产生弯曲,Decaudin等人利用这种衣物先验知识产生预定义的褶皱。该方法仅适用于当圆 筒形的衣物表面遭遇一些预定义的小变形的情况,不适用于任意的衣物变形。Larboulette 等人和WangYu等人采用边长保持不变的原则,在用户定义的褶皱线上添加褶皱。Li等人 由图片提取人脸皱纹曲线,并把曲线从2D投射到3D人脸模型,通过对皱纹剖面形状的曲 线函数调整得到立体的皱纹形状,并通过曲面细分进一步细化皱纹模型。Cutler等人在 衣物表面相应位置标定褶皱基线,并根据这些褶皱基线按照定义的褶皱形状及可调节的参 数-褶皱形状半径最后生成立体褶皱。Rohmer等人采用与其相同的概念,在褶皱基线的基 础上进一步模拟褶皱。不同的是,Rohmer等人的方法中,褶皱基线的位置是程序根据分析 粗仿真结果而得到,以一种自动后处理方法取代人为干涉。
[0004]目前的大部分基于几何的衣物褶皱模拟方法分为两个步骤:首先在衣物网格上生 成褶皱基线,以描述褶皱的大致走向;然后根据已定义的褶皱基线,生成三维的衣物褶皱。 以往的基于几何的衣物褶皱模拟方法存在以下问题:
[0005] (1)在褶皱基线的生成方面,没有成熟的褶皱基线自动生成方案,大部分的褶皱生 成方法依靠具有专业技能的艺术人员在衣物网格上手工添加褶皱基线。
[0006] (2)在三维衣物褶皱生成方面,由于衣物褶皱的千变万化,没有一种通用的方法可 以有效地描述褶皱的形状。
[0007] (3)目前模拟三维褶皱形状的方法模拟的褶皱形状与真实的褶皱形态有一定的差 距,从而引起仿真效果失真。
[0008] 针对以上问题,本发明对三维褶皱生成方法作了进一步研宄,提出一种基于褶皱 基线的三维褶皱生成方法。该方法的核心内容可以总结为:对三维衣物网格进行网格变形 分析;根据网格的变形分析提取褶皱基线;以褶皱曲线为骨架生成卷积曲面,将褶皱区域 上的点映射到卷积曲面以模拟褶皱形状;根据目标形状函数,将三维褶皱网格上的点调整 到相应位置,调整三维褶皱截面形状。从而实现更具视觉真实性的褶皱模拟。

【发明内容】

[0009] 本发明要解决的技术问题是:克服现有技术的不足,提供一种基于褶皱基线的三 维褶皱生成方法,提高衣物褶皱模拟的真实性。
[0010] 本发明采用的技术方案:将连续介质力学中定义的变形张量运用在三维衣物网格 上,对三维衣物网格进行网格变形分析;把三维衣物网格剖分成前后两个分块,并分别对两 个分块进行平面展开,并在展开的平面上,根据网格顶点的拉伸量信息进行褶皱基线的跟 踪寻找;以褶皱曲线为骨架生成卷积曲面,然后将褶皱区域上的顶点映射到卷积曲面以生 成最终的三维衣物褶皱;最后根据目标形状函数,对生成的三维褶皱进行截面形状的调整, 从而使衣物褶皱更具视觉真实性。
[0011] 一种基于褶皱基线的三维褶皱生成方法,步骤如下:
[0012] (1)对三维衣物网格进行网格变形分析;
[0013] (2)根据网格的变形分析提取褶皱基线;
[0014] (3)以褶皱曲线为骨架生成卷积曲面;
[0015] (4)褶皱区域上顶点到卷积曲面的映射;
[0016] (5)根据目标形状函数,调整三维褶皱截面形状。
[0017] 本发明与现有技术相比的有益效果是:
[0018] 提高三维衣物褶皱模拟的真实性,通过对衣物三维褶皱截面形状的调整,使衣物 褶皱的截面形状与真实褶皱的形状更加接近,并且该褶皱截面形状的调整方法具有通用 性,可以采用不同的目标形状函数,模拟不同的褶皱截面形状。
【附图说明】
[0019] 图1一种基于衣物褶皱基线的改进三维褶皱生成方法步骤示意图。
[0020] 图2截面形状调整示意图。
[0021] 图3褶皱形状对比图示意图。其中,(a)和(b)为真实世界中布料的褶皱形状;(c) 和(d)为以直线为骨架模拟生成的褶皱形状;(e)和(f)为采用半圆模拟褶皱截面形状后, 调整半圆幅值得到的褶皱形状;(g)和(h)为采用g(x) =Acos (x)模拟褶皱截面形状产 生的褶皱形状;(i)和(j)为采用g(x)=Acos2(X)模拟褶皱截面形状产生的褶皱形状。
[0022] 图4不同截面形状函数模拟的衣物褶皱效果图(一)。其中,(a)深色部分的网 格为三维上衣背面网格的两个褶皱区域块,(b)为采用半圆模拟褶皱截面形状基础上,调整 半圆幅值(即调整公式g(x) =Acos2 (x)中A的值),最终产生的褶皱形状效果,(e)为其 对应的褶皱横截面形状;(c)为采用
模拟褶皱截面形状产生的褶皱效果, (f)为其对应的褶皱横截面形状;(d)为采用
模拟褶皱截面形状产生的 褶皱效果,(g)为其对应的褶皱横截面形状。
[0023] 图5不同截面形状函数模拟的衣物褶皱效果图(二)。其中,(a)深色部分的网格 为三维上衣正面网格的两个褶皱区域块,(b)为采用半圆模拟褶皱截面形状基础上,调整半 圆幅值(即调整公式g(x) =Acos2 (x)中A的值),最终产生的褶皱形状效果,(e)为其对 应的褶皱横截面形状;(C)为采用
模拟褶皱截面形状产生的褶皱效果, (f)为其对应的褶皱横截面形状;(d)为采用
模拟褶皱截面形状产生的 褶皱效果,(g)为其对应的褶皱横截面形状。
[0024] 图6褶皱增强过程示意图。其中,(a)为系统输入的上衣侧面的变形网格,(b)中 深灰色曲线标识在上衣侧面生成的褶皱曲线,(c)是在变形网格上添加褶皱后的效果图。
【具体实施方式】
[0025] 下面结合附图及【具体实施方式】对本发明进一步详细说明。
[0026] (1)对三维衣物网格进行网格变形分析
[0027] 将连续介质力学中定义的变形张量运用在三维衣物网格上,对三维衣物网格进行 三角形基元变形分析;采用Pennec等人提出的定义在张量空间、基于仿射不变性的黎曼度 量的插值方案,由三角形变形量插值出网格顶点的变形量。
[0028] (2)根据网格的变形分析提取褶皱基线
[0029] 为了降低褶皱基线查找的计算复杂性,需要把三维衣物网格信息转换到二维平面 上,因此采用保角度的平面展开方法实现对三维初始网格的平面展开。然后在展开平面上 根据网格顶点变形量提取褶皱基线。最后把二维平面上的褶皱基线映射到三维衣物网格 上,得到褶皱曲线。
[0030] (3)以褶皱曲线为骨架生成卷积曲面
[0031] ①卷积骨架。
[0032] 本发明中的光滑褶皱曲线其实也是折线,因此本发明使用的骨架函数是用由一系 列连续线段组成的折线定义的。令Pl,P2, ...,Pm依次为折线上按顺序排列的端点,则折线 上的每一个线段Si (t)可以表示为:
[0033] Sj (t) = Pj+taj, i = 1, 2, . . . , m-1, 0 t lj (3. 1)
[0034] 其中,li= |Pi+1-Pi|,
。所以褶皱曲线可以表示为:
[0036]对于空间中的点p,当p为褶皱曲线上的点时值为1,反之值为0,因此本发明将要 生成的卷积曲面的几何函数为:
[0038] ②点的拉伸量值
[0039] 对于褶皱曲线上的每一条折线段,本文将其拆分成若干段。假设褶皱曲线上的第 i条线段上的一点为Si (t),其拉伸量值可以通过所在线段两个端点的拉伸量的线性插值得 到。为了方便表述,假设原来褶皱曲线上的第i个点的拉伸量值为第i条褶皱折线段上 的点的拉伸量值为Vi(t),则有:
[0040] Vj(t) =Vi+tbj, 0 ^t^lj(3. 4)
[0041] 其中 所以折线骨架上的压缩参数可以表示为: 3
[0043] ③卷积场函数
[0044] 本发明采用的卷积曲面的场函数定义为核函数k(p)与几何函数g(p)的卷积:
[0046] 其中,Vu为骨架的定义域,《 (u)是控制褶皱变形半径的权重函数,本发明采用 Rohmer[2]等人在计算卷积曲面时的权值函数w(u):
[0047] ? (u) = 4s(1+s2R(u)2)3/2 (3. 7)
[0049] 本发明中,v(u)为点u的拉伸量值,|为人为设定的值,|设为0.0005。
[0050] 本发明的核函数采用柯西核函数:
[0051] k(r) =l/(l+s2r2)2 (3. 9)
[0052] 公式(3. 9)中的s是模板参数,本发明的褶皱生成过程中,s的值设为100。
[0053]为了计算空间一点p的场函数f(p),需要求解公式(3.6)中的积分。当《 (u)为 常数时,f(P)等于《 〇乘以对核函数的积分:
[0054] f(p) = ?〇 /uk(p-u)du(3. 10)
[0055] 考虑到对于本发明的应用场景,《 (p)局部邻域内的变化很小,因此可以认为在足 够小的邻域内《(P)的值是常数,于是求解f(P)的积分可以通过求和来近似得到,从而避 免了推导积分表达式的繁琐过 程。假设褶皱折线有M条折线段,本发明将折线骨架中每个 线段分为N个小线段,认为每个小线段上的权值函数为常数,等于权值函数在小线段中点 处的值,则有:
[0057] 其中,《ki是第k条褶皱折线段上,第i条折线分段对应的权值,u 属于第k条 褶皱折线段上,第i条折线分段的点。
[0058] 本发明中,处于对计算速度和计算误差折中考虑,N的取值设为10。
[0059] ④场函数运算表达式
[0060] 在权重函数可视为与积分变量无关的常数的情况下,只要求解下式中的积分,就 可以得到公式(3. 10)中积分的计算表达式:
[0062] 一个长度为1的线段可以表示为:
[0063] p(t) =b+ta,0 <t< 1 (3. 13)
[0064] 其中,b是基准向量,a是归一化的方向向量。空间中一点r到线段上一点的距离 r2(t)可通过下式计算:
[0065] r(t) =d2+t2-2tda(3. 14)
[0066] 其中,d=r-b,是基准向量b到点r的向量。于是柯西核对线段骨架的卷积场函 数Flim (r)的表达式为:
[0068] 其中,x=da,p和q是距离项:
[0069] p2= 1+s2(d2-x2),q2= 1+s2 (d2+l2-21x) (3. 16)
[0070] (4)将褶皱区域上的顶点映射到卷积曲面
[0071] 确定了隐式褶皱曲面之后,需要把原网格面上的面片映射到隐式褶皱曲面上。对 原三角网格上的一个顶点Pl,如果被包围在隐式褶皱曲面的范围之内,即对其计算卷积曲 面的场函数f(Pl)>l,则需要对其进行映射;否则若f(Pl)〈 = 1,则说明PlA不受褶皱曲面 的影响,无需映射。如果Pi需要被映射到裙皱曲面上,首先需要计算其映射方向,然后计算 Pl沿该映射方向投影到卷积曲面上的点的坐标。Pl点的映射方向向量¥_可以通过计算该 点的法向量得到,本发明将三角网格上一顶点P对应的法向量V_al(P)定义为对P点邻接 三角面的法向量取平均,并且归一化的结果:
[0073] 其中upi是顶点p的第i个邻接三角面对应的法向量,| |v| |表示对向量v取模。 得到法向量v_al (Pl)后,从Pl点出发,沿v_al (Pl)方向的射线与隐式褶皱曲面的交 点即为所要求的?1在隐式褶皱曲面上的映射位置,于是求映射点的问题转化为光线追踪的 问题。从出发,沿v_al(p1)方向的射线可以表示为:
[0075] 于是求Pl映射点的问题,就等效于求解方程
。对于本发明给出的隐 式褶皱曲面,方程的根很难用解析的表达式来表示,因此,本发明使用搜索近似解的方式来 得到Pl在褶皱曲面上的映射点。
[0076] 考虑到对于本发明的应用场景,可以认为在Pl的映射方向上,场函数
是单调递减的,因此可以采用二分法的策略来搜索与场函数等值面的交点。首先设 定初始的搜索区间[a,b],其中a,b都是射线
,并且 满足f(a)>l,f(b)〈l,即要映射点在该区间内。本发明中的初始区间端点《 = =/_v
,其中1_是该点所在网格允许的最大偏移距离,如果
,则直 接将Pi映射到点。在每一次的迭代搜索过程中,首先计算区间中点的场函数
,则更新搜索区间为
>否则更新搜索区间为
, 反复迭代,直到误差
作为PlK对应的映射点,其中6_是 应满足的场函数误差,本发明中eMP= 0. 01。
[0077] (5)调整三维褶皱截面形状
[0078] 按照以上的方法模拟出来的褶皱的横截面为如图2所示的圆弧状,而通过对真实 世界中褶皱的观察,发现褶皱的横截面形状更接近如下函数的形状:
[0079] g(x) =Acos2 (x) (5. 1)
[0080] 因此,本发明将基于隐式曲面的映射结果,进一步对褶皱区域内的顶点的位置作 调整。如图2所示,虚线的圆弧表示原来的映射曲面的横截面,P为三维褶皱网格上的一个 顶点,并且P处于圆弧横截面上。实线为目标映射曲面的横截面,图中所示的横截面形状函 数为g(x)=Acos2(X)。如图建立横截面的局部坐标系,局部坐标系的y轴与骨架线段所 在平面垂直。
[0081]设骨架线段所在平面法向量为y,则有
,并且P点坐标为Xp= L?sin9,yP=L?cos9,则有yP,=g(xP)。于是P'调整后的坐标为:
[0083] 根据上述方法,可以采用任何形状的函数调整三维衣物褶皱的截面形状,从而进 一步模拟多样化的褶皱形态。
[0084] 图3中,图(a)、图(b)为真实世界的布料的褶皱形状,实验对象为一方形围巾, 布料的材质为羊绒。该褶皱形状通过把围巾平摊开后同时对围巾两边向中间施加力而产 生;图(c)、图(d)为以一条直线为骨架,并采取圆弧的一段模拟褶皱截面形状,最终产生的 褶皱形状效果图;图(e)、图(f)为采用半圆模拟褶皱截面形状基础上,调整半圆幅值(即 调整公式(3.25)中A的值),最终产生的褶皱形状效果;图(g)、图(h)为采用g(x)=A c〇s(x)模拟褶皱截面形状产生的褶皱效果。图(i)、图(j)为采用g(x) =Ac〇S2(x)模拟 褶皱截面形状产生的褶皱效果。
[0085] 通过图3中采用各种函数模拟的褶皱效果与真实的褶皱形状对比,可以发现,其 中,图(i)、图(j)的形状与图(a)、图(b)最接近。从而证明了采用g(x)=Ac〇S2(x)模 拟褶皱截面形状的有效性。
[0086] 如图4和图5所示为对上衣网格的两个不同褶皱区域分别采用不同截面形状函 数模拟的衣物褶皱效果。其中,图(a)深色部分的网格为三维上衣网格的两个褶皱区域 块,图(b)_图(g)为采用不同的褶皱截面形状函数调整三维褶皱后的褶皱增强效果图。 其中,图(b)为采用半圆模拟褶皱截面形状基础上,调整半圆幅值(即调整公式(3. 25) 中A的值),最终产生的褶皱形状效果,图(e)为其对应的褶皱横截面形状;图(c)为采用
模拟褶皱截面形状产生的褶皱效果,图(f)为其对应的褶皱横截面形 状;图(d)为采用
模拟褶皱截面形状产生的褶皱效果,图(g)为其对应 的褶皱横截面形状。图4和图5实验中,所有的截面形状函数的A值都取为0. 4。
[0087] 图4和图5可见,采用圆弧模拟的褶皱在与衣物其他部分的融合处变化比较剧烈, "隆起"效果太明显,从而使褶皱模拟的细节失真;而采用
等函数调整褶 皱横截面形状后的褶皱更加缓和,更加符合真实褶皱的形态。
[0088] 如图6所示为上衣三维网格侧面的一个褶皱区域的褶皱增强效果图。其中,图(a) 为系统输入的上衣侧面的变形网格,图(b)中深灰色曲线标识在上衣侧面生成的褶皱曲 线,图(c)是在变形网格上添加褶皱后的效果图。
【主权项】
1. 一种基于褶皱基线的三维褶皱生成方法,其特征在于:对初始衣物网格进行变形分 析,然后依据网格变形分析提取褶皱基线;以褶皱曲线为骨架生成卷积曲面,将褶皱区域上 的点映射到卷积曲面以模拟褶皱形状;最后根据目标形状函数,将三维褶皱网格上的点调 整到相应位置,完成对三维褶皱截面形状的调整,从而实现更具视觉真实性的褶皱模拟。2. 根据权利要求1所述的一种基于褶皱基线的三维褶皱生成方法,其特征在于:采用 卷积曲面模拟三维褶皱,采用分段函数描述褶皱折线段,并通过搜索近似解的方式来得到 三维衣物网格在褶皱曲面上的映射点,具体步骤如下: (1) 采用分段函数描述褶皱折线段,并以该分段函数为卷积骨架; (2) 采用柯西核函数,分段近似求解卷积场函数; (3) 采用搜索近似解的方式来得到三维衣物网格在褶皱曲面上的映射点,对初始衣物 网格中任一三角网格上的一个顶点P1,如果被包围在隐式褶皱曲面的范围之内,即对其计 算卷积曲面的场函数f(Pl)>l,则需要对其进行映射;否则若f(Pl)〈 = 1,则说明P1点不受 褶皱曲面的影响,无需映射,如果P1需要被映射到褶皱曲面上,首先需要计算其映射方向, 然后计算P1沿该映射方向投影到卷积曲面上的点的坐标,P1点的映射方向向量Vmap能通过 计算该点的法向量得到,在P1的映射方向上,场函数/(gMj是单调递减的,因此采用二 分法的策略来搜索与场函数等值面的交点。3. 根据权利要求1所述的一种基于褶皱基线的三维褶皱生成方法,其特征在于:三维 褶皱截面形状的调整,以g(x) =Acos2(X)为目标形状函数,把三维褶皱上的点调整到目标 函数所限定的位置,具体步骤如下: (1) 建立横截面的局部坐标系,局部坐标系的y轴与骨架线段所在平面垂直; (2) 设骨架线段所在平面法向量为f,P为三维褶皱网格上的一个顶点,P'为点P 在调整褶皱形状后网格上的对应顶点,则有,并且P点坐标为Xp= L · sin Θ,yp= L · COS Θ,则有P'点坐标为X p,= X p,yp,= g(x p),于是P'调整后的坐标为 广尸。
【专利摘要】本发明涉及一种基于褶皱基线的三维褶皱生成方法,以褶皱基线为骨架,采用卷积曲面模拟三维褶皱,并对衣物三维褶皱截面形状的调整,使衣物褶皱的截面形状与真实褶皱的形状更加接近,提高三维衣物褶皱模拟的真实性。并且该褶皱截面形状的调整方法具有通用性,可以采用不同的目标形状函数,模拟不同的褶皱截面形状。其步骤是(1)对三维衣物网格进行网格变形分析;(2)根据网格的变形分析提取褶皱基线;(3)以褶皱曲线为骨架,生成卷积曲面;(4)将褶皱区域上的顶点映射到卷积曲面;(5)根据目标形状函数,将三维褶皱网格上的点调整到相应位置,调整三维褶皱截面形状。
【IPC分类】G06T17/30
【公开号】CN104899930
【申请号】CN201510275909
【发明人】何兵, 井密, 吕越
【申请人】北京航空航天大学
【公开日】2015年9月9日
【申请日】2015年5月27日

最新回复(0)