11个重大版本

0.12.0 2024年8月16日
0.11.0 2024年7月19日
0.10.0 2024年6月18日
0.7.0 2024年3月15日
0.2.0 2023年11月22日

#236 in 图形API

Download history 276/week @ 2024-04-27 3/week @ 2024-05-04 91/week @ 2024-05-11 45/week @ 2024-05-18 6/week @ 2024-05-25 1/week @ 2024-06-01 1/week @ 2024-06-08 131/week @ 2024-06-15 6/week @ 2024-06-22 41/week @ 2024-06-29 73/week @ 2024-07-13 56/week @ 2024-07-20 18/week @ 2024-07-27 63/week @ 2024-08-10

210 个月下载量
用于 xc3_wgpu

MIT 许可证

1MB
19K SLoC

xc3_model

xc3_model是xc3_lib的高级库。

xc3_model为处理模型、纹理、材质和动画提供了一个简单、标准化的接口。所有支持的游戏版本的模型和地图都被转换为同一组类型。这大大减少了应用程序和库在游戏中处理模型所需的代码量。

xc3_model对将数据转换回xc3_lib类型以支持将更改保存到磁盘有限制。目标是生成的文件结构在游戏中的功能等效,即使由于简化假设或改进跨游戏兼容性的调整导致数据略有变化。

xc3_model的Python绑定可通过xc3_model_py获得。


lib.rs:

xc3_model

xc3_model为构成模型的文件提供高级数据访问。

每个类型代表与一个或多个[xc3_lib]类型相关联的完全压缩和解码数据。这简化了访问模型数据所需进行的处理,并抽象掉了大多数游戏特定的复杂性。

入门

加载正常模型返回单个[ModelRoot]。加载地图返回多个[ModelRoot]。每个[ModelRoot]都有自己的图像集。

[ShaderDatabase]是可选的,并提高了纹理和材质分配的准确性。

use xc3_model::shader_database::ShaderDatabase;

let database = ShaderDatabase::from_file("xc3.json")?;

let root = xc3_model::load_model("ch01011013.wimdo", Some(&database))?;
println!("{}", root.image_textures.len());

let roots = xc3_model::load_map("ma59a.wismhd", Some(&database))?;
println!("{}", roots[0].image_textures.len());

依赖项

~23MB
~298K SLoC