Grandpa
July 7th, 2010
Grandpa是一个精巧,高效而且功能强大的跨平台骨骼动画库。
主要特性:
- 动画
- 任意数量的动画以任意权重混合
- 自动动画间过渡
- 动画任意速度播放,正放,倒放,往复,循环
- 动画优先级控制
- 动画同步(用以支持例如走,跑动画任意比例融合)
- 骨骼反向动力学控制(IK)
- 灵活的回调机制,使用户在任意时间都可以拥有对骨骼的完全控制
- 支持用户自定义动画事件,用户可以方便在动画任意时间点添加音效,特效以及其他任意事件的触发
- 多种动画实时采样方式:单步(仅关键帧),线性,三次样条插值(和Max一样的非线性插值效果)
- 模型
- 支持任意顶点格式组合,支持任意纹理坐标层数
- 支持模型子材质(即一个mesh多个材质)
- 基于视差的预生成模型LOD,用户只要设置可接受的最大视觉误差,Grandpa自动选择相应的LOD级别
- 材质
- Grandpa是渲染无关的,但提供常用的渲染参数给渲染层。如果不能满足需求,用户也完全可以采用自己的材质系统
- 数据文件
- 基于Chunk的数据存储方式,用户可以嵌入自定义的Chunk结构而不影响Grandpa正常读取
- 比zip更有效的数据压缩(仍然可以用zip,rar,7z等进一步压缩),最大限度节省了硬盘空间和网络带宽
- 用户通过设置可接受的最大误差来控制文件压缩率
- 模型/部件/材质描述文件采用基于Xml的格式,方便阅读和人工修改
- 接口
- 不依赖c++标准库以外的任何程序库,不对用户采用的渲染API,空间坐标系类型,欧拉角轴序或模型尺寸单位等做任何假设
- 自带完整3d数学库,用户可以使用Grandpa作为构建引擎的基础
- 可重载的内存分配,文件读取,资源管理和日志记录模块。用户可以监控Grandpa的内存使用;重定向Grandpa的文件输入到封包文件甚至http下载