3d模型面部自动绑定插件及算法相关研究

本文站在程序的角度介绍了目前对市面上的一些面部骨骼自动绑定方案及算法的一些心得

1.基础知识相关:蒙皮算法

1) 线性混合蒙皮
线性蒙皮公式:线性蒙皮公式 其中Cji代表骨骼变换矩阵(rotation, position,和scale矩阵)。Wi代表第i个顶点的权重,V代表对应的顶点。V`由各个骨骼的累加计算得出。但是线性混合蒙皮会有糖果包装问题,如下图:在这里插入图片描述
2) 四元数蒙皮(会有一些严重的断裂问题,目前unity3d不支持)
四元数蒙皮算法会将位置矩阵和缩放矩阵拆出来计算,而对旋转则采用四元数旋转插值算法来解决(线性插值(向量没有标准化),标准化线性插值(卡顿),球形线性插值(计算量大))。
3) 对偶四元数蒙皮(目前unity3d不支持)
四元数蒙皮算法的升级版,解决了四元数蒙皮的断裂问题。

2.市面的一些面部骨骼绑定插件介绍

tips:一般来说,骨骼越多,对应的骨骼融合插值算法会越复杂,同样出来的效果也会更好。如果由特别好的骨骼融合插值算法另当别论。
1)BonyFace : 3dmax上面的插件,大概由80根骨骼组成
2) ADV:maya上面的插件,看了下应该骨骼数和BonyFace应该没有太大的差别
3)Rig Logic: maya上面的插件,现在unreal的metahuman正是使用的这一套,大概由600多跟骨骼(美术同学说的,没看,可能跟真实有一些差距)。

3.metaHuman的骨骼自动绑定取巧机制(虚幻的超写实数字人插件)

此处不理解的可以跳到下面的BoneFace源码流程解析先了解基础的自动绑定流程
metaHuman的骨骼自动绑定,其实是事先已经由一套完全手工绑定好的骨骼,当生成新的数字人模型时,使用事先的骨骼绑定关系直接映射到现有的新模型上。由于metaHuman的模型都是写实类的模型,所以重定向后对整个面部骨骼的影响很小,可以继续复用原骨骼。这种做法和我现在项目所采用的blendshape重定向方案原理上是一致的。

4.metaHuman 模型技术分析

1 捏脸相关:
目前metahuman提供了三种捏脸方式。1,脸型混合插值;2,五官移动修改; 3,雕刻模式(基因库匹配值,做五官位置匹配)

2 表情驱动维度: 骨骼(大的变形),blendshape(细微的肌肉变化), 面部表情纹理(做表情时皮肤的褶皱)

3 身体:使用了18套预设身体(没有基因库)

4 毛发和皮肤系统

5 Rig Logic 面部绑定求解系统

5.BonyFace源码流程简单分析

市面上的面部自动绑定插件流程基本是统一的,区别是骨骼布局和骨骼之间的分配和约束关系。

bonyFace

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值