BS-PR-708 - Dynamic skinned and morph geometry in Solari #54

Open
opened 2026-07-12 22:56:29 -04:00 by Rbanh · 0 comments
Owner

Summary

Add current/previous morph-then-skin vertex output and instance-owned dynamic BLAS updates so Solari rays follow animated skinned and morph-deformed geometry.

Why

Blacksite currently omits deformed actors from Solari rather than tracing a stale bind pose. That fallback is visually honest and production-safe, but full ray-traced reflections/GI/shadows for animated geometry require a dedicated engine/rendering project.

Scope

  • Expose current and previous deformed positions in Bevy's morph-then-skin order.
  • Update instance-owned BLAS only when pose or morph weights change.
  • Reuse static BLAS for rigid hierarchy pieces and paused actors.
  • Preserve raster/Solari Surface ABI parity and cutout behavior.
  • Keep unsupported hardware on the existing Forward path.
  • Measure GPU memory, build/update cost, and frame impact on representative animated fixtures.

Acceptance criteria

  • Ray hits follow a two-bone animated fixture rather than bind pose.
  • Morph-only and combined morph+skin fixtures update correctly.
  • Reflections/GI/shadows follow deformation and cutout alpha.
  • Paused actors stop BLAS updates; rigid pieces reuse static BLAS.
  • Unsupported or failed deformation remains omitted with an actionable diagnostic, never a stale proxy.
  • Current/previous buffers support motion history without corrupting animation playback.
  • GPU memory and update budgets are documented and profiled.
  • Focused renderer tests, live RT captures, and a non-RT fallback pass are committed.

Dependency

Builds on #51 Surface ABI/material bindings and #46 skinned pose lifecycle. This is not required for raster/Forward production readiness; it remains a documented Solari limitation until complete.

## Summary Add current/previous morph-then-skin vertex output and instance-owned dynamic BLAS updates so Solari rays follow animated skinned and morph-deformed geometry. ## Why Blacksite currently omits deformed actors from Solari rather than tracing a stale bind pose. That fallback is visually honest and production-safe, but full ray-traced reflections/GI/shadows for animated geometry require a dedicated engine/rendering project. ## Scope - Expose current and previous deformed positions in Bevy's morph-then-skin order. - Update instance-owned BLAS only when pose or morph weights change. - Reuse static BLAS for rigid hierarchy pieces and paused actors. - Preserve raster/Solari Surface ABI parity and cutout behavior. - Keep unsupported hardware on the existing Forward path. - Measure GPU memory, build/update cost, and frame impact on representative animated fixtures. ## Acceptance criteria - [ ] Ray hits follow a two-bone animated fixture rather than bind pose. - [ ] Morph-only and combined morph+skin fixtures update correctly. - [ ] Reflections/GI/shadows follow deformation and cutout alpha. - [ ] Paused actors stop BLAS updates; rigid pieces reuse static BLAS. - [ ] Unsupported or failed deformation remains omitted with an actionable diagnostic, never a stale proxy. - [ ] Current/previous buffers support motion history without corrupting animation playback. - [ ] GPU memory and update budgets are documented and profiled. - [ ] Focused renderer tests, live RT captures, and a non-RT fallback pass are committed. ## Dependency Builds on #51 Surface ABI/material bindings and #46 skinned pose lifecycle. This is not required for raster/Forward production readiness; it remains a documented Solari limitation until complete.
Rbanh added this to the M7 - Content production and shipping milestone 2026-07-12 22:56:29 -04:00
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Falling-Metal-Interactive/Blacksite#54
No description provided.