首页 / 绑定 / 【赤石科技】一个关于用魔兽的等权矩阵,还原现代蒙皮权重的小巧思

加精 【赤石科技】一个关于用魔兽的等权矩阵,还原现代蒙皮权重的小巧思

三水
2026/7/28 14:51:26 · Lv.1
274 浏览 3 评论 0 赞
如你所见,这是一个【赤石科技】,它对你可能有用,但是有用不太可能。(如果你完全看不懂我在说什么,那就说明这个技术足够赤石。)
用魔兽的等权矩阵,还原现代蒙皮权重
大家好,今天简单介绍一下,我们是怎样把现代模型的蒙皮权重转换成魔兽能够读取的形式。 现代蒙皮可以直接分配比例。比如一个顶点受到两根骨骼影响,可以设置为 A 骨骼 75%,B 骨骼 25%。 但魔兽经典 MDX 不直接保存这种百分比。它使用的是等权矩阵组:一个顶点先通过 GNDX 指向某个矩阵组,MTGC 记录这个组有几个槽位,MATS 再记录这些槽位对应的骨骼编号。魔兽会把组内所有槽位平均计算,每个槽位的权重都相同。 即:2骨骼=50%、3骨骼=33%、4骨骼=25%。以此类推
01-开场-为什么需要转换
01-开场-为什么需要转换
我们的解决办法,就是把现代权重转换成等权份数。 例如 A 骨骼 75%、B 骨骼 25%,我们会在 MATS 中写成:A、A、A、B 这里一共有四个槽位,每个槽位都是 25%。A 重复三次,所以最终占 75%;B 出现一次,所以占 25%。
02-对比-现代蒙皮与魔兽等权
02-对比-现代蒙皮与魔兽等权
魔兽能够这样计算,是因为 MATS 保存的是骨骼编号列表,而不是百分比表。同一个骨骼编号可以重复占用多个槽位。我们正是利用这一点,用“重复次数”表达原来的权重比例。
03-方法-百分比转重复槽位
03-方法-百分比转重复槽位
我们的正式方案规定,每个矩阵组最多使用 8 个槽位。能够用 8 份以内表示的比例,可以准确还原;不能完全整除的比例,就选择误差最小的近似结果。
04-原理-MDX矩阵写入结构
04-原理-MDX矩阵写入结构
另外,每个 Geoset 最多使用 256 个矩阵组,因为每个顶点的 GNDX 只有一个字节,只能记录 0~255。如果不同权重组合太多,我们会在这个上限内选择最接近原始权重的矩阵组。 整个过程只改写 GEOS 中的 GNDX、MTGC、MATS 矩阵绑定,不修改骨骼动画、动作序列和模型结构。
05-限制-八槽位与256组
05-限制-八槽位与256组
简单来说,我们做的不是重新制作蒙皮,而是把现代模型的“百分比权重”,翻译成魔兽能够理解的“等权矩阵槽位”,在旧格式限制内尽量保留原来的变形效果。
06-总结-权重翻译
06-总结-权重翻译
分割线
以上就是全部内容。我还会带来更多的赤石科技! (AI做的演示流程图,感觉还是官腔很重,大家凑合看。)

评论 (3)

登录后 登录 才能发表评论。

三水
2026/7/28 17:55:05
其实简单的来说,拆解老引擎的一些底层,也能看出来游戏引擎发展技术的一些发展史了。
三水
2026/7/28 15:30:15
我嘞个雷霆大水印啊
霍霍小猫
2026/7/28 14:53:41
🎉🎉🎉