WOW技术---2, 骨骼动画

本文介绍了魔兽世界骨骼动画的实现,通过分析数据存储方式,发现其利用关键帧优化和相对矩阵减少信息量,实现了从理论上的173.85MB压缩到约2.5MB的高效压缩。3dmax插件在导出时,删除不必要的Scale信息,使用排序法优化Pos和Quat,同时Quat由float压缩为short,确保精度损失较小。
摘要由CSDN通过智能技术生成

  首先是实现的Demo图

根据wowmodelviewer的源码,把数据导成自己的格式,修改了一些bug, 实现的骨骼动画。

骨骼动画的实现还是一个顶点受最多4根骨骼影响, 然后计算出这个顶点在最多4根骨骼下影响的位置,这里没什么特别的东西

不过wow也有一些不同的地方,例如数据存储方面.

 1, 数据存储的优势

       拿这个动画来说,看他骨骼的总时间表,有800000ms, 就是有800s动画,他的骨骼在关键点是33ms存一帧,也就是说理论上也是1s存30帧动画。

假如说全部存取的话, 每根骨骼就是得保持 800 * 30 = 24000 个关键帧信息, 对于每个关键帧信息, 假如说保存 一个Pos, 一个Scale, 一个Quat,

以float类型保存的话,就是一个关键帧信息有 10 * 4 = 40个字节的量, 然后 每根骨骼就得保存40 * 24000 = 0.915MB 数据, 现在有190根骨骼,

0.915MB  * 190 = 173.85MB, 就是说全部保存的话有173.85MB数据! 这个是理论上的情况。

        我按它的数据信息导出,导出的骨骼文件大小是3.47MB, 如图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值