首先,老规矩:
未经允许禁止转载(防止某些人乱转,转着转着就到蛮牛之类的地方去了)
B站:Heskey0
本文参考的论文连接:
涉及一些光学动捕知识:
https://zhuanlan.zhihu.com/p/371907991
身体肌肉
1.介绍
主流的方法:物理模拟,数据驱动。
本文:物理模拟+数据驱动
- 用物理模拟的方法得到真实的结果
- 使用数据集使模型适配不同的人体(body type)
- 通过骨骼动画信息直接生成皮肤的形变
本文使用mass-spring-damper system对肌肉和软组织系统做数学建模
2.数学模型
使用物理模拟,肌肉带动骨骼,肌肉长度和张力会导致肌肉的鼓起。
本文皮肤模型包括三个子模型:
- Quasi-static muscle model
- Muscle dynamics model
- Soft-tissue dynamics model
2.1 Quasi-static muscle model
表示肌肉鼓起/舒张(主动发生的形变,带动另外两个子模型运动)
- 把肌肉近似为一个纺锤体,与肌肉路径垂直的横截面是一个椭圆,椭圆的大小由sigmoid function定义(sigmoid的参数和椭圆离心率的参数是肌肉长度和张力)
- 翼状的肌肉(例如大胸肌) 横截面不是椭圆,所以使用很多细的纺锤型线进行表示
- 对于不对称的肌肉(例如比目鱼肌),沿着中心拆分成两部分,使用两套不同的sigmoid参数
- \(\theta\) : 横截面的极坐标角度
- \(x\) : pathway(肌肉的中心线),为0代表肌肉起点/终点,为1代表肌肉中心
- \(r_m\) : 肌肉上的点到pathway的距离
- \(m\) : 沿着中心拆分后不同的部分,可以取1,2
- \(t\) : 第t帧
公式:
其中
- \(k_{m,n}(t)\): sigmoid的参数
- \(l(t)\): 肌肉长度
- \(\tau(t)\): 肌肉张力
统计下来,每个肌肉各对应27个参数,参数太多
定义一些概念
为了调整模型参数,提出一个优化问题:肌肉表面到最近markers的距离总和最小
2.2 Muscle dynamics model
Muscle dynamics model: 用mass-spring-damper system描述肌肉被动发生的形变。将质点放在三角网格顶点,然后相邻质点用spring-damper连接,并且质点和quasi-static muscle之间也会使用spring-damper连接。
2.3 Soft-tissue dynamics model
Soft-tissue dynamics model: 用mass-spring-damper system描述皮肤和皮下脂肪的被动发生的形变。
定义一些顶点的集合
Let P^s denote the set of skin vertices, P^qm the vertices on the quasi-static muscle surfaces, P^dm the vertices on the dynamic muscle surfaces, and P^b the vertices on the bone surfaces。
即:
\(P^S\): skin vertex集合
\(P^{qm}\): quasi-static muscle vertex集合
\(P^{dm}\): dynamic muscle vertex集合
\(P^b\): bone surface vertex集合
Skin vertex连接到:
- 相邻的skin vertex
- 以该点为中心的半球中的dynamic muscle vertex,bone vertex(如下图)。半球的半径为\(\alpha+r\),\(\alpha=2.0cm\)代表偏移,为保证半球内有点,半球的最小半径为\(r\)。
Dynamic muscle vertex连接到:
- 相邻的dynamic muscle vertex
- 临近的skin vertex
使用spring-damper pair连接之后,顶点之间的力:
其中:
- \(x,v\): 顶点的位置,速度
- \(x_{ij}=x_j-x_i,,v_{ij}=v_j-v_i\)
- \(k_{ij},c_{ij}\): stiffness系数,damping系数
不同类型的点连接起来的sprint-damper具有不同的参数
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。