Add dedicated skinned rendering, pose restoration, shared Material and Material Instance slots, registry-driven components, Surface/Solari integration, transactional schema upgrades, navigation authoring, documentation, and evaluation evidence.
25 lines
1.5 KiB
Markdown
25 lines
1.5 KiB
Markdown
# Blacksite Solari Patch Boundary
|
|
|
|
Base: `bevy_solari` 0.19.0.
|
|
|
|
Blacksite-owned changes are deliberately limited to the scene module and dependency manifest:
|
|
|
|
- extract either `MeshMaterial3d<StandardMaterial>` or `MeshMaterial3d<SurfaceMaterial>`;
|
|
- pack the Surface ABI v1 uniform lanes, UV transforms, and eight texture bindings into Solari's
|
|
scene material buffer;
|
|
- rebuild the embedded scene shader library from the active, validated `SurfaceEvaluatorRegistry`;
|
|
- namespace evaluator/helper functions by stable shader ID and use the same evaluator for ray-hit
|
|
shading and cutout candidate acceptance;
|
|
- build shared mesh BLAS geometry as non-opaque so per-instance cutout materials can reject hits;
|
|
- retain standard Bevy materials and reject blended material modes from the ray scene.
|
|
|
|
The `game_hot` bridge owns eligibility and diagnostics. Until an instance-owned post-morph/post-skin
|
|
vertex buffer can feed a dynamic BLAS, it removes `RaytracingMesh3d` from skinned or morphed entities
|
|
and reports them through `deformed_meshes_excluded`. Rigid animated descendants remain supported
|
|
because their geometry is static and their current/previous transforms are already extracted.
|
|
|
|
When rebasing, compare upstream changes only in `src/scene/` first. Preserve the evaluator-registry
|
|
extraction, GPU/WGSL material layouts, non-opaque BLAS flag, and candidate traversal as one atomic
|
|
unit; a layout mismatch can pass Rust compilation but corrupt GPU reads. Validate the generated WGSL
|
|
with Naga and run `cargo test -p game_hot --lib` after every rebase.
|