角色动画中带有动力学约束的元球驱动蒙皮方法与流程

文档序号:16269144发布日期:2018-12-14 22:07阅读:277来源:国知局
角色动画中带有动力学约束的元球驱动蒙皮方法与流程

本发明涉及角色动画中带有动力学约束的元球驱动蒙皮方法。

背景技术

角色动画越来越成为人类生活中不可或缺的一部分。随着计算机动画的发展,人们早已不能满足于变形效果差、表现不真实的动画角色带来的体验,如何实现三维角色动画真实自然的表现效果这一话题受到了学术界及工业界的广泛关注。

角色动画的实现过程包含了给定骨骼的绑定和蒙皮这两大重要任务。随着时间的流逝,人们对角色动画的研究不断加深,相继提出了很多关于骨骼绑定、蒙皮的技术。但是没有一种技术是完美的,一种技术具有一方面的优势就会带有另一个方面的劣势。一直以来,人们尝试在角色动画的整个过程的各个阶段寻找更加优良和鲁棒的算法,以期在尽可能短的计算时间下,得到更加令人满意的视觉效果。

在工业界,线性混合蒙皮(lbs)和双四元数蒙皮(dqs)被广泛使用,因为它们可以产生具有良好时间性能的理想变形。但是在某些情况下,lbs和dqs会产生不可避免的伪像,如肘部塌陷、糖果包装效应以及关节膨胀问题。



技术实现要素:

本发明解决的技术问题是:针对角色动画中传统蒙皮方法lbs和dqs虽然速度快但效果不够真实的问题,提出一种角色动画中带有动力学约束的元球驱动蒙皮方法。

本发明实现了角色动画中利用元球实现的一种蒙皮方法,并在表示中引入位置动力学,可以将元球作为物理模型进行处理并生成二次变形,具有很好的实用性。

本发明采用的技术方案为:一种角色动画中带有动力学约束的元球驱动蒙皮方法,步骤如下:

步骤(1)、设置元球,使用一组球来表示使用球形树构建工具包生成的角色,调整每个球的半径,以确保元球的形状准确地对准角色的表面,对网格顶点进行初始化,网格顶点的变形由一般元球变形和由关节球变形两部分组成;

步骤(2)、设置链接,将邻近球之间的弹簧连接成一块肌肉,通过从球的中心到骨骼的终点以及骨骼上的正交投影产生弹簧,球也连接到骨骼上;

步骤(3)、元球的影响,网格顶点根据球的变形而变形,每个球根据其变换为所有受影响的顶点生成新的变形位置,变形的顶点位置是这些结果的加权混合;

步骤(4)、元球变换,在每一帧中,首先计算球的平移和旋转,然后顶点根据球的变形而变形,元球被当作lbs中的网格顶点;

步骤(5)、动力学约束,普通球的位置通过使用pbd的弹簧的弹性来确定,使用正向运动学计算骨骼的位置,并且使用lbs计算作用线的位置,每条线的节点被视为表面顶点;

步骤(6)、顶点变形,蒙皮方法是基于一个旋转不变位移表示,它受拉普拉斯坐标的启发,以保留表面的局部细节,在开始时,存储初始位移,计算完球的变换之后,通过计算一般元球的变形顶点位置,再被使用;

步骤(7)、设置额外的关节球,关节球临近的骨骼以一定权重控制关节球的变换,初始化时分割表面,选择最大权重的骨骼作为每个顶点的主要骨骼,并且只对含有骨骼的部分进行变形;

步骤(8)、优化网格边界,为恢复关节周围形状,首先进行初始化,然后使用局部拉普拉斯坐标作为该区域顶点上的形状保留过滤器来恢复原始几何细节。

进一步地,所述步骤(1)中,初始化网格顶点位置的计算公式为:

与一般球相关的变量用λ表示,与关节球相关的变量用η表示,分别表示一般球和关节球的变形位置,控制不同类球的影响;

给定初始角色表面s,第i个普通球的半径r的计算公式为:

diste(…,…)表示欧几里得距离,表示一般球球心的初始位置。

进一步地,所述步骤(2)中,元球临近的骨骼以一定权重控制元球的变换,权重计算公式为:

distm(..,..)是曼哈顿距离,bj代表骨骼中的第j根骨骼,k控制骨骼的影响。

进一步地,所述步骤(3)中,元球权重wij计算如下:

其中vi是静止姿势中第i个顶点的位置。

进一步地,所述步骤(4)中,元球作为lbs中的网格顶点,在获得一般球的新位置计算如下:

其中m是骨骼的数量,tj表示第j根骨骼的变换矩阵。

进一步地,所述步骤(5)中,考虑到元球的不规则拓扑结构,只对弹簧施加拉伸约束,对弹簧进行拉伸约束的约束函数为:

其中d表示该对球之间的初始距离。

进一步地,所述步骤(6)中,元球顶点位置计算公式为:

其中n是所有一般球的数量,表示正常球的旋转矩阵。

进一步地,所述步骤(7)中,关节球初始权重计算公式为:

其中表示关节球重心的位置,代表关节球的最小半径;

关节球变形位置计算公式为:

其中表示一般球重心的位置,表示关节球的旋转矩阵。

进一步地,所述步骤(8)中,在初始化时,通过如下公式计算重心和每个顶点的局部位移

其中s(i)表示包含邻居顶点的第i个顶点的索引集合,n表示其邻居的数量;

局部形状保留过滤器来恢复原始几何细节的计算公式为:

其中用于控制过滤强度。

与现有技术相比,本发明的优点和积极效果在于:

(1)本发明提出的元球蒙皮模型,角色的变形依赖于表面下的球的变换。附加的关节球提高了关节周围的变形。这种方法减少了lbs和dqs中的出现的问题,如糖果包装效果和关节膨胀问题;

(2)本发明采用元球模型,与现有的蒙皮或变形方法相比,本发明的模型更容易处理元球之间的碰撞检测,轻松处理关节周围的表面重叠问题,并产生肌肉膨胀效应。本发明能够创建逼真的模型并适用于实时应用。

附图说明

图1为本发明方法的处理流程图;

图2为本发明弹簧连接骨骼或作用线示意图;

图3为本发明人体作用线示意图;

图4为本发明一般球作用于网格顶点示意图;

图5为本发明元球旋转计算示意图;

图6为本发明关节球影响示意图;

图7为本发明表面重叠问题——投影到内部表面示意图;

图8为本发明表面重叠问题——投影到平面示意图;

图9为cpu和gpu所用时间对比示意图;

图10为人体和穿山甲模型蒙皮效果示意图。

具体实施方式

本发明涉及一种角色动画中带有动力学约束的元球驱动蒙皮方法,将元球模型放置在角色皮肤表面内,利用嵌入的球体使皮肤变形。采用了位移表示和拉普拉斯坐标来保存角色的局部细节。为了改善关节周围的变形,设计了更多的关节球和特定的混合方案,可以减少传统蒙皮方法lbs和dqs中的肘关节塌陷,糖纸效应和关节膨胀等问题。另外,本发明创新地将元球模型与动力学约束相结合,产生角色动画的次级变形。将位置动力学(pbd)引入表示中后,可将元球作为物理仿真单元进行处理,并生成角色表面的次级变形。此外,元球模型可以轻松解决关节周围的表面重叠问题。

本发明包括:(1)、设置元球,使用一组球来表示使用球形树构建工具包生成的角色。调整每个球的半径,以确保元球的形状准确地对准角色的表面。对网格顶点进行初始化,顶点的变形由两部分组成:由一般元球变形和由关节球变形。(2)、设置链接。为了模仿人体内的组织行为,将邻近球之间的弹簧连接成一块肌肉。通过从球的中心到骨骼的终点以及骨骼上的正交投影产生弹簧,球也连接到骨骼上。为了保证时间性能,采用了位置动力学(pbd)来计算物理交互作用;(3)、元球的影响。网格顶点根据球的变形而变形。每个顶点是由一定数量的正常球附近的。每个球根据其变换为所有受影响的顶点生成新的变形位置。变形的顶点位置是这些结果的加权混合;(4)、元球变换。在每一帧中,首先计算球的平移和旋转。然后顶点根据球的变形而变形。元球被当作lbs中的网格顶点;(5)、动力学约束。普通球的位置通过使用pbd的弹簧的弹性来确定。使用正向运动学计算骨骼的位置,并且使用lbs计算作用线的位置,每条线的节点被视为表面顶点。考虑到元球的不规则拓扑结构,只对弹簧施加拉伸约束;(6)、顶点变形。蒙皮方法是基于一个旋转不变位移表示,它受拉普拉斯坐标的启发,以保留表面的局部细节。在开始时,存储初始位移,计算完球的变换之后,通过计算一般元球的变形顶点位置,再被使用;(7)、设置额外的关节球。同样,关节球临近的骨骼以一定权重控制关节球的变换。初始化时分割表面,选择最大权重的骨骼作为每个顶点的主要骨骼,并且只对含有骨骼的部分进行变形;(8)、优化网格边界。为恢复关节周围形状,首先进行初始化,然后使用局部拉普拉斯坐标作为该区域顶点上的形状保留过滤器来恢复原始几何细节。

下面结合附图及具体实施方式对本发明进行详细地说明。

图1给出了一种角色动画中带有动力学约束的元球驱动蒙皮方法的处理流程,本发明提供了一种角色动画中带有动力学约束的元球驱动蒙皮方法,包括:

1、使用元球的初始变形

首先需要设计一种方法来计算每个球在元球模型中的位置和角色旋转。由于缺少骨架层次结构,可变形物体的原始元球模型无法正确生成关节周围的真实变形。将这些球作为普通球命名为原始模型。与正常球有关的变量用λ表示,与关节球有关的变量用η表示。初始化网格顶点位置:

分别表示一般球和关节球的变形位置,控制不同类球的影响。

给定初始角色表面s,第i个普通球的半径r的计算公式为:

diste(…,…)表示欧几里得距离,表示一般球球心的初始位置。

为了模仿人体内的组织行为,将邻近球之间的弹簧连接成一块肌肉。如图2所示,通过从球的中心到骨骼的终点以及骨骼上的正交投影产生弹簧,球也连接到骨骼上。为了保证时间性能,我们采用了pbd来计算物理交互作用。元球的变换由临近的骨骼以一定权重影响,权重计算公式为:

distm(..,..)是曼哈顿距离,bj代表骨骼中的第j根骨骼,k控制骨骼的影响。

网格顶点根据球的变形而变形。球的运动轨迹如图3所示。每个顶点是由一定数量的普通球附近的,如图4所示。每个元球根据其变换为所有受影响的顶点生成新的变形位置。变形的顶点位置是这些结果的加权混合。元球权重wij计算如下:

其中vi是静止姿势中第i个顶点的位置。

每一帧中,首先计算球的平移和旋转。元球旋转如图5所示。然后顶点根据球的变形而变形。元球作为lbs中的网格顶点,在获得正常球的新位置计算如下:

其中m是骨骼的数量,tj表示第j根骨骼的变换矩阵。

普通球的位置通过使用pbd的弹簧的弹性来确定。使用正向运动学计算骨骼的位置,并且使用lbs计算作用线的位置,每条线的节点被视为表面顶点。考虑到元球的不规则拓扑结构,对弹簧进行拉伸约束的约束函数为:

其中d表示该对球之间的初始距离。

蒙皮方法是基于一个旋转不变位移表示,它受拉普拉斯坐标的启发,以保留表面的局部细节。开始时,存储初始位移在球的变换计算完之后,元球顶点位置计算公式为:

其中n是所有一般球的数量,表示正常球的旋转矩阵。

2、使用关节球变形

通过正常的球变形可以在骨骼上方的区域产生可接受的视觉效果,但是当骨骼扭曲时无法避免关节周围的体积损失。主要原因是正常球的旋转,关节突变,两个连接的骨骼之间不会发生过渡。为了解决这个问题,将额外的关节球带入我们的元球模型中。关节球影响如图6所示。

每个球至少连接一根骨头,并且对每根连接的骨头均有影响。权重在顶点超出关节球范围时为零,若顶点在该范围内,关节球初始权重计算公式为:

其中表示关节球重心的位置,代表关节球的最小半径。

使用与一般球相同的方案来计算关节球的旋转。关节球变形位置计算公式为:

其中表示一般球重心的位置,表示关节球的旋转矩阵。

3、混合过程

元球自身有碰撞检测的特点,可解决表面重叠问题,如图7、图8所示。为了恢复关节周围的形状,使用局部拉普拉斯坐标作为该区域顶点上的形状保留过滤器。

在初始化时,需要计算重心和每个顶点的局部位移

其中s(i)表示包含邻居顶点的第i个顶点的索引集合,n表示其邻居的数量。

每个一般球具有唯一的旋转矩阵,并且在这些有影响的球之间用球面平均在每帧处计算局部位移的旋转矩阵。局部形状保留过滤器来恢复原始几何细节的计算公式为:

其中用于控制过滤强度。

实验使用的设备为nvidiageforcegt720、intel(r)core(tm)i5-6400cpu(2.71ghz,8gbram),运行在windows764位系统上。

实验模型有三种:人体,玩偶,穿山甲。实验的性能如表1所示。图9为本方法cpu和gpu所用时间对比示意图,图10为蒙皮实验的效果图,对人体模型和穿山甲模型分别应用本发明中所述的带有动力学约束的元球驱动蒙皮方法,得到五种不同姿势的变形结果,并据此可以看出该蒙皮算法能够针对不同类型的对象得到比较真实自然的变形效果,具有很好的鲁棒性。

表1不同模型的性能表现

从表1可以看出,模型顶点数越多,其对应网格数量及弹簧数量、元球数量也就越多。

综上,(1)本发明提出的这种用于角色连接的基于元球的蒙皮方法,与现有的几何蒙皮方法相比,方法具有动态特性,无需二次变形就可以实现。整个算法在效率和效果之间达到了比较好的平衡。(2)设计额外的关节球来改善关节周围的变形。扩展的元球模型可以轻松减少lbs和dqs中的肘关节塌陷,糖果包装效应和关节膨胀等伪像。(3)利用元球的继承特征进行碰撞检测,可以有效处理蒙皮中的表面重叠问题。

以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1