一种三维人体模型的骨骼绑定方法_3

文档序号:9788197阅读:来源:国知局
85]步骤2.3.1:读取每一个皮肤控制点所有相邻的三角面;
[0086]步骤2.3.2:求每一个相邻的三角面的法向量s,且其方向为从三维人体模型内向 三维人体模型外;
[0087] 步骤2.3.3:按照向量加法相加得到的最终向量即皮肤控制点所在皮肤近似平面 的法向量n j。
[0088] 步骤2.4:计算每一个筛选域中的皮肤控制点仏与骨骼线段Xk的最短连线lkj和皮 肤控制点仏所在皮肤近似平面的法向量如之间的夹角余弦p kj并填充至其对应的筛选域中。
[0089] 步骤3:对各筛选域中的筛选数据进行筛选,筛选出各筛选域中影响到作为该筛选 域标记的皮肤控制点的骨骼线段;
[0090] 如图3所示,具体步骤如下:
[0091] 步骤3.1:对每一个筛选域中皮肤控制点到各骨骼线段的最短连线lkj的长度dkj进 行修正和更新,利用改进后的欧式距离公式,将皮肤控制点到各骨骼线段的最短连线l kj的 长度dk/进行修正并重新填充入筛选域中;
[0092]改进后的欧式距离公式:
[0094] 其中,免为趋近于0的调节值;
[0095]图8利用改进的欧氏距离公式进行修正皮肤控制点到各骨骼线段的最短连线1!^的 长度dkj的原理,手臂上两皮肤控制点到骨骼线段的距离dl和d2是相同的,但是从生物学角 度上来说该骨骼线段对第一个皮肤控制点影响大于在关节处的第二个皮肤控制点,而在第 一个皮肤控制点处,连线方向向量v 1与皮肤控制点法向量η 1成同一方向,而关节处连线方 向向量ν2与皮肤控制点法向量η2成一定的角度Θ,通过该点不同,将正常的欧式距离通过角 度Θ进行微调放大,就可以通过距离纳入该种生物特性。
[0096] 步骤3.2:对每一个筛选域中的皮肤控制点到各骨骼线段的最短连线lkj进行皮肤 层数判定,得出每一个最短连线lkj所接触或通过的三角面数gkj,如果gkj Ml+ykj),ykj为该 皮肤控制点相邻三角面的数量,则表示皮肤控制点h受到骨骼线段Xk的影响是受到其他皮 肤隔绝的,将含有最短连线lkj的多维向量Fkj从筛选域中剔除;
[0097] 图7所示的是判断皮肤层数的示意图,多次通过皮肤则表示该皮肤控制点不会被 该骨骼影响,认定为错误映射关系。胸侧部皮肤控制点在pose模型为如图情况下距离骨骼 线段2的距离和到骨骼线段1的最短连线的长度分别为dl和d2,显然dl>d2,但考虑到生物学 的特性,骨骼线段2是不会影响到该皮肤控制点的,而d2同时又穿过皮肤层2,通过这一特性 排除点与骨骼线段2之间影响的对应关系。
[0098] 如图4所示,具体步骤如下:
[0099] 步骤3.2.1 :按顺序选取一个筛选域中的多维向量Fkj中的皮肤控制点到各骨骼线 段的最短连线lkj;
[0100] 步骤3.2.2:设一个筛选域中的多维向量Fkj中的lkj通过或接触的三角面数为gkj = 〇;
[0101] 步骤3.2.3 :按顺序选取一个三角面AiBiCi,并将其与lkj进行比较,如果lkj通过三 角面三角面AiBiCi则gkj加1,否则gkj不变;
[0102] 如图5所示,具体步骤如下:
[0103]步骤3.2.3.1:计算出三角面所在平面与lkj所在直线的交点0;
[0104] 步骤3.2.3.2:分别计算出lkj的两个端点到交点0的向量;
[0105] 步骤3.2.3.3:判断vdPv2的方向,如果反向,则跳至步骤3.2.3.4,反之则跳至步骤 3.2.3.7;
[0106] 步骤3.2.3.4 :分别得出Ai到Bi、Ci所成的两个向量a#Pa2,以及Ai到交点0的向量 a3 ;
[0107] 步骤3 · 2 · 3 · 5:得到向量方程a3=Ai+u*ai+v*a2,化方程组并解得u和v的大小,u和v 是该向量方程中向量ai和a2的系数;
[0108] 步骤3.2.3.6:判断u和V是否满足u 2 0、V 2 0且u+v< 1,满足则表明该交点0在该三 角面内,骨骼线段1^通过该三角面,则加1;否则跳至步骤3.2.3.7;
[0109] 步骤3.2.3.7:该交点0不在该三角面上,lkj未通过该三角面,gkj不变。
[011 0] 步骤3.2.4:判断1^是否与所有三角面比较完毕,是则跳至步骤3.2.5,否则跳至步 骤3.2.3;
[0111]步骤3.2.5:如果lkj所接触或通过的三角面数gkj 2 (1+ykj),ykj为该皮肤控制点相 邻三角面的数量,则表示皮肤控制点h受到骨骼线段Xk的影响是受到其他皮肤隔绝的,将含 有lkj的多维向量F kj从筛选域中剔除;否则,跳至步骤3.2.6;
[0112] 步骤3.2.6:判断是否遍历过所有的筛选域h中所有的lkj,并且所有lkj进行过三角 面数量判断,是则跳至步骤3.3,否则跳至步骤3.2.1。
[0113] 步骤3.3 :查找出每一个筛选域中dkj '的峰值,选出当前筛选域中dkj '的峰值的最 小值和最大值,分别设为该筛选域内的最小值dm i η和最大值dmax;
[0114] 步骤3.4:为每一个筛选域设定一个界值P,P = dmin( 1+ε) ε为一个常数,取〇. 005;
[0115] 步骤3.5:将筛选域中每一个多维向量Fkj的dk/与界值P进行比较:如果dk/大于P, 则该多维向量所表示的映射关系是错误的,将该多维向量从筛选域中剔除,否则保留这一 多维向量,每个筛选域中保留的多维向量以及该多维向量所代表的映射关系是正确的,BP 多维向量中的骨骼线段Xk运动影响到作为该筛选域标记的皮肤控制点。
[0116] 如图6所示是利用筛选域的峰值确定界值P,划定影响范围并筛选剔除映射关系的 示意图。
[0117] 步骤4:计算得出每一个皮肤控制点分配给各个骨骼线段的权重数值;
[0118] 步骤4.1:求出骨骼线段Xk与皮肤控制点Dj间映射的权重数值Wkj = l/(lkj F,其中r 2 2,r取值越高越好,并将Wkj值作为骨骼线段Xk与皮肤控制点Dj间映射的权重数值填充入 筛选域Fj中的多维向量Fkj;
[0119] 步骤4.2 :根据对每一个筛选域Fj中的每一个多维向量Fkj中的Wkj通过公式
进行单位化,单位化后的值作为新的骨骼线段Xk与皮肤控制点仏间映射的最终权 重数值,将原Wkj值舍弃删除。
[0120]步骤5:根据骨骼线段对于皮肤控制点的影响程度完成三维人体模型的骨骼绑定。 [0121 ]步骤5.1:建立Μ个序偶数组Qk,每个序偶数组Qk中含有一组元素,元素形式为Qkn (Vkn,Skn),M 2 k 2 0,Vkn为Fkj中的j值,即Vkn表示皮肤控制点的编号,Skn表示k号骨骼线段对 于之前设定好的编号值为η的皮肤控制点的影响程度为S kn,即骨骼线段Xk与皮肤控制点Dj 间映射的权重大小Wkj;
[0122] 步骤5.2:将每一个筛选域中筛选后保留的多维向量Fkj中的皮肤控制点的编号Dj、 骨骼线段Xk与皮肤控制点仏间映射的权重数值W kj填充入序偶数组中;
[0123] 步骤5.4:将序偶数组中的数据输入到三维人体模型文件中的筛选数据的存储结 构中,即完成三维人体模型的骨骼绑定。
【主权项】
1. 一种Ξ维人体模型的骨骼绑定方法,其特征在于,包括W下步骤: 步骤1:获取Ξ维人体模型的几何数据,包括皮肤层数据和骨骼层数据;将网格状的皮 肤层数据划分为Ξ角面群,将树状结构的骨骼层数据进行遍历划分成为骨骼线段组; 步骤2:为Ξ维人体模型的每一个皮肤控制点分别建立筛选域,在每一个筛选域中计算 骨骼线段到皮肤控制点的距离数据、皮肤控制点到骨骼线段的最短连线、皮肤控制点所在 皮肤近似平面的法向量、皮肤控制点到骨骼线段的最短连线或垂线与皮肤控制点所在皮肤 近似平面的法向量间的夹角余弦,并将运些数据作为筛选数据填充至筛选域中; 步骤3:对各筛选域中的筛选数据进行筛选,筛选出各筛选域中影响到作为该筛选域标 记的皮肤控制点的骨骼线段; 步骤4:计算得出每一个皮肤控制点分配给各个骨骼线段的权重数值; 步骤5:根据骨骼线段对于皮肤控制点的影响程度完成Ξ维人体模型的骨骼绑定。2. 根据权利要求1所述的Ξ维人体模型的骨骼绑定方法,其特征在于,所述步骤1按如 下步骤进行: 步骤1.1:读取Ξ维人体模型的皮肤层数据,将网格状的皮肤层数据划分为Ξ角面群, 并存储每一个ミ角面AiBiCi的顶点空间坐标Ai(xia、yia、zia)、Bi(xib、yi
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1