Expand description
§xc3_wgpu
A Xenoblade Chronicles model rendering library.
Xenoblade 1 DE, Xenoblade 2, and Xenoblade 3 are all supported with Xenoblade 1 DE receiving the least testing.
§Getting Started
The first step is to initialize an Xc3Renderer. This only needs to be done once since the renderer can be updated using methods as screen size and parameters change. The initial size should match the current window dimensions.
Models and maps are all loaded from the same xc3_model types. The shader database is optional but will improve rendering accuracy.
In each frame, render the ModelGroup using Xc3Renderer::render_models.
use xc3_wgpu::{MonolibShaderTextures, Xc3Renderer};
use xc3_model::shader_database::ShaderDatabase;
let monolib_shader = MonolibShaderTextures::from_file(&device, &queue, "monolib/shader");
let renderer = Xc3Renderer::new(&device, &queue, 1920, 1080, &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_model(&device, &queue, &roots, &monolib_shader);
§Animation
Skeletal animations should use [Models::update_bone_transforms] and the Animation type from xc3_model.
Structs§
- Textures and resources from the game’s
monolib/shader
folder.
Enums§
Constants§
- The format used for the final RGBA render pass. Applications should use this format when integrating the renderer.
- The format used for depth textures for depth testing.
- The features required by the renderer.
- The format used to store each of the G-Buffer textures for deferred rendering.