[嘭嘭养成记]6. 根据蒙皮权重计算每个骨骼关节的承重

流程

  1. 统计蒙皮模型中,每个三角形所关联到的骨骼列表,以及其三个顶点的累积相关程度;
  2. 对每个骨骼点,计算其所有孩子的相关三角形,到该骨骼点的四面体的带符号的体积并累加。

几个坑

  1. 要做适当的cache……现在的话做了骨骼=>相关联的所有三角形的列表,还是有点慢……3000个面,44个骨骼点,算了有9秒的样子……orz;
  2. 注意计算三角形到骨骼根部的四面体体积之和,乃是一个近似;
  3. 注意在计算“骨骼=>相关联的所有三角形”的时候,有些三角形可能关联到了不在skinnedMeshRenderer.bones的骨骼上。应当把这个关联视作其最直接的父亲上。

效果

这里写图片描述
上图是我的这个模型的计算结果,从图中可以看出,
1. 确实是父亲的体积总要大于孩子的体积的;
2. 有些骨骼的体积是非常小的负数,这应该是因为此方法本身就是个近似的缘故;
3. 总体积亦即最根部的体积(Bip01 Pelvis),大约0.36,这个数值其实是实际体积的3倍(因为三角形三个顶点的权重和都是1),所以据此估计的模型体积是 0.12。美术给出的模型的boundingbox是 0.7*1.3*0.4 = 0.364。
——感觉这个体积还是偏大了。
——可能是因为一些单面的三角形的缘故,比如头发,发丝是单面的,而且还层层叠叠,导致体积被算多了。一些装饰品可能也是单层的,也会导致这个问题。
——不过这个问题在未来预想中的使用场所中,可能不太会存在。到时候应该会使用最简单的那个光头裸模~所以这个问题暂且先不考虑了~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值