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
210 个月下载量
用于 xc3_wgpu
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