基于几何变形的三维动画角色模型皮肤变形方法
【专利摘要】本发明涉及一种基于几何变形的三维动画角色模型皮肤变形方法,包括步骤:根据初始角色模型的骨架结构,将初始角色模型划分为关节区域和骨骼区域,并手动标定骨骼区域间的变形控制点;根据用户设定的形体缩放参数以及标定的变形控制点,基于自由变形技术对初始角色模型的骨骼区域进行几何变形操作;在几何变形后,调整关节对顶点的影响权重;根据关节对关节区域和骨骼区域上顶点的影响权重,采用双四元数法驱动角色模型进行平移和旋转运动,生成生动逼真的皮肤变形效果。本发明能够处理模型动作幅度较大时引起的坍塌、形状爆炸等缺陷,在保证实时性的同时获得更加真实的皮肤变形。
【专利说明】基于几何变形的三维动画角色模型皮肤变形方法
【技术领域】
[0001]本发明属于计算机动画和计算机图形学【技术领域】,具体涉及基于几何变形的三维动画角色模型皮肤变形方法。
【背景技术】
[0002]随着计算机硬件技术以及计算机软件技术,尤其是图形图像技术的发展,三维角色动画技术在影视动画、娱乐游戏、远程教育和军事仿真等领域得到广泛应用。皮肤变形技术作为三维角色动画的一个重要部分,是计算机图形学中最有难度和挑战性的研究课题之一,主要有两个原因:(I)人体本身的结构非常复杂,在生物力学和图形学领域都尚未出现能够完全逼近并仿真人体皮肤的模型;与此同时,人类对自身的形状非常敏感,很容易观察到人体皮肤的失真变形。(2)实时性和真实感之间相互制约,为了获得高度真实感的皮肤变形,需要建立复杂的人体模型,并进行大量物理计算,从而影响了变形算法的效率,难以达到实时性;反之,为了获得实时性,往往要采用简单的人体模型和简化的算法,其代价是降低了皮肤变形的真实感。然而实际上,在游戏、动画和虚拟仿真环境等许多应用中,需要同时满足真实感和实时性两个要求,这是皮肤变形技术研究的一大挑战。
[0003]目前按照变形所采用的方法,可将现有的皮肤变形方法分为两大类:
[0004]第一类是基于几何的皮肤变形。这类方法不考虑人体的物理属性,纯粹利用几何方法进行人体建模和皮肤变形。这类方法一般将角色模型分为两个层次:第一层为骨架层,按照角色身体的层次关系排列,形成角色动画系统的基础;第二层为皮肤层,由多边形或曲面组成的表面模拟皮肤的几何外形。皮肤层包裹在骨架周围,其变形由底层的骨架驱动。这类方法具有简单、快速的特点,但由于较少考虑生物解剖结构,对复杂的运动状态或变形强度大的角色不能适用,对于表现物理真实性角色的运动效果不是很好。
[0005]第二类是基于物理的皮肤变形。这类方法针对人体内部组织进行几何建模,然后根据质量、刚度等物理和属性建立物理模型,建立力学方程,得到人体皮肤的物理变形。这类方法能够获得视觉真实感和物理真实感的双重逼真效果;然而,人体结构的复杂性和物理计算的繁琐,使得这类模型的计算速度非常慢,即使最新的高度优化的算法也不能达到实时性。
【发明内容】
[0006](一 )要解决的技术问题
[0007]本发明的目的是提供一种基于几何的虚拟角色模型皮肤变形的方法,使其在复杂的运动状态或变形幅度较大时不易发生褶皱、穿插等错误,呈现形变速度快、质量高等运动效果。
[0008]( 二 )技术方案
[0009]为了实现上述目的,本发明提供了一种基于几何变形的三维动画角色模型皮肤变形方法,其包括如下步骤:[0010]步骤1:根据初始角色模型的骨架结构,将初始角色模型划分为关节区域和骨骼区域,并手动标定骨骼区域间的变形控制点;
[0011]步骤2:根据用户设定的形体缩放参数以及标定的变形控制点,基于自由变形技术对初始角色模型的骨骼区域进行几何变形操作;
[0012]步骤3:在几何变形后,调整关节对顶点的影响权重;
[0013]步骤4:根据关节对关节区域和骨骼区域上顶点的影响权重,采用双四元数法驱动角色模型进行平移和旋转运动,生成生动逼真的皮肤变形效果。
[0014](三)有益效果
[0015]本发明针对虚拟角色动画提出了一种新的角色模型制作及其皮肤变形方法,将离线优化处理与在线实时计算相结合,克服了传统基于几何的皮肤变形方法在复杂的运动状态或变形幅度较大时易发生畸变等缺点。本发明能够在保证实时性的同时获得与基于物理的变形方法相似的皮肤变形效果,提高了三维角色动画制作效率和互动应用体验的真实性。
【专利附图】
【附图说明】
[0016]图1是本发明中基于几何变形的三维动画角色模型皮肤变形方法的基本流程图。
[0017]图2是本发明的模型骨骼区域控制点的示意图。
[0018]图3是本发明的模型区域划分流程图。
[0019]图4是本发明的小腿模型划分的效果图,为膝关节区域和小腿骨骼区域。
[0020]图5是本发明的几何变形流程图。
[0021]图6是本发明的小腿自由变形Bezier控制体的包围体。
[0022]图7是本发明的皮肤权重调整流程图。
[0023]图8是本发明的热平衡计算的结果图。
[0024]图9是本发明的驱动模型运动流程图。
[0025]图10是本发明在扭曲幅度较大时与常规方法的比较图。
[0026]图11是本发明在拉伸幅度较大时的效果图。
【具体实施方式】
[0027]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
[0028]图1示出了本发明提出的基于几何变形的三维动画角色模型皮肤变形的方法流程图。如图1所示,该方法主要分为四个基本步骤:
[0029](I)模型预处理步骤:根据初始模型的骨架结构,将模型划分为关节区域和骨骼区域,并手动标定骨骼区域的变形控制点;
[0030](2)几何变形步骤:根据用户设定的形体缩放参数,基于自由变形技术对模型的骨骼区域进行拉伸等几何变形操作;
[0031](3)权重调整步骤:模型几何变形后,模型关节区域的顶点相对关节位置发生变化,重新计算该区域顶点的权重;
[0032](4)驱动模型运动步骤:在模型完成几何变形和皮肤权重调整后,采用双四元数法驱动模型进行平移和旋转运动,生成生动逼真的皮肤变形效果。
[0033]下面详细说明每个步骤。
[0034](I)模型预处理步骤中:根据初始模型的骨架结构,将模型划分为关节区域和骨骼区域,并手动标定骨骼区域的变形控制点。变形控制点是在模型的骨骼区域上,沿骨骼轴向选定的一系列控制点,用于几何变形中轴向形变量的计算。图2中深色区域为小腿骨骼区域,而黑色圆点即为其变形控制点。
[0035]初始模型为网格模型,且网格内部绑定了由关节和骨骼组成的骨架结构。骨架结构表示人体的基本结构,常用树状层次结构来表示;网格模型位于骨架结构外部,由三角形面片或四边形构成。动画师使用建模软件给网格模型的每一个顶点关联一组骨骼,并设定表示骨骼对该顶点影响大小的权重。这样,当骨架结构运动时,驱动外部的网格模型,使其发生变形。
[0036]图3示出了本发明中根据初始模型的骨架结构进行模型区域划分的方法步骤流程图。如图3所示,模型区域划分步骤包括以下步骤:
[0037]步骤11,根据骨架结构的关节位置,确定各关节的中心截面及组成中心截面的模型顶点。本发明在确定关节中心截面时,采用了法平面求交的算法,具体步骤是:以关节位置为原点,以骨骼轴向为法向量建立法平面;求出法平面与网格模型的相交线段;顺序连接这些线段即可得到中心截面。线段的顶点即为组成中心截面的模型顶点。
[0038]步骤12,沿骨骼轴向分别向上、向下移动中心截面,平移量优选为骨骼长度的I /10,采用步骤11中的法平面求交方法确定关节两侧的边界截面及组成边界截面的模型顶
占.[0039]步骤13,确定关节两侧的边界截面组成的区域为关节区域,两个关节间相邻的两个边界截面组成的区域为骨骼区域。
[0040]图4相应地展示了本发明中定义的膝关节区域和小腿骨骼区域。如图4所示,骨骼区域为边界截面之间的区域,关节区域为关节中心横截面沿轴向上、下平移后边界截面之间的区域。
[0041](2)几何变形步骤中:根据用户设定的形体缩放参数,基于自由变形技术对模型的骨骼区域进行拉伸等几何变形操作。
[0042]图5示出了本发明中几何变形的步骤流程图。如图5所示,几何变形步骤具体包括:
[0043]步骤21:接受用户设定的骨骼区域形体缩放参数,如腰围,身高等;
[0044]步骤22:针对用户指定的骨骼区域,创建包含骨骼区域中模型网格体的轴对齐包围盒,即与模型的坐标轴对齐的长方体,其为包含该模型网格体的最小矩形,矩形的各个边与模型的坐标轴平行;模型的坐标轴为建立初始模型时设定的坐标系下的坐标轴;
[0045]步骤23:针对骨骼区域上的顶点,计算每个顶点在轴对齐包围盒中相应的局部坐标;所述骨骼区域上的顶点即为骨骼区域中模型网格体上网格交叉顶点;
[0046]步骤24:根据用户设定的形体缩放参数,建立两类形变函数,分别用于轴向、径向形变量的计算;
[0047]步骤25:利用两类形变函数对骨骼区域顶点进行空间变换,得到形变后各个顶点的坐标位置;这样每个顶点的空间位置会相应地发生改变,从而实现了对物体的变形操作。[0048]本发明使骨骼区域顶点沿其法向量方向移动,在形变过程中,不会对光照效果和角色蒙皮进行额外的计算。由于它的高效性,使其对于实时应用非常合适。
[0049]令M为某个骨骼区域,区域上的顶点集定义如下:
【权利要求】
1.一种基于几何变形的三维动画角色模型皮肤变形方法,其包括如下步骤: 步骤1:根据初始角色模型的骨架结构,将初始角色模型划分为关节区域和骨骼区域,并手动标定骨骼区域间的变形控制点; 步骤2:根据用户设定的形体缩放参数以及标定的变形控制点,基于自由变形技术对初始角色模型的骨骼区域进行几何变形操作; 步骤3:在几何变形后,调整关节对顶点的影响权重; 步骤4:根据关节对关节区域和骨骼区域上顶点的影响权重,采用双四元数法驱动角色模型进行平移和旋转运动,生成生动逼真的皮肤变形效果。
2.根据权利要求1所述基于几何变形的三维动画角色模型皮肤变形方法,其特征在于:所述步骤I中的初始模型为网格模型,且网格内部绑定了由关节和骨骼组成的骨架结构;骨架结构表示人体的基本结构;网格模型位于骨架结构外部,由三角形面片构成;网格模型与骨架结构之间按照特定的规则建立约束关系,当骨架结构运动时,驱动外部的网格模型,使其发生变形。
3.根据权利要求1所述的基于几何变形的三维动画角色模型皮肤变形方法,其特征在于:所述步骤I中区域划分具体包括: 步骤11:根据初始模型骨架结构的关节位置,采用法平面求交法确定关节的中心截面及组成截面的模型顶点; 步骤12:沿骨骼轴向分别向上、向下移动中心截面,采用步骤11中的法平面求交方法确定关节两侧的边界截面及组成截面的模型顶点; 步骤13:确定关节两侧的边界截面组成的区域为关节区域,两个关节间相邻的两个边界截面组成的区域为骨骼区域。
4.根据权利要求1所述的基于几何变形的三维动画角色模型皮肤变形方法,其特征在于:所述步骤2中所述自由变形过程中采用轴对齐包围盒进行几何变形操作。
5.根据权利要求1所述的基于几何变形的三维动画角色模型皮肤变形方法,其特征在于: 所述步骤2具体包括如下步骤: 步骤21:接受用户设定的骨骼区域形体缩放参数; 步骤22:针对用户指定的骨骼区域,创建包含骨骼区域的模型网格体的轴对齐包围盒; 步骤23:针对骨骼区域上的顶点,计算每个顶点在轴对齐包围盒中相应的局部坐标;步骤24:根据用户设定的形体缩放参数,建立分别用于计算骨骼区域顶点的轴向、径向形变量的两类形变函数; 步骤25:利用所建立的两类形变函数对骨骼区域顶点进行空间变换,得到变形后骨骼区域中各个顶点的坐标。
6.根据权利要求1所述基于几何变形的三维动画角色模型皮肤变形方法,其特征在于:所述步骤3中仅调整关节对关节区域顶点的影响权重,关节对骨骼区域顶点的影响权重不变。
7.根据权利要求6所述基于几何变形的三维动画角色模型皮肤变形方法,其特征在于:步骤3具体包括:步骤71:假设角色模型为绝缘热导体,对角色模型表面建立热平衡方程; 步骤72:利用稀疏线性系统分解及回代法求解所述热平衡方程,得到影响关节区域顶点的每个关节的权重。
8.根据权利要求1所述基于几何变形的三维动画角色模型皮肤变形方法,其特征在于:所述步骤4具体包括如下步骤: 步骤81:将模型运动数据中关节的矢量位移和旋转转化为双四元数表示; 步骤82:采用双四元数法得到顶点相关的关节运动数据的双四元数,进而根据关节对顶点的影响权重,得到表示顶点运动变换的双四元数; 步骤83:将表示顶点运动变换的双四元数转换为变换矩阵,对顶点进行平移和旋转运动,生成生动逼真的皮肤变形效果。`
【文档编号】G06T13/40GK103679783SQ201310491792
【公开日】2014年3月26日 申请日期:2013年10月18日 优先权日:2013年10月18日
【发明者】蒋永实, 朱晓阳 申请人:中国科学院自动化研究所, 常州科学与艺术融合技术研究所