CN103035030A - 头发模型建模方法 - Google Patents
头发模型建模方法 Download PDFInfo
- Publication number
- CN103035030A CN103035030A CN2012105275800A CN201210527580A CN103035030A CN 103035030 A CN103035030 A CN 103035030A CN 2012105275800 A CN2012105275800 A CN 2012105275800A CN 201210527580 A CN201210527580 A CN 201210527580A CN 103035030 A CN103035030 A CN 103035030A
- Authority
- CN
- China
- Prior art keywords
- hair
- hair style
- constrained domain
- constrained
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开了头发模型建模方法。首先采用发型约束域生成发型模型较为单一的发型,提供采用层次化的约束域队列控制复杂发丝形变,从而支持生成多样化发型;在此基础上建立任意虚拟角色模型间发型约束域的映射关系,实现虚拟角色发型的快速可复用建模。该方法扩展了发型约束域的普遍适用性,并把发型约束域方法与基于样例的发型建模相结合,使得采用发型约束方法能够生成的发型的多样化程度得到显著提高,同时支持在任意虚拟角色模型上快速复用已构建的发型约束,从而实现虚拟角色头发的快速可复用建模。
Description
技术领域
本发明属于计算机图形学真实感角色建模领域,特别涉及一种基于可复用发型约束的真实感头发发型建模方法,通过建立发型约束在任意虚拟角色模型间的映射关系,从而达到发型约束复用、实现快速头发生成的目的。
背景技术
作为外表释放给外界的第一印象,角色的头发成为影视动画制作中塑造虚拟角色的重要手段之一。然而迄今为止,真实感发型建模仍是一项非常困难的工作,其原因在于,发丝建模的数量级通常达50k-100k,针对发丝的几何表示和控制方法存在随着待建发型复杂程度增加,造型工作量大幅提升的问题。
为了保证生成头发的真实感、以及后期模拟头发运动学和动力学的性能需求,目前研究工作主要集中在显式的发丝几何表示与建模方法。解决该问题的首要难点在于发丝的计算规模较大,难以有效控制发丝形状。现有解决方法中,Watanabe(Watanabe Y,Y Suenaga.Atrigonal prism-based method for hair image generation.IEEE Computer Graphics andApplications,1992,12(1):47-53)利用真实头发成簇相似的特点,提出发丝聚簇方法(即wisp模型),有效解决了发型计算问题规模的限制。
对于发丝形状建模的问题,在建立发丝聚簇的基础上,研究人员进一步提出了多种用于描述发丝形状的基本模型:例如Anjyo(Anjyo K,Usami Y,Kurihara T.A simple methodfor extracting the natural beauty of hair.Proceedings of the ACM SIGGRAPH1992,NewYork:ACM Press,1992:111-120)的悬臂梁模型、Hadap(Hadap S,Magnenat-Thalmann N.Interactive hair styler based on fluid flow.Proceedings of the Eurographics2000Workshop on Computer Animation and Simulation,New York:SpringerVerlag,2000:87-100)的流体模型和Yu(Yu Yi Zhou.Modeling realistic virtual hairstyles.Proceedings of the9th Pacific Conference on Computer Graphics and Applications,2001:295-304)的向量场模型等,这些基本模型能够有效描述发型中的发丝形状。然而如果仅采用上述基本模型,缺少合理的交互支持,用户难以实现直观交互下的发型设计和建模,从而使得计算机辅助的发型设计与建模工作变得极为困难。
为了解决上述问题,Choe(Choe B,Ko H S.A statistical wisp model andpseudophysical approaches for interactive hair-style generation.IEEE TransactionVisualization and Computer Graphics,2005,11(2):160-170)结合了向量场模型方法,提出一种采用造型约束控制发丝形变的方法,允许用户快速构建基于显式发丝的发型。但是,由于该方法缺少对具有多样化外观发型的造型约束支持,当待建发型较复杂时,现有造型约束失效,使该方法缺少普遍适用性。
进一步,研究人员针对发型的“波动”和“卷曲”等自然形变外观的构建提出了一些方法。例如,Choe采用基于样例的马尔可夫链模型,提取手绘平面曲线的一段并将其还原至整根发丝,从而模拟出波发效果。Yu使用特定的偏移函数模拟发丝的波动效果。这两类方法都能够在一定程度上丰富发丝的细节特征。但是,一方面使用上述方法能够实现的发丝细节效果比较单一,例如用户无法针对特定的发丝局部区间生成特定的细节效果;另一方面,除了生成二维意义上的“波发”以外,许多情况下还需要产生在三维空间发生扭曲的效果,例如“卷发”,而现有方法则未涉及这部分内容。
另外,在当前虚拟现实和计算机动画的内容建模过程中,往往需要在大量不同的虚拟角色模型上分别构建多样化发型,如果采用现有方法会导致发型建模工作占据很大一部分工作成本。如果能够利用发型间的相似性,实现现有头发模型在不同虚拟角色模型上的快速复用,将极大地节约相关工作成本,提高生产效率。为了解决上述问题,Wang(Lvdi Wang,Y Yu,KZhou,et al.Example-Based Hair Geometry Synthesis.In:Proceedings of the ACMSIGGRAPH2009,New York,USA:ACM Press,2009:56:1-56:9)等提出了一种基于样例的发型生成方法,首先提取样例发型发丝的特征向量,通过参数化头皮空间建立到目标模型的二维映射,并使用之前提取的特征向量重建出初始发型;为了消除初始发型中的不一致发丝,再通过计算发型的切向量场对新发型进行优化处理。该方法能够有效实现现有头发模型复用,但是参数化头皮空间要求发丝应尽可能分布在上半球面,否则提取的发丝特征会携带比较严重的扭曲。此外由于针对发丝特征进行了降维,从而丢失了某些发型的细节特征。当源模型的发丝规模较大时,该方法的性能也会受到影响。因此,当前针对现有头发模型的复用主要面临两个难题:①需要满足快速、精确提取源模型发型的外观特征,并建立尽可能低失真的映射关系;②能够根据发型特征快速生成符合目标模型的新发型,为了给用户提供人工调整的接口,同时还应满足后续的可编辑性。
发明内容
本发明所要解决的一个技术问题之一是提供一种普适性较高的头发模型建模方法
为此,本发明提供的头发模型建模方法根据待生成整体发型的整体发型特征分别生成Q根样例发丝,然后用该Q根样例发丝分别表示各自所在发簇的形状,根据各样例发丝插值生成各自所在发簇内的剩余发丝,从而在目标虚拟角色模型上生成整体发型,该方法的具体步骤如下:
步骤一,对于输入的目标虚拟角色模型,根据待生成整体发型的整体形状在目标虚拟角色模型上规定头发生长区域即头皮网格;采用网格参数化方法在头皮网格上建立目标虚拟角色模型的头皮网格参数域A;
步骤二,生成Q根样例发丝的二维分布:
(1)在头皮网格参数域A上生成全局发丝二维分布,将该结果映射至目标虚拟角色模型的头皮网格上;或者,在目标虚拟角色模型的头皮网格上生成全局发丝二维分布,将该结果映射至头皮网格参数域A上;
(2)采用K均值聚类方法将头皮网格参数域A上的全局发丝二维分布均匀划分成Q簇,使用Q根样例发丝表示所在发簇的整体发丝形状,同时各样例发丝的发根均位于所在发簇的聚簇中心,进而得到Q根样例发丝的二维分布,再将该Q根样例发丝的二维分布映射至目标虚拟角色模型的头皮网格上;
步骤三,构建发型约束域
根据待生成整体发型中发丝的形状特征构建多个发型约束域;同时根据待生成整体发型的整体发型特征和局部发型特征采用层次化的多队列结构建立多个发型约束域相互之间的关系,得到控制全局发丝形状的发型约束域队列和控制局部发丝形状的发型约束域队列;其中:控制全局发丝形状的发型约束域队列为全局发型约束域队列,该全局发型约束域队列中的每个元素是由至少一个发型约束域组成的发型约束域集合,且该全局发型约束域队列中共包含多个发型约束域中的n个发型约束域;控制局部发丝形状的发型约束域队列为局部发型约束域队列,该局部发型约束域队列中的每个元素是由至少一个发型约束域组成的发型约束域集合,且该局部发型约束域队列中共包含多个发型约束域中除n个发型约束域外的m个发型约束域;
其中,每个发型约束域的构建包括设定激活条件、消隐条件和作用力函数Str;所述激活条件为所构建的发型约束域开始影响生长发丝形状的条件;所述消隐条件为所构建的发型约束域终止影响生长发丝形状的条件;所述作用力函数为所构建的发型约束域影响生长发丝形状时,该发型约束域对生长发丝产生的作用力向量;
步骤四:采用下述方法在Q根样例发丝的二维分布上分别生成Q根样例发丝;Q根样例发丝均生成后得到样例发丝集合;
根据全局发型约束域队列和局部发型约束域队列计算生成当前样例发丝,并且针对全局发型约束域队列和局部发型约束域队列同时进行下述步骤,下述方法中所述的发型约束域队列指全局发型约束域队列或局部发型约束域队列;
(1)取出位于发型约束域队列队首的发型约束域集合F;
(2)分别判断F中的各发型约束域是否满足激活条件,得到F中的K个满足激活条件的发型约束域;
(3)计算K个满足激活条件的发型约束域施加在当前样例发丝生长端点Pi上的作用力之和t,t=∑Strk;
其中:i为当前样例发丝的生长端点序号,当前样例发丝的生长起点P1为当前样例发丝在Q根样例发丝的二维分布中的顶点;Strk为第k个满足激活条件的发型约束域施加在当前样例发丝上的作用力分量,k=1,2,3,…,K,且K为大于等于1的正整数;
(4)计算在t的作用下当前样例发丝生长端点Pi处产生的切线方向Ti+1,Ti+1=Ti+t,其中:Ti为生长端点Pi处的切线方向,T1为P1在头皮网格上的法线方向;
(5)计算当前样例发丝下一个生长端点的空间位置Pi+1,pi+1=pi+sTi+1,其中:s为当前样例发丝的生长步长,且s>0;
(6)分别判断F中的K个满足激活条件的发型约束域是否满足消隐条件,去除F中满足消隐条件的发型约束域;
(7)判断F是否为空,当F为空时,将F从发型约束域队列移除;
(8)判断全局发型约束域队列和局部发型约束域队列是否为空,当全局发型约束域队列和局部发型约束域队列均为空时,完成当前样例发丝的生长,完成生长后的当前样例发丝的生长端点总个数为I;否则,执行步骤(9);
(9)统计执行步骤(1)至(9)的迭代次数,当迭代次数达到常数G(G≥0)时,完成当前样例发丝的生长,完成生长后的当前样例发丝的生长端点总数为I;否则,迭代执行步骤(1)至(9);
步骤五,根据样例发丝集合中的每根样例发丝插值计算生成样例发丝所在发簇中的其他发丝,从而在虚拟角色模型上生成整体发型。
上述步骤三中根据待生成整体发型中发丝的形状特征构建多个发型约束域:
对于待生成整体发型中的发丝生长方向相互平行的局部发型和发丝生长方向相互平行的全局发型分别构建等距约束域,所述等距约束域是根据局部发型或全局发型的生长规模定义一空间作用域,该空间作用域是一个有限体积的长方体Sq;其激活条件为:当该等距约束域未满足过激活条件和消隐条件,且发丝的生长端点首次位于Sq所包含的空间范围内部;其消隐条件为:当该等距约束域已满足激活条件,且发丝的生长端点处于Sq所包含的空间范围外部;其作用力函数Str为一个常向量,该常向量的方向根据当前生长发丝的生长方向确定,该常向量的大小根据当前生长发丝发生形变的剧烈程度确定;
对于待生成整体发型中的发丝生长方向聚簇到一点的局部发型和发丝生长方向聚簇到一点的全局发型分别构建集簇约束域,所述集簇约束域的激活条件为:当该集簇约束域位于全局发型约束域队列或局部发型约束域队列的队首发型约束域集合中;
其消隐条件为下列条件之一:
(1)生长发丝的当前生长端点位于Sc定义的空间范围之内;
(2)生长发丝的当前生长端点位于Sp'定义的空间范围之外;
其中,Sc为一三维空间核,该三维空间核的核心为空间中任意顶点c、半径为h,且0<h<r,r为点s到点c的距离,点s为首次受该集簇约束域作用时的发丝生长端点;Sp′为一三维空间球,该三维空间球的球心为s、半径为r;
步骤四中的(6)步骤中同时采用(式1)对受集簇约束域作用生成的Ti+1进行修正:
Ti+1=q+dTi+1 (式1)
(式1)中q为表示散射方向的单位向量,d为散射系数。
与现有技术相比,上述方法具有如下的特点:
该方法建立在描述发丝形状的向量场模型、以及Choe的造型约束方法的基础上,给出了一种交互式发型建模的发型约束域方法,通过建立多个发型约束域间的层次和顺序关系,允许仅采用少量基本发型约束域即可构建多样化的复杂发型,同时具有建模方法简单、快速的特点,针对发型建模工作具有普遍适用性。
本发明的另一目的在于提供一种基于上述方法的快速复用头发模型建模方法。该方法对模型库中的所有虚拟角色模型均生成整体发型,首先在模型库中任选一虚拟角色模型作为原型模型,并在原型模型上生成整体发型,通过提取已有的原型模型的发型约束域参数,将该发型约束域参数归一化为约束模版,并根据约束模版在其它虚拟角色模型上生成与已有原型模型的整体发型外观相一致的整体发型,具体步骤如下:
步骤(1),在模型库中任选一虚拟角色模型作为原型模型,采用上述方法在原型模型上生成整体发型;
步骤(2),针对模型库中的其他每一个虚拟角色模型,根据待生成整体发型的整体形状在虚拟角色模型上规定头发生长区域即头皮网格;利用网格参数化方法建立虚拟角色模型头皮网格参数域;
步骤(3),在坐标系A下,以原型模型为基准,对模型库中的其他虚拟角色模型进行刚性配准,使其他每个虚拟角色模型具有与原型模型一致的世界坐标朝向;同时在坐标系A下,以原型模型头皮网格参数域为基准,对模型库中的其他虚拟角色模型头皮网格参数域进行配准,使每个虚拟角色模型头皮网格参数域上的点与原型模型头皮网格参数域上的点一一对应;
步骤(4),对模型库中的其他虚拟角色模型分别采用如下方法生成整体发型:
Ⅰ、将步骤(1)中生成的全局发丝二维分布与Q根样例发丝的二维分布分别映射至当前虚拟角色模型的头皮网格上;
Ⅱ、采用随机增量法计算原型模型的头部网格的最小包围球,该最小包围球的球心为O′、半径为R,球心O′在坐标系A中的坐标为(ω,ξ,ψ);
Ⅲ、采用下述方法将步骤(1)中构建的多个发型约束域映射至当前虚拟角色模型的头皮网格上:
(i)采用随机增量法计算当前虚拟角色模型的头部网格的最小包围球,该最小包围球的球心为O″、半径为R',球心为O″在坐标系A中的坐标为(ω',ξ′,ψ');以O′为原点建立局部坐标系,该局部坐标系的各坐标轴的方向与坐标系A中相应坐标轴的方向一致;
(ii)分别采用下述方法计算步骤(1)中构建的多个发型约束域中每个发型约束域在局部坐标系中的空间位置;并根据每个发型约束域在局部坐标系中的空间位置得到相应的约束模板的参数:
(式2)
多个发型约束域中每个发型约束域对应的约束模板的参数组成发型约束模板;
(iii)分别采用下述方法计算发型约束模板中的每个约束模板的参数符合当虚拟角色模型几何特征的新的发型约束域的空间位置:
每个约束模板的参数计算得到的新的发型约束域组成针对当前虚拟角色模型的多个发型约束域,进而将步骤(1)中构建的多个发型约束域映射至当前虚拟角色模型的头皮网格上,同时得到针对当前虚拟角色模型的全局发型约束域队列和局部发型约束域队列;
Ⅳ、采用上述方法中步骤四至步骤五的方法在当前虚拟角色模型上生成整体发型。
本发明的另外一目的在于提供一种基于上述方法的具有自然形变效果的头发建模方法。该方法根据待生成整体发型的整体发型特征分别生成Q根样例发丝,并根据待生成整体发型的自然形变特征分别完成Q根样例发丝的自然形变效果处理,然后用该Q根样例发丝分别表示各自所在发簇的形状,根据各样例发丝插值生成各自所在发簇内的剩余发丝,从而在目标虚拟角色模型上生成整体发型,按下述步骤进行:
步骤(一),执行上述方法的步骤一;
步骤(二),执行上述方法的步骤二至步骤三;
步骤(三),执行上述方法的步骤四;
步骤(四),在样例发丝集合的基础上,分别采用下述方法生成Q根样例发丝的“卷曲”、“波动”的自然形变效果;当Q根样例发丝的卷曲、波动等自然形变效果均生成完成后得到经过自然形变处理的样例发丝集合;
方法在当前样例发丝曲线的局部区间生成自然形变效果,设当前样例发丝曲线共包含N个生长端点,即[1,N]表示当前样例发丝曲线的整个区间,定义样例发丝曲线的局部区间[s0,s1],其中1≤s0<N,1<s1≤N,
1)计算表示当前样例发丝的最小旋转标架(RMF);
2)根据待生成整体发型的自然形变特征构建u个自然形变约束域,u≥0;
每个自然形变约束域是根据待生成整体发型中的局部发型的自然形变特征定义一空间作用域,该空间作用域是一个有限体积的长方体Sq″;其激活条件为:当该自然形变约束域未满足过激活条件和消隐条件,且发丝的端点首次位于Sq″所包含的空间范围内部;其消隐条件为:当该自然形变约束域已满足激活条件,且发丝的端点处于Sq″所包含的空间范围外部;
所构建的u个自然形变约束域构成自然形变约束域队列;
3)i=1;
4)取出位于自然形变约束域队列队首的自然形变约束域,记为Na;
5)判断Na是否满足激活条件;
当Na满足激活条件时:
首先,分别计算当前样例发丝生长端点Pi在RMF主法线方向上的偏移系数Epi,且Epi>0;和,当前样例发丝生长端点Pi在RMF副法线方向上的偏移系数Epi′,且Epi′>0:
(式4)和(式5)中:
i∈[s0,s1];
AN为当前样例发丝曲线的生长端点Pi在RMF主法线方向上的最大偏移值;
AB为当前样例发丝曲线的生长端点Pi在RMF副法线方向上的最大偏移值;
T为偏移周期系数;
fade(i)用于将当前样例发丝曲线的生长端点Pi在RMF副法线方向上的起始偏移位置平滑降至0:
scale(i,σ)为关于i和平滑系数σ的平滑函数:
(式6)中:
σ为平滑系数,且0<σ≤0.5;
接着,利用(式7)分别计算当前样例发丝的生长端点Pi在RMF主法线方向上的偏移值ni和在RMF副法线方向的偏移值bi;
其中:Ni为当前样例发丝生长端点Pi在RMF主法线方向上的单位向量,Bi为当前样例发丝生长端点Pi在RMF副法线方向上的单位向量;
然后,用Pi'替换当前样例发丝的生长端点Pi,Pi′=Pi+ni+bi,完成当前生长端点Pi的位置更新;
当Na不满足激活条件时,执行步骤6);
6)i=i+1;当i≥I时,完成当前样例发丝的自然形变;否则,执行步骤7);
7)判断Na是否满足消隐条件,当Na满足消隐条件时,将Na从自然形变约束域队列中移除;当Na不满足消隐条件时,执行步骤8);
8)判断自然形变约束域队列是否为空,当自然形变约束域队列为空时,完成当前样例发丝的形变;否则,执行步骤9);
9)统计执行步骤4)至9)的迭代次数,当迭代次数达到常数G′(G′≥0)时;完成当前样例发丝的形变;否则,迭代执行步骤4)至9);
步骤(五),根据样例发丝集合中的每根样例发丝插值计算生成样例发丝所在发簇中的其他发丝,从而在目标模型上生成具有自然形变效果的整体发型。
与现有技术相比,本发明提供的上述方法具有如下的特点:
针对现有方法在生成发丝自然形变方面存在的不足,例如缺少发丝“三维形变”效果的问题,提出通过构建发丝的最小旋转标架(RMF),将发丝偏移函数从二维扩展至三维,从而允许生成外观丰富的“波发”和“卷发”效果;另外,通过结合发型约束域方法,给出一种采用自然形变约束域的发丝自然形变建模方法,从而使得发丝的自然形变具有更加灵活、丰富的外观效果。
本发明的又一目的在于提供一种基于上述方法的快速复用头发模型建模方法。该方法对模型库中的所有虚拟角色模型均生成整体发型,首先在模型库中任选一虚拟角色模型作为原型模型,并在原型模型上生成整体发型,通过提取已有的原型模型的发型约束域参数,将该发型约束域参数归一化为约束模版,并根据约束模版在其它虚拟角色模型上生成与已有原型模型的整体发型外观相一致的整体发型,具体步骤如下:
步骤①,从模型库中任选一虚拟角色模型作为原型模型,采用上述步骤(一)至步骤(五)所述方法在原型模型上生成整体发型;
步骤②,针对模型库中的其他每一个虚拟角色模型,根据待生成整体发型的整体形状在虚拟角色模型上规定头发生长区域即头皮网格;利用网格参数化方法建立虚拟角色模型头皮网格参数域;
步骤③,在坐标系B下,以原型模型为基准,对模型库中的其他虚拟角色模型进行刚性配准,使其他每个虚拟角色模型具有与原型模型一致的世界坐标朝向;同时在坐标系B下,以原型模型头皮网格参数域为基准,对模型库中的其他虚拟角色模型头皮网格参数域进行配准,使每个虚拟角色模型头皮网格参数域上的点与原型模型头皮网格参数域上的点一一对应;
步骤④,对模型库中的其他虚拟角色模型分别采用如下方法生成整体发型:
Ⅰ、将步骤①中生成的全局发丝二维分布与Q根样例发丝的二维分布分别映射至当前虚拟角色模型的头皮网格上;
Ⅱ、采用随机增量法计算原型模型的头部网格的最小包围球,该最小包围球的球心为O′0、半径为R0,球心O′0在坐标系B中的坐标为(ω0,ξ0,ψ0);
Ⅲ、采用下述方法将步骤①中构建的多个发型约束域和u个自然形变约束域映射至当前虚拟角色模型的头皮网格上:
(i)计算当前虚拟角色模型的头部网格的最小包围球,该最小包围球的球心为O0″、半径为R0′,球心O0″在坐标系B中的坐标为(ω′0,ξ′0,ψ′0),;以O′0为原点建立局部坐标系,该局部坐标系的各坐标轴的方向与坐标系B中相应坐标轴的方向一致;
(ii)分别采用下述方法计算步骤①中构建的多个发型约束域和u个自然形变约束域中每个约束域在局部坐标系中的空间位置;并根据每个约束域在局部坐标系中的空间位置得到相应的约束模板的参数:
多个发型发型约束域和u个自然形变约束域中每个约束域对应的约束模板的参数组成发型约束模板;
(iii)分别采用下述方法计算发型约束模板中的每个约束模板的参数符合当前虚拟角色模型几何特征的新的约束域的空间位置:
当前约束模板的参数为利用(式9)计算其符合当前虚拟角色模型几何特征的新的约束域的空间位置(x′0,y′0,z′0):
发型约束模板中的每个约束模板的参数计算得到的新的约束域组成针对当前虚拟角色模型的多个发型约束域和u个自然形变约束域,进而将步骤①中构建的多个发型约束域和u个自然形变约束域映射至当前虚拟角色模型的头皮网格上,同时得到针对当前虚拟角色模型的全局发型约束域队列、局部发型约束域队列和自然形变约束域队列;
Ⅳ、采用上述方法中步骤(三)至步骤(五)在当前虚拟角色模型上生成整体发型。
与现有技术相比,本发明提供的上述方法具有如下的特点:
针对现有头发模型复用方法存在的“特征丢失”问题,本发明给出的方法在结合发型约束域方法的基础上,通过构建从原型模型到目标模型的发型约束域参数映射,从而实现现有头发模型的快速复用。由于发型约束域中包含的发型参数在映射前后保持不变,因此在执行头发模型的复用后基本不会损失发丝特征。同时,建立发型约束域参数映射的计算量远小于对提取全局发丝特征,具有更好的性能优势。此外,进一步支持采用发型约束域方法对复用后的发型进行编辑操作,较好解决了头发模型的复用问题。
综上,本发明的方法建立在描述发丝形状的向量场模型、以及Choe的造型约束方法的基础上,提出一种交互式发型建模的发型约束域方法,通过建立多个发型约束域间的层次和顺序关系,允许仅采用少量基本发型约束域即可构建多样化的复杂发型,从而解决了一般造型约束方法缺少普遍适用性的问题;针对现有方法在生成发丝自然形变方面存在的不足,提出通过构建发丝的最小旋转标架(Rotation Minimizing Frames,下称RMF),将发丝偏移函数由二维扩展至三维,从而允许灵活构建外观丰富的“波发”和“卷发”效果;在上述发型约束域方法的基础上,通过构建从原型模型到目标模型的发型约束域参数映射,从而实现现有头发模型的快速复用。由于发型约束域中包含的发型参数在映射前后保持不变,因此在执行头发模型的复用后基本不会损失发丝特征。此外,进一步支持采用前述的发型约束域方法对复用后的发型进行编辑操作,较好解决了头发模型的复用问题。
附图说明
以下结合附图与具体实施方式对本发明作进一步详细说明。
图1为实施例1生成的马尾辫发型示意图,其中图1(a)表示用于生成单马尾辫发型时所采用的发型约束域,图1(b)为对生成的整体发型进行渲染得到的结果;
图2为关于实施例1中集簇约束域的示意图;
图3为实施例2生成的马尾辫发型示意图,其中图3(a)表示用于生成双马尾辫发型时所采用的发型约束域,图3(b)为对生成的整体发型进行渲染得到的结果;
图4为实施例3对已有发丝生成自然形变效果的示意图,其中图4(a)为发生自然形变前的发丝形状,以及根据发丝曲线生成的RMF,图4(b)为根据发生自然形变后的发丝形状插值生成的局部发簇;
图5为从目标模型参数域到原型模型参数域到配准对齐示意图;
图6为实施例4中给出的将原型模型上生成的发型快速复用至任意虚拟角色模型的示意图,其中图6(a)为原型模型上已有的单马尾辫发型模型,图6(b)为根据从原型模型的已有发型计算得的参数模版,在任意虚拟角色模型上生成的新的发型模型;
图7对实施例4中给出的将原型模型上生成的发型快速复用至任意虚拟角色模型的进一步说明,其中图7a、图7b、图7c、图7d分别表示原型模型上4种不同已有发型的复用结果,其中图7a-1表示原型模型上已有的第一种发型,图7a-2、图7a-3、图7a-4分别表示在不同模型上根据从原型模型的已有发型计算得到参数模版生成的新的发型模型;图7b-1表示原型模型上已有的第二种发型,图7b-2、图7b-3、图7b-4分别表示在不同模型上根据从原型模型的已有发型计算得到参数模版生成的新的发型模型;图7c-1表示原型模型上已有的第三种发型,图7c-2、图7c-3、图7c-4分别表示在不同模型上根据从原型模型的已有发型计算得到参数模版生成的新的发型模型;图7d-1表示原型模型上已有的第四种发型,图7d-2、图7d-3、图7d-4分别表示在不同模型上根据从原型模型的已有发型计算得到参数模版生成的新的发型模型。
具体实施方式
以下是发明人提供的实施例,已对本发明的技术方案作进一步的详细说明。
实施例1:
该实施例采用下述方法生成图1所示马尾辫发型:
步骤一,根据待生成整体发型的整体形状在目标虚拟角色模型上规定头发生长区域即头皮网格;采用网格参数化方法在头皮网格上建立目标虚拟角色模型头皮网格参数域A;
步骤二,生成Q根样例发丝的二维分布:
(1)在头皮网格参数域A上生成全局发丝二维分布,将该结果映射至目标虚拟角色模型的头皮网格上;
(2)采用K均值聚类方法将头皮网格参数域A上的全局发丝二维分布均匀划分成Q簇,使用Q根样例发丝表示所在发簇的整体发丝形状,同时各样例发丝的发根均位于所在发簇的聚簇中心,进而得到Q根样例发丝的二维分布,再将该Q根样例发丝的二维分布映射至目标虚拟角色模型的头皮网格上;
步骤三,构建发型约束域
根据待生成整体发型中发丝的形状特征构建多个发型约束域:对于待生成整体发型中的发丝生长方向相互平行的局部发型和发丝生长方向相互平行的全局发型分别构建等距约束域,所述等距约束域是根据局部发型或全局发型的生长规模定义一空间作用域,该空间作用域是一个有限体积的长方体Sq;其激活条件为:当该等距约束域未满足过激活条件和消隐条件,且发丝的生长端点首次位于Sq所包含的空间范围内部;其消隐条件为:当该等距约束域已满足激活条件,且发丝的生长端点处于Sq所包含的空间范围外部;其作用力函数Str为一个常向量,该常向量的方向根据当前生长发丝的生长方向确定,该常向量的大小根据当前生长发丝发生形变的剧烈程度确定;
对于待生成整体发型中的发丝生长方向聚簇到一点的局部发型和发丝生长方向聚簇到一点的全局发型分别构建集簇约束域,所述集簇约束域的激活条件为:当该集簇约束域位于全局发型约束域队列或局部发型约束域队列的队首发型约束域集合中;
其消隐条件为下列条件之一:
(1)生长发丝的当前生长端点位于Sc定义的空间范围之内;
(2)生长发丝的当前生长端点位于Sp′定义的空间范围之外;
其中,Sc为一三维空间核,如图2所示,该三维空间核的核心为空间中任意顶点c、半径为h,且0<h<r;Sp′为一三维空间球,该三维空间球的球心为首次受该集簇约束域作用时的发丝生长端点s、半径为r,且r为点s到点c的距离;
同时根据待生成整体发型的整体发型特征和局部发型特征采用层次化的多队列结构建立多个发型约束域相互之间的关系,得到控制全局发丝形状的发型约束域队列和控制局部发丝形状的发型约束域队列;其中:控制全局发丝形状的发型约束域队列为全局发型约束域队列,该全局发型约束域队列中的每个元素是由至少一个发型约束域组成的发型约束域集合,且该全局发型约束域队列中共包含多个发型约束域中的n个发型约束域;控制局部发丝形状的发型约束域队列为局部发型约束域队列,该局部发型约束域队列中的每个元素是由至少一个发型约束域组成的发型约束域集合,且该局部发型约束域队列中共包含多个发型约束域中除n个发型约束域的m个发型约束域;
步骤四:采用下述方法在Q根样例发丝的二维分布上分别生成Q根样例发丝;Q根样例发丝均生成后得到样例发丝集合;
根据全局发型约束域队列和局部发型约束域队列计算生成当前样例发丝,并且针对全局发型约束域队列和局部发型约束域队列同时进行下述步骤,方法中所述的发型约束域队列指全局发型约束域队列或局部发型约束域队列;
(1)取出位于发型约束域队列队首的发型约束域集合F;
(2)分别判断F中的各发型约束域是否满足激活条件,得到F中的K个满足激活条件的发型约束域;
(3)计算K个满足激活条件的发型约束域施加在当前样例发丝生长端点Pi上的作用力之和t,t=∑Strk;
其中:i为当前样例发丝的生长端点序号,当前样例发丝的生长起点P1为当前样例发丝在Q根样例发丝的二维分布中的顶点;Strk为第k个满足激活条件的发型约束域施加在当前样例发丝上的作用力分量,k=1,2,3,…,K,且K为大于等于1的正整数;
(4)计算在t的作用下当前样例发丝生长端点Pi处产生的切线方向Ti+1,Ti+1=Ti+t,其中:Ti为生长端点Pi处的切线方向,T1为P1在头皮网格上的法线方向;
(5)计算当前样例发丝下一个生长端点的空间位置pi+1,pi+1=pi+sTi+1,其中:s为当前样例发丝的生长步长,且s>0;
(6)分别判断F中的K个满足激活条件的发型约束域是否满足消隐条件,去除F中满足消隐条件的发型约束域;同时采用(式1)对受集簇约束域作用生成的Ti+1进行修正:
Ti+1=q+dTi+1 (式1)
上式中q为表示散射方向的单位向量,d为散射系数,该修正过程保证生成发束聚拢和扩散效果,如发辫等避免最终生成的局部发丝或整体发丝中的发丝聚拢至一点,体现不出待生成局部发型或全局发型的真实感;
(7)判断F是否为空,当F为空时,将F从发型约束域队列移除;
(8)判断全局发型约束域队列和局部发型约束域队列是否为空,当全局发型约束域队列和局部发型约束域队列均为空时,完成当前样例发丝的生长,完成生长后的当前样例发丝的生长端点总个数为I;否则,执行步骤(9);
(9)统计执行步骤(1)至(9)的迭代次数,当迭代次数达到常数G(G≥0)时,完成当前样例发丝的生长,完成生长后的当前样例发丝的生长端点总数为I;否则,迭代执行步骤(1)至(9);
步骤五,根据样例发丝集合中的每根样例发丝插值计算生成样例发丝所在发簇中的其他发丝,从而在虚拟角色模型上生成整体发型。
其中图1(a)和图1(b)表示“单马尾辫”的构建,其中应用单一的集簇约束域使发丝首先以“聚拢”方式生长,然后对执行散射修正后的发丝应用垂直方向上的等距约束域,模拟重力效果,刘海部分也应用了集簇约束域和等距约束域。
实施例2:
该实施例采用实施例1的方法生成图3所示的马尾辫发型。图3(a)和图3(b)表示“双马尾辫”的构建,将头皮网格的主要部分划分成左右两个区域,并分别应用一个集簇约束域,使各自区域中的发丝分别朝向不同的“聚拢”方向生长,然后对执行散射修正后的发丝应用垂直方向上的等距约束域,模拟重力效果。其它部分,如留海部分也应用了集簇约束域和等距约束域。
实施例3:
方法根据待生成整体发型的整体发型特征分别生成Q根样例发丝,并根据待生成整体发型的自然形变特征分别完成Q根样例发丝的自然形变效果处理,然后用该Q根样例发丝分别表示各自所在发簇的形状,根据各样例发丝插值生成各自所在发簇内的剩余发丝,从而在目标虚拟角色模型上生成整体发型,按下述步骤进行:
步骤(一),执行实施例1所述方法的步骤一;
步骤(二),执行实施例1所述方法步骤二至步骤三;
步骤(三),执行实施例1方法中的步骤四;
步骤(四),在样例发丝集合的基础上,采用下述方法分别生成Q根样例发丝的“卷曲”、“波动”的自然形变效果;当Q根样例发丝的卷曲、波动自然形变效果均生成完成后得到经过自然形变处理的样例发丝集合;
方法在当前样例发丝曲线的局部区间生成自然形变效果,设当前样例发丝曲线共包含N个生长端点,即[1,N]表示当前样例发丝曲线的整个区间,定义样例发丝曲线的局部区间[s0,s1],其中1≤s0<N,1<s1≤N,
1)计算表示当前样例发丝的最小旋转标架(RMF):对于样例发丝曲线,计算表示该空间曲线的最小旋转标架(RMF);)采用Wang(Wang Wenping,Jüttleret Bert,Zheng Dayue,etal.Computation of Rotation Minimizing Frame[J].ACM Transactions on Graphics,2008,27(1):1-18)的双反射算法构建发丝曲线的最小旋转标架;
2)根据待生成整体发型的自然形变特征构建u个自然形变约束域,u≥0;每个自然形变约束域是根据待生成整体发型中的局部发型的自然形变特征定义一空间作用域,该空间作用域是一个有限体积的长方体Sq″;其激活条件为:当该自然形变约束域未满足过激活条件和消隐条件,且发丝的端点首次位于Sq″所包含的空间范围内部;其消隐条件为:当该自然形变约束域已满足激活条件,且发丝的端点处于Sq″所包含的空间范围外部;
所构建的u个自然形变约束域构成自然形变约束域队列;
3)i=1;
4)取出位于自然形变约束域队列队首的自然形变约束域,记为Na;
5)判断Na是否满足激活条件;
当Na满足激活条件时:
首先,分别计算当前样例发丝生长端点Pi在RMF主法线方向上的偏移系数Epi,且Epi>0;和,当前样例发丝生长端点Pi在RMF副法线方向上的偏移系数Epi′,且Epi′>0:
(式4)和(式5)中:
i∈[s0,s1];
AN为当前样例发丝曲线的生长端点Pi在RMF主法线方向上的最大偏移常数;
AB为当前样例发丝曲线的生长端点Pi在RMF副法线方向上的最大偏移常数;
T为偏移周期系数;
fade(i)用于将当前样例发丝曲线的生长端点Pi在RMF副法线方向上的起始偏移位置平滑降至0:
scale(i,σ)为关于i和平滑系数σ的平滑函数:
(式6)中:
σ为平滑系数,且0<σ≤0.5;
接着,利用(式7)分别计算当前样例发丝的生长端点Pi在RMF主法线方向上的偏移值ni和在RMF副法线方向的偏移值bi;
其中:Ni为当前样例发丝生长端点Pi在RMF主法线方向上的单位向量,Bi为当前样例发丝生长端点Pi在RMF副法线方向上的单位向量;
然后,用Pi′替换当前样例发丝的生长端点Pi,Pi'=Pi+ni+bi,完成当前生长端点Pi的位置更新;
当Na不满足激活条件时,执行步骤6);
6)i=i+1;当i≥I时,完成当前样例发丝的形变;否则,执行步骤7);
7)判断Na是否满足消隐条件,当Na满足消隐条件时,将Na从自然形变约束域队列中移除;当Na不满足消隐条件时,执行步骤8);
8)判断自然形变约束域队列是否为空,当自然形变约束域队列为空时,完成当前样例发丝的形变;否则,执行步骤9);
9)统计执行步骤4)至9)的迭代次数,当迭代次数达到常数G′(G′≥0)时;完成当前样例发丝的形变;否则,迭代执行步骤4)至9);
步骤(五),根据样例发丝集合中的每根样例发丝插值计算生成样例发丝所在发簇中的其他发丝,从而在目标模型上生成具有自然形变效果的整体发型。
如图4所示,其中图4(a)为在模型上利用该实施例的方法生成的一根样例发丝,以及采用该实施例方法生成的该样例发丝的RMF。构建单一自然形变约束域,设偏移周期系数T=50,AN、AB均为0.1,最终根据产生自然形变后的样例发丝而生成的发簇形状如图4(b)所示。
实施例4:
该实施例采用下述方法生成图6和图7所示发型:
该方法对模型库中的所有虚拟角色模型均生成整体发型,首先在模型库中任选一虚拟角色模型作为原型模型,并在原型模型上生成整体发型,通过提取已有的原型模型的发型约束域参数,将该发型约束域参数归一化为约束模版,并根据约束模版在其它虚拟角色模型上生成与已有原型模型的整体发型外观相一致的整体发型,具体步骤如下:
步骤(1),从模型库中任选一虚拟角色模型作为原型模型,采用实施例3的方法在原型模型上生成整体发型;
步骤(2),针对模型库中的其他每一个虚拟角色模型,根据待生成整体发型的整体形状在虚拟角色模型上规定头发生长区域即头皮网格;利用网格参数化方法建立虚拟角色模型头皮网格参数域;
步骤(3),在原型模型所在坐标系B下,以原型模型为基准,对模型库中的其他虚拟角色模型进行刚性配准,使其他每个虚拟角色模型具有与原型模型一致的世界坐标朝向;同时在坐标系B下,以原型模型头皮网格参数域为基准,对模型库中的其他虚拟角色模型头皮网格参数域进行配准,使每个虚拟角色模型头皮网格参数域上的点与原型模型头皮网格参数域上的点一一对应;
具体采用下述方法实现每个虚拟角色模型头皮网格参数域上的顶点与原型模型头皮网格参数域上的顶点一一对应:
(1)如图5所示,假设坐标系为右手系,建立原型模型的头皮网格在坐标系B的xz平面上的投影,取该投影与z轴相交且z值为正向最大的点H0,在原型模型头皮网格参数域中找到H0的对应点H0′;
(2)对于其他每个虚拟角色模型头皮网格分别进行如下处理:
建立当前虚拟角色模型的头皮网格在xz平面上的投影,取该投影与z轴相交且z值为最大的点Hi,在当前虚拟角色模型头皮网格参数域中找到Hi的对应点Hi′;通过旋转当前虚拟角色模型头皮网格参数域使点Hi′与点H0′重合;
其他每个虚拟角色模型头皮网格的点Hi′均与点H0′重合时,即实现每个虚拟角色模型头皮网格参数域上的点与原型模型头皮网格参数域上的点一一对应;
步骤(4),对模型库中的其他虚拟角色模型分别采用如下方法生成整体发型:
Ⅰ、将步骤(1)中生成的全局发丝二维分布与Q根样例发丝的二维分布分别映射至当前虚拟角色模型的头皮网格上;
Ⅱ、采用随机增量法计算原型模型的头部网格的最小包围球,该最小包围球的球心为O′0,其在坐标系B中的坐标为(ω0,ξ0,ψ0),半径为R0;
Ⅲ、采用下述方法将步骤(1)中构建的多个发型约束域和u个自然形变约束域映射至当前虚拟角色模型的头皮网格上;
(i)计算当前虚拟角色模型的头部网格的最小包围球,该最小包围球的球心为O″0,其在坐标系B中的坐标为(ω′0,ξ′0,ψ′0),半径为R′0;以O′0为原点建立局部坐标系,该局部坐标系的各坐标轴的方向与坐标系A中相应坐标轴的方向一致;
(ii)采用下述方法分别计算步骤(1)中构建的多个发型约束域和u个自然形变约束域中每个约束域在局部坐标系中的空间位置;并根据每个约束域在局部坐标系中的空间位置得到相应的约束模板的参数:
多个发型发型约束域和u个自然形变约束域中每个约束域对应的约束模板的参数组成发型约束模板;
(iii)采用下述方法分别计算发型约束模板中的每个约束模板的参数符合当前虚拟角色模型几何特征的新的约束域的空间位置:
根据每个约束模板参数计算得到的新的约束域组成针对当前虚拟角色模型的多个发型约束域和u个自然形变约束域,进而将步骤(1)中构建的多个全局发型约束域和u个自然形变约束域映射至当前虚拟角色模型的头皮网格上,同时得到针对当前虚拟角色模型的全局发型约束域队列、局部发型约束域队列和自然形变约束域队列;
Ⅳ、采用实施例3方法中步骤(三)至步骤(五)的方法在当前虚拟角色模型上生成整体发型。
如图6所示,其中图6(a)为原型模型上创建的初始发型模型,其包含的发型约束域内容与实例(1)中“单马尾辫”中所包含的发型约束域内容一致。首先根据图5给出的过程构建发型约束域的参数映射,然后在目标模型中生成新发型,如图6(b)所示。
进一步,根据原型模型中创建的4种不同发型,分别在模型库中的其他3个目标模型利用从将源模型作为原型模型计算得的约束模版,生成新的整体发型,如图7所示。
Claims (5)
1.一种头发模型建模方法,其特征在于,该方法根据待生成整体发型的整体发型特征分别生成Q根样例发丝,然后用该Q根样例发丝分别表示各自所在发簇的形状,根据各样例发丝插值生成各自所在发簇内的剩余发丝,从而在目标虚拟角色模型上生成整体发型,该方法的具体步骤如下:
步骤一,对于输入的目标虚拟角色模型,根据待生成整体发型的整体形状在目标虚拟角色模型上规定头发生长区域即头皮网格;采用网格参数化方法在头皮网格上建立目标虚拟角色模型的头皮网格参数域A;
步骤二,生成Q根样例发丝的二维分布:
(1)在头皮网格参数域A上生成全局发丝二维分布,将该结果映射至目标虚拟角色模型的头皮网格上;或者,在目标虚拟角色模型的头皮网格上生成全局发丝二维分布,将该结果映射至头皮网格参数域A上;
(2)采用K均值聚类方法将头皮网格参数域A上的全局发丝二维分布均匀划分成Q簇,使用Q根样例发丝表示所在发簇的整体发丝形状,同时各样例发丝的发根均位于所在发簇的聚簇中心,进而得到Q根样例发丝的二维分布,再将该Q根样例发丝的二维分布映射至目标虚拟角色模型的头皮网格上;
步骤三,构建发型约束域
根据待生成整体发型中发丝的形状特征构建多个发型约束域;同时根据待生成整体发型的整体发型特征和局部发型特征采用层次化的多队列结构建立多个发型约束域相互之间的关系,得到控制全局发丝形状的发型约束域队列和控制局部发丝形状的发型约束域队列;其中:控制全局发丝形状的发型约束域队列为全局发型约束域队列,该全局发型约束域队列中的每个元素是由至少一个发型约束域组成的发型约束域集合,且该全局发型约束域队列中共包含多个发型约束域中的n个发型约束域;控制局部发丝形状的发型约束域队列为局部发型约束域队列,该局部发型约束域队列中的每个元素是由至少一个发型约束域组成的发型约束域集合,且该局部发型约束域队列中共包含多个发型约束域中除n个发型约束域外的m个发型约束域;
其中,每个发型约束域的构建包括设定激活条件、消隐条件和作用力函数Str;所述激活条件为所构建的发型约束域开始影响生长发丝形状的条件;所述消隐条件为所构建的发型约束域终止影响生长发丝形状的条件;所述作用力函数为所构建的发型约束域影响生长发丝形状时,该发型约束域对生长发丝产生的作用力向量;
步骤四:采用下述方法在Q根样例发丝的二维分布上分别生成Q根样例发丝;Q根样例发丝均生成后得到样例发丝集合;
根据全局发型约束域队列和局部发型约束域队列计算生成当前样例发丝,并且针对全局发型约束域队列和局部发型约束域队列同时进行下述步骤,下述方法中所述的发型约束域队列指全局发型约束域队列或局部发型约束域队列;
(1)取出位于发型约束域队列队首的发型约束域集合F;
(2)分别判断F中的各发型约束域是否满足激活条件,得到F中的K个满足激活条件的发型约束域;
(3)计算K个满足激活条件的发型约束域施加在当前样例发丝生长端点Pi上的作用力之和t,t=∑Strk;
其中:i为当前样例发丝的生长端点序号,当前样例发丝的生长起点P1为当前样例发丝在Q根样例发丝的二维分布中的顶点;Strk为第k个满足激活条件的发型约束域施加在当前样例发丝上的作用力分量,k=1,2,3,…,K,且K为大于等于1的正整数;
(4)计算在t的作用下当前样例发丝生长端点Pi处产生的切线方向Ti+1,Ti+1=Ti+t,其中:Ti为生长端点Pi处的切线方向,Ti为P1在头皮网格上的法线方向;
(5)计算当前样例发丝下一个生长端点的空间位置pi+1,pi+1=pi+sTi+1,其中:s为当前样例发丝的生长步长,且s>0;
(6)分别判断F中的K个满足激活条件的发型约束域是否满足消隐条件,去除F中满足消隐条件的发型约束域;
(7)判断F是否为空,当F为空时,将F从发型约束域队列移除;
(8)判断全局发型约束域队列和局部发型约束域队列是否为空,当全局发型约束域队列和局部发型约束域队列均为空时,完成当前样例发丝的生长,完成生长后的当前样例发丝的生长端点总个数为I;否则,执行步骤(9);
(9)统计执行步骤(1)至(9)的迭代次数,当迭代次数达到常数G(G≥0)时,完成当前样例发丝的生长,完成生长后的当前样例发丝的生长端点总数为I;否则,迭代执行步骤(1)至(9);
步骤五,根据样例发丝集合中的每根样例发丝插值计算生成样例发丝所在发簇中的其他发丝,从而在虚拟角色模型上生成整体发型。
2.如权利要求1所述的头发模型建模方法,其特征在于,步骤三中根据待生成整体发型中发丝的形状特征构建多个发型约束域:
对于待生成整体发型中的发丝生长方向相互平行的局部发型和发丝生长方向相互平行的全局发型分别构建等距约束域,所述等距约束域是根据局部发型或全局发型的生长规模定义一空间作用域,该空间作用域是一个有限体积的长方体Sq;其激活条件为:当该等距约束域未满足过激活条件和消隐条件,且发丝的生长端点首次位于Sq所包含的空间范围内部;其消隐条件为:当该等距约束域已满足激活条件,且发丝的生长端点处于Sq所包含的空间范围外部;其作用力函数Str为一个常向量;
对于待生成整体发型中的发丝生长方向聚簇到一点的局部发型和发丝生长方向聚簇到一点的全局发型分别构建集簇约束域,所述集簇约束域的激活条件为:当该集簇约束域位于全局发型约束域队列或局部发型约束域队列的队首发型约束域集合中;
其消隐条件为下列条件之一:
(1)生长发丝的当前生长端点位于Sc定义的空间范围之内;
(2)生长发丝的当前生长端点位于Sp′定义的空间范围之外;
其中,Sc为一三维空间核,该三维空间核的核心为空间中任意顶点c、半径为h,且0<h<r,r为点s到点c的距离,点s为首次受该集簇约束域作用时的发丝生长端点;Sp′为一三维空间球,该三维空间球的球心为s、半径为r;
步骤四中的(6)步骤中同时采用(式1)对受集簇约束域作用生成的Ti+1进行修正:
Ti+1=q+dTi+1 (式1)
(式1)中q为表示散射方向的单位向量,d为散射系数。
3.一种快速复用头发模型建模方法,其特征在于,该方法对模型库中的所有虚拟角色模型均生成整体发型,首先在模型库中任选一虚拟角色模型作为原型模型,并在原型模型上生成整体发型,通过提取已有的原型模型的发型约束域参数,将该发型约束域参数归一化为约束模版,并根据约束模版在其它虚拟角色模型上生成与已有原型模型的整体发型外观相一致的整体发型,具体步骤如下:
步骤(1),在模型库中任选一虚拟角色模型作为原型模型,采用权利要求1或2所述方法在原型模型上生成整体发型;
步骤(2),针对模型库中的其他每一个虚拟角色模型,根据待生成整体发型的整体形状在虚拟角色模型上规定头发生长区域即头皮网格;利用网格参数化方法建立虚拟角色模型头皮网格参数域;
步骤(3),在坐标系A下,以原型模型为基准,对模型库中的其他虚拟角色模型进行刚性配准,使其他每个虚拟角色模型具有与原型模型一致的世界坐标朝向;同时在坐标系A下,以原型模型头皮网格参数域为基准,对模型库中的其他虚拟角色模型头皮网格参数域进行配准,使每个虚拟角色模型头皮网格参数域上的点与原型模型头皮网格参数域上的点一一对应;
步骤(4),对模型库中的其他虚拟角色模型分别采用如下方法生成整体发型:
Ⅰ、将步骤(1)中生成的全局发丝二维分布与Q根样例发丝的二维分布分别映射至当前虚拟角色模型的头皮网格上;
Ⅱ、采用随机增量法计算原型模型的头部网格的最小包围球,该最小包围球的球心为O′、半径为R,球心O′在坐标系A中的坐标为(ω,ξ,ψ);
Ⅲ、采用下述方法将步骤(1)中构建的多个发型约束域映射至当前虚拟角色模型的头皮网格上:
(i)采用随机增量法计算当前虚拟角色模型的头部网格的最小包围球,该最小包围球的球心为O″、半径为R',球心为O″在坐标系A中的坐标为(ω',ξ′,ψ′);以O′为原点建立局部坐标系,该局部坐标系的各坐标轴的方向与坐标系A中相应坐标轴的方向一致;
(ii)分别采用下述方法计算步骤(1)中构建的多个发型约束域中每个发型约束域在局部坐标系中的空间位置;并根据每个发型约束域在局部坐标系中的空间位置得到相应的约束模板的参数:
多个发型约束域中每个发型约束域对应的约束模板的参数组成发型约束模板;
(iii)分别采用下述方法计算发型约束模板中的每个约束模板的参数符合当虚拟角色模型几何特征的新的发型约束域的空间位置:
每个约束模板的参数计算得到的新的发型约束域组成针对当前虚拟角色模型的多个发型约束域,进而将步骤(1)中构建的多个发型约束域映射至当前虚拟角色模型的头皮网格上,同时得到针对当前虚拟角色模型的全局发型约束域队列和局部发型约束域队列;
Ⅳ、采用权利要求1或2所述方法中步骤四至步骤五的方法在当前虚拟角色模型上生成整体发型。
4.一种具有自然形变效果的头发建模方法,其特征在于,该方法根据待生成整体发型的整体发型特征分别生成Q根样例发丝,并根据待生成整体发型的自然形变特征分别完成Q根样例发丝的自然形变效果处理,然后用该Q根样例发丝分别表示各自所在发簇的形状,根据各样例发丝插值生成各自所在发簇内的剩余发丝,从而在目标虚拟角色模型上生成整体发型,按下述步骤进行:
步骤(一),执行权利要求1所述方法的步骤一;
步骤(二),执行权利要求1或2所述方法的步骤二至步骤三;
步骤(三),执行权利要求1或2所述方法的步骤四;
步骤(四),在样例发丝集合的基础上,分别采用下述方法生成Q根样例发丝的“卷曲”、“波动”的自然形变效果;当Q根样例发丝的卷曲、波动等自然形变效果均生成完成后得到经过自然形变处理的样例发丝集合;
方法在当前样例发丝曲线的局部区间生成自然形变效果,设当前样例发丝曲线共包含N个生长端点,即[1,N]表示当前样例发丝曲线的整个区间,定义样例发丝曲线的局部区间[s0,s1],其中1≤s0<N,1<s1≤N,
1)计算表示当前样例发丝的最小旋转标架(RMF);
2)根据待生成整体发型的自然形变特征构建u个自然形变约束域,u≥0;
每个自然形变约束域是根据待生成整体发型中的局部发型的自然形变特征定义一空间作用域,该空间作用域是一个有限体积的长方体Sq″;其激活条件为:当该自然形变约束域未满足过激活条件和消隐条件,且发丝的端点首次位于Sq″所包含的空间范围内部;其消隐条件为:当该自然形变约束域已满足激活条件,且发丝的端点处于Sq″所包含的空间范围外部;
所构建的u个自然形变约束域构成自然形变约束域队列;
3)i=1;
4)取出位于自然形变约束域队列队首的自然形变约束域,记为Na;
5)判断Na是否满足激活条件;
当Na满足激活条件时:
首先,分别计算当前样例发丝生长端点Pi在RMF主法线方向上的偏移系数Epi,且Epi>0;和,当前样例发丝生长端点Pi在RMF副法线方向上的偏移系数Epi′,且Epi′>0:
(式4)和(式5)中:
i∈[s0,s1];
AN为当前样例发丝曲线的生长端点Pi在RMF主法线方向上的最大偏移值;
AB为当前样例发丝曲线的生长端点Pi在RMF副法线方向上的最大偏移值;
T为偏移周期系数;
fade(i)用于将当前样例发丝曲线的生长端点Pi在RMF副法线方向上的起始偏移位置平滑降至0:
scale(i,σ)为关于i和平滑系数σ的平滑函数:
(式6)中:
σ为平滑系数,且0<σ≤0.5;
接着,利用(式7)分别计算当前样例发丝的生长端点Pi在RMF主法线方向上的偏移值ni和在RMF副法线方向的偏移值bi;
其中:Ni为当前样例发丝生长端点Pi在RMF主法线方向上的单位向量,Bi为当前样例发丝生长端点Pi在RMF副法线方向上的单位向量;
然后,用P′i替换当前样例发丝的生长端点Pi,P′i=Pi+ni+bi,完成当前生长端点Pi的位置更新;
当Na不满足激活条件时,执行步骤6);
6)i=i+1;当i≥I时,完成当前样例发丝的自然形变;否则,执行步骤7);
7)判断Na是否满足消隐条件,当Na满足消隐条件时,将Na从自然形变约束域队列中移除;当Na不满足消隐条件时,执行步骤8);
8)判断自然形变约束域队列是否为空,当自然形变约束域队列为空时,完成当前样例发丝的形变;否则,执行步骤9);
9)统计执行步骤4)至9)的迭代次数,当迭代次数达到常数G′(G′≥0)时;完成当前样例发丝的形变;否则,迭代执行步骤4)至9);
步骤(五),根据样例发丝集合中的每根样例发丝插值计算生成样例发丝所在发簇中的其他发丝,从而在目标模型上生成具有自然形变效果的整体发型。
5.一种快速复用头发模型建模方法,其特征在于,该方法对模型库中的所有虚拟角色模型均生成整体发型,首先在模型库中任选一虚拟角色模型作为原型模型,并在原型模型上生成整体发型,通过提取已有的原型模型的发型约束域参数,将该发型约束域参数归一化为约束模版,并根据约束模版在其它虚拟角色模型上生成与已有原型模型的整体发型外观相一致的整体发型,具体步骤如下:
步骤①,从模型库中任选一虚拟角色模型作为原型模型,采用权利要求4所述方法在原型模型上生成整体发型;
步骤②,针对模型库中的其他每一个虚拟角色模型,根据待生成整体发型的整体形状在虚拟角色模型上规定头发生长区域即头皮网格;利用网格参数化方法建立虚拟角色模型头皮网格参数域;
步骤③,在坐标系B下,以原型模型为基准,对模型库中的其他虚拟角色模型进行刚性配准,使其他每个虚拟角色模型具有与原型模型一致的世界坐标朝向;同时在坐标系B下,以原型模型头皮网格参数域为基准,对模型库中的其他虚拟角色模型头皮网格参数域进行配准,使每个虚拟角色模型头皮网格参数域上的点与原型模型头皮网格参数域上的点一一对应;
步骤④,对模型库中的其他虚拟角色模型分别采用如下方法生成整体发型:
Ⅰ、将步骤①中生成的全局发丝二维分布与Q根样例发丝的二维分布分别映射至当前虚拟角色模型的头皮网格上;
Ⅱ、采用随机增量法计算原型模型的头部网格的最小包围球,该最小包围球的球心为O′0、半径为R0,球心O′0在坐标系B中的坐标为(ω0,ξ0,ψ0),;
Ⅲ、采用下述方法将步骤①中构建的多个发型约束域和u个自然形变约束域映射至当前虚拟角色模型的头皮网格上:
(i)计算当前虚拟角色模型的头部网格的最小包围球,该最小包围球的球心为O0″、半径为R′0,球心O″0在坐标系B中的坐标为(ω′0,ξ′0,ψ′0);以O′0为原点建立局部坐标系,该局部坐标系的各坐标轴的方向与坐标系B中相应坐标轴的方向一致;
(ii)分别采用下述方法计算步骤①中构建的多个发型约束域和u个自然形变约束域中每个约束域在局部坐标系中的空间位置;并根据每个约束域在局部坐标系中的空间位置得到相应的约束模板的参数:
(式8)
多个发型发型约束域和u个自然形变约束域中每个约束域对应的约束模板的参数组成发型约束模板;
(iii)分别采用下述方法计算发型约束模板中的每个约束模板的参数符合当前虚拟角色模型几何特征的新的约束域的空间位置:
当前约束模板的参数为利用(式9)计算其符合当前虚拟角色模型几何特征的新的约束域的空间位置(x′0,y′0,z′0):
发型约束模板中的每个约束模板的参数计算得到的新的约束域组成针对当前虚拟角色模型的多个发型约束域和u个自然形变约束域,进而将步骤①中构建的多个发型约束域和u个自然形变约束域映射至当前虚拟角色模型的头皮网格上,同时得到针对当前虚拟角色模型的全局发型约束域队列、局部发型约束域队列和自然形变约束域队列;
Ⅳ、采用权利要求4所述方法中步骤(三)至步骤(五)在当前虚拟角色模型上生成整体发型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210527580.0A CN103035030B (zh) | 2012-12-10 | 2012-12-10 | 头发模型建模方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210527580.0A CN103035030B (zh) | 2012-12-10 | 2012-12-10 | 头发模型建模方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103035030A true CN103035030A (zh) | 2013-04-10 |
CN103035030B CN103035030B (zh) | 2015-06-17 |
Family
ID=48021895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210527580.0A Active CN103035030B (zh) | 2012-12-10 | 2012-12-10 | 头发模型建模方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103035030B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104376597A (zh) * | 2014-12-05 | 2015-02-25 | 北京航空航天大学 | 一种基于多方向约束的头发重建方法 |
CN104574480A (zh) * | 2015-01-16 | 2015-04-29 | 北京科艺有容科技有限责任公司 | 一种三维动画中角色发型的快速生成方法 |
CN103942376B (zh) * | 2014-04-11 | 2017-01-04 | 浙江大学 | 一种应用于实时头发运动仿真的碰撞修正方法 |
CN107146273A (zh) * | 2017-05-11 | 2017-09-08 | 北京航空航天大学 | 一种面向基于图像头发建模的自适应浮动切线匹配方法 |
CN107221024A (zh) * | 2017-05-27 | 2017-09-29 | 网易(杭州)网络有限公司 | 虚拟对象毛发处理方法及装置、存储介质、电子设备 |
CN107615337A (zh) * | 2016-04-28 | 2018-01-19 | 华为技术有限公司 | 一种三维头发建模方法及装置 |
CN108399651A (zh) * | 2018-02-09 | 2018-08-14 | 武汉技兴科技有限公司 | 一种人体发型三维建模及模型复用的方法 |
CN108629781A (zh) * | 2018-04-24 | 2018-10-09 | 成都品果科技有限公司 | 一种头发绘制方法 |
CN108959812A (zh) * | 2018-07-25 | 2018-12-07 | 太原科技大学 | 一种基于约束法线判断机构虚约束的方法 |
CN109002553A (zh) * | 2018-08-08 | 2018-12-14 | 北京旷视科技有限公司 | 头发模型的构建方法、装置、电子设备和计算机可读介质 |
CN111462306A (zh) * | 2020-03-17 | 2020-07-28 | 华南理工大学 | 基于体向量场稀疏局部化分解的三维头发参数化模型方法 |
CN113608615A (zh) * | 2021-08-05 | 2021-11-05 | 北京百度网讯科技有限公司 | 对象数据处理方法、处理装置、电子设备以及存储介质 |
CN115311403A (zh) * | 2022-08-26 | 2022-11-08 | 北京百度网讯科技有限公司 | 深度学习网络的训练方法、虚拟形象生成方法及装置 |
CN116152405A (zh) * | 2023-04-23 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 一种业务处理方法、装置及计算机设备、存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060224366A1 (en) * | 2005-03-30 | 2006-10-05 | Byoungwon Choe | Method and system for graphical hairstyle generation using statistical wisp model and pseudophysical approaches |
CN102339475A (zh) * | 2011-10-26 | 2012-02-01 | 浙江大学 | 基于表面网格的快速毛发建模方法 |
CN102592303A (zh) * | 2006-07-24 | 2012-07-18 | 索尼株式会社 | 毛发运动合成器系统和用于毛发/皮毛流水线的优化技术 |
-
2012
- 2012-12-10 CN CN201210527580.0A patent/CN103035030B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060224366A1 (en) * | 2005-03-30 | 2006-10-05 | Byoungwon Choe | Method and system for graphical hairstyle generation using statistical wisp model and pseudophysical approaches |
CN102592303A (zh) * | 2006-07-24 | 2012-07-18 | 索尼株式会社 | 毛发运动合成器系统和用于毛发/皮毛流水线的优化技术 |
CN102339475A (zh) * | 2011-10-26 | 2012-02-01 | 浙江大学 | 基于表面网格的快速毛发建模方法 |
Non-Patent Citations (1)
Title |
---|
孙武峰,周明全,耿国华,毛小林: "基于动态超螺旋线的三维头发建模", 《计算机应用研究》 * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942376B (zh) * | 2014-04-11 | 2017-01-04 | 浙江大学 | 一种应用于实时头发运动仿真的碰撞修正方法 |
CN104376597B (zh) * | 2014-12-05 | 2017-03-29 | 北京航空航天大学 | 一种基于多方向约束的头发重建方法 |
CN104376597A (zh) * | 2014-12-05 | 2015-02-25 | 北京航空航天大学 | 一种基于多方向约束的头发重建方法 |
CN104574480A (zh) * | 2015-01-16 | 2015-04-29 | 北京科艺有容科技有限责任公司 | 一种三维动画中角色发型的快速生成方法 |
CN107615337A (zh) * | 2016-04-28 | 2018-01-19 | 华为技术有限公司 | 一种三维头发建模方法及装置 |
CN107146273B (zh) * | 2017-05-11 | 2019-12-27 | 北京航空航天大学 | 一种面向基于图像头发建模的自适应浮动切线匹配方法 |
CN107146273A (zh) * | 2017-05-11 | 2017-09-08 | 北京航空航天大学 | 一种面向基于图像头发建模的自适应浮动切线匹配方法 |
CN107221024A (zh) * | 2017-05-27 | 2017-09-29 | 网易(杭州)网络有限公司 | 虚拟对象毛发处理方法及装置、存储介质、电子设备 |
CN108399651A (zh) * | 2018-02-09 | 2018-08-14 | 武汉技兴科技有限公司 | 一种人体发型三维建模及模型复用的方法 |
CN108629781B (zh) * | 2018-04-24 | 2022-04-22 | 成都品果科技有限公司 | 一种头发绘制方法 |
CN108629781A (zh) * | 2018-04-24 | 2018-10-09 | 成都品果科技有限公司 | 一种头发绘制方法 |
CN108959812A (zh) * | 2018-07-25 | 2018-12-07 | 太原科技大学 | 一种基于约束法线判断机构虚约束的方法 |
CN108959812B (zh) * | 2018-07-25 | 2022-08-23 | 太原科技大学 | 一种基于约束法线判断机构虚约束的方法 |
CN109002553A (zh) * | 2018-08-08 | 2018-12-14 | 北京旷视科技有限公司 | 头发模型的构建方法、装置、电子设备和计算机可读介质 |
CN109002553B (zh) * | 2018-08-08 | 2021-10-01 | 北京旷视科技有限公司 | 头发模型的构建方法、装置、电子设备和计算机可读介质 |
CN111462306A (zh) * | 2020-03-17 | 2020-07-28 | 华南理工大学 | 基于体向量场稀疏局部化分解的三维头发参数化模型方法 |
CN111462306B (zh) * | 2020-03-17 | 2022-04-22 | 华南理工大学 | 基于体向量场稀疏局部化分解的三维头发参数化模型方法 |
CN113608615A (zh) * | 2021-08-05 | 2021-11-05 | 北京百度网讯科技有限公司 | 对象数据处理方法、处理装置、电子设备以及存储介质 |
CN113608615B (zh) * | 2021-08-05 | 2022-05-06 | 北京百度网讯科技有限公司 | 对象数据处理方法、处理装置、电子设备以及存储介质 |
CN115311403A (zh) * | 2022-08-26 | 2022-11-08 | 北京百度网讯科技有限公司 | 深度学习网络的训练方法、虚拟形象生成方法及装置 |
CN115311403B (zh) * | 2022-08-26 | 2023-08-08 | 北京百度网讯科技有限公司 | 深度学习网络的训练方法、虚拟形象生成方法及装置 |
CN116152405A (zh) * | 2023-04-23 | 2023-05-23 | 腾讯科技(深圳)有限公司 | 一种业务处理方法、装置及计算机设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103035030B (zh) | 2015-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103035030B (zh) | 头发模型建模方法 | |
CN102339475B (zh) | 基于表面网格的快速毛发建模方法 | |
CN103208133B (zh) | 一种图像中人脸胖瘦的调整方法 | |
Chen et al. | A system of 3D hair style synthesis based on the wisp model | |
Li et al. | Modeling and generating moving trees from video | |
CN109147048A (zh) | 一种利用单张彩色图的三维网格重建方法 | |
CN109146808B (zh) | 一种人像美型方法和系统 | |
Shen et al. | Deepsketchhair: Deep sketch-based 3d hair modeling | |
CN104217454A (zh) | 一种视频驱动的人脸动画生成方法 | |
Qin et al. | Dynamic NURBS swung surfaces for physics-based shape design | |
Wang et al. | Example-based hair geometry synthesis | |
Zhao | Application of 3D CAD in landscape architecture design and optimization of hierarchical details | |
CN106952329A (zh) | 基于Unity3D与NGUI的粒子特效编辑方法及系统 | |
Wu et al. | Real-time hair mesh simulation | |
CN102637304B (zh) | 基于gpu的几何表面上各向同性/异性纹理合成方法 | |
CN101794462A (zh) | 一种基于纹理的三维网格模型变形方法及系统 | |
CN110660132A (zh) | 一种三维模型构建方法及其装置 | |
CN103678888B (zh) | 一种基于欧拉流体模拟算法的心脏血液流动示意显示方法 | |
CN103383778A (zh) | 一种三维卡通人脸生成方法和系统 | |
CN104463934B (zh) | 一种“质点‑弹簧”系统驱动的点集模型动画自动生成方法 | |
CN102819630B (zh) | 八叉树粗糙网格投影的快速的烟模拟方法 | |
CN110349268B (zh) | 一种三维人体姿态、表情及手势的重构方法 | |
Yang et al. | Physically-based tree animation and leaf deformation using CUDA in real-time | |
Huang et al. | Sur2f: A Hybrid Representation for High-Quality and Efficient Surface Reconstruction from Multi-view Images | |
Gao | The application of digital media art in film and television animation based on three-dimensional interactive technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |