简介
这个概念出自于动画和游戏行业,由于在这些行业中通常需要给3D模型做动画,比如我们用的是5000个顶点的人脸模型,这个人脸可以做83个表情,那么为了模拟这个人脸的各种表情我们就需要存储5000*83个顶点的位置,非常的耗费空间。而线性蒙皮就是通过线性分解的方式将这些表情分解为多个由骨骼驱动的蒙皮动画,进而节约存储资源。
这里的骨骼可以想象为一个基准点,基准点的运动会带动周围一片的顶点随之运动,而每个基准点都会有一个自己的变换矩阵,可以应用到所有与他相连的顶点。但顶点与基准点之间的关联性也是有区别的,而且有的顶点可能与多个基准点(骨骼)相连,因此在应用变换矩阵的时候会再加一个顶点权重。由此就可以构建出一个基于骨骼的线性模型,用于表示所有表情状况下的顶点位移了。
以下为一个结果展示,白色的就是骨骼点,紫色的就是模型网格:
corrective blendshape-蒙皮修正器
在做蒙皮的过程中总会遇到一些无法通过线性模型完美表达的情况,例如下图:
肘部弯曲时出现了不协调的凹陷,这时候就可以使用corrective blendshape来手动调节成想要的样子,如下图:
当然,并非必须要手动调节,比如在FLAME的论文中,就是定义了三套blendshape,一套是基于下颚,脖子,眼球和姿势的,一套是基于表情的,一套是基于形状的。其中就将第一套称之为pose-dependent corrective blendshape,即基于姿势的蒙皮修正器,意思就是用于修正其他blendshape中无法表达的情况。因为比如眼球的运动,面部其他地方肯定是表达不了的。