1.一种高精度自动骨骼绑定方法,其特征在于,包括以下步骤:
S1:对与建模对象相似的几何体进行标准建模,得到标准骨骼模型,然后对标准骨骼模型进行手动骨骼绑定;所述标准骨骼模型具有顶点;
S2:通过采集设备采集与建模对象相似的几何体的模型,生成一个高面数的精确实物静态模型,作为待绑定的实物模型;
S3:对所述标准骨骼模型和所述精确实物静态模型进行空间匹配:以所述步骤S1所得的标准模型的顶点作为代理骨骼的顶点,对所述精确实物静态模型做代理骨骼权重的精确传递,实现标准骨骼模型对精确实物静态模型的精确控制;
所述的空间匹配实现的方法包括如下步骤:mesh生成、mesh坐标调整、mesh遍历、顶点权重传递、修正平滑权重;
所述mesh生成包括以下步骤:所述采集设备云生成的实物mesh,记为mesh1,已有的标准带骨骼的实物模型mesh,记为mesh2;mesh2的骨骼记为Bone[n],骨骼变换矩阵记为BoneMatrics[n];
所述mesh坐标调整包括以下步骤:将mesh1、mesh2放置在空间的原点(0,0,0)处;
所述mesh遍历包括以下步骤:如果mesh1和mesh2出现交叉重叠,取mesh2的顶点开始遍历,每个顶点搜索其局部坐标空间下,阈值半径r1的球体内,存在mesh1的哪些顶点,将搜索到的顶点的索引放入特定的缓冲,记为vexterIndexBuffer[m],直到遍历完所有mesh2的顶点;每个vexterIndexBuffer[i]中存放了mesh1在阈值半径r1内的mesh1的顶点的索引;所述vexterIndexBuffer[i]为int数组;
所述顶点权重传递包括以下步骤:再次遍历vexterIndexBuffer[m],将
vexterIndexBuffer[m]收集到的顶点逐一传递mesh2对应的顶点的权重;
所述修正平滑权重包括:修正权重:完成权重传递后,由于mesh1的一个顶点被mesh2几个顶点同时包含,在上一步顶点权重传递中会进行距离判定和权重更新,传递权重后的mesh1的顶点上的权重部分可能出现4个Bone的权重之和大于1或者小于1的情况,遍历mesh1的所有顶点,检测顶点4个权重大于1或者小于1的情况,按照读取的权重比例,将4个权重压缩或者放大至4个权重相加之和等于1,使mesh1的显示比例正常;
平滑权重:遍历mesh1的所有顶点,在另一个阈值半径r2的范围内,每两个顶点之间同一个骨骼的权重分配值大于某个阈值a,重新调整这两个顶点当前骨骼权重的分配使其平滑,同时调整当前顶点内其他3个骨骼权重的比例,使其满足4个Bone权重相加等于1。
2.根据权利要求1所述的高精度自动骨骼绑定方法,其特征在于,所述修正平滑权重还包括使用训练过的Deeplearning深度网络对完成顶点权重传递的生成模型进行骨骼权重矫正,使其进一步平滑。
3.根据权利要求2所述的高精度自动骨骼绑定方法,其特征在于,根据情况重复所述修正平滑权重步骤;处理完毕后,平移或者旋转mesh2的骨骼,mesh1的相应部位也会跟着骨骼移动或者旋转,实现mesh2到mesh1的骨骼权重传递。
4.根据权利要求1‑3任一项所述的高精度自动骨骼绑定方法,其特征在于,所述阈值半径r1的值为0.5cm至1cm。