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.
1.5 KiB
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>orMeshMaterial3d<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.