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日

#3#xenoblade

Download history 244/week @ 2024-04-26 5/week @ 2024-05-03 132/week @ 2024-05-17 2/week @ 2024-05-24 124/week @ 2024-06-14 14/week @ 2024-06-21 3/week @ 2024-06-28 17/week @ 2024-07-05 130/week @ 2024-07-19 26/week @ 2024-07-26 2/week @ 2024-08-02

每月 158 次下载

MIT 许可证

1MB
23K SLoC

xc3_wgpu

使用 xc3_model 和 wgpu 的异度之刃Chronicles模型渲染库。


lib.rs:

xc3_wgpu

异度之刃Chronicles模型渲染库。

支持异度之刃1 DE、异度之刃2和异度之刃3,其中异度之刃1 DE接受的最少测试。

入门指南

第一步是初始化一个 [Xc3Renderer]。由于渲染器可以通过屏幕尺寸和参数更改的方法进行更新,因此只需要执行一次。初始大小应与当前窗口尺寸匹配。

模型和地图都从相同的 [xc3_model] 类型加载。着色器数据库是可选的,但将提高渲染精度。

在每一帧中,使用 Xc3Renderer::render_models 渲染 [ModelGroup]。

use xc3_wgpu::{MonolibShaderTextures, Renderer};
use xc3_model::shader_database::ShaderDatabase;

let monolib_shader = MonolibShaderTextures::from_file(&device, &queue, "monolib/shader");
let renderer = Renderer::new(&device, &queue, 1920, 1080, wgpu::TextureFormat::Bgra8Unorm, &monolib_shader);

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

let root = xc3_model::load_model("ch01011013.wimdo", Some(&database))?;
let groups = xc3_wgpu::load_model(&device, &queue, &[root], &monolib_shader);

let roots = xc3_model::load_map("ma59a.wismhd", Some(&database))?;
let groups = xc3_wgpu::load_map(&device, &queue, &roots, &monolib_shader);

动画

骨骼动画应使用 Models::update_bone_transforms 和来自 [xc3_model] 的 Animation 类型。

依赖项

~28–60MB
~863K SLoC