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
每月 158 次下载
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