Aetheria/Assets/Shaders/Compute
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens fb6062b8c6 Shield panel: gate reuse and Hit on the panel's own radius
The operator's play report on FieldShieldTest ("weak hits are very
janky, clicking outside the hex still makes it tremble and shatter,
pooling seems very rough") traced to two provable defects, not one
tuning constant:

- ShieldPanel.Hit had no bounds check at all. A point handed to it was
  always enqueued and injected regardless of how far outside the
  panel's own panelRadius it was.
- ShieldInterceptor.FindReusable decided reuse from a raw world-space
  chord distance to the panel's stale spawn-time Position, using
  PanelRadius*ReuseFraction (authored up to 2x) as the threshold. On a
  non-uniformly scaled/curved envelope a chord across curvature is not
  the panel's own in-plane extent, so a click clearly outside the
  rendered tiling could still measure inside threshold and get routed
  to Hit() -- which had nothing to reject it.
- Reusing a panel never refreshed its pooled DieAt, so a panel struck
  again could still expire and get returned to the pool mid-fracture
  ("pooling seems very rough").

Fix: ShieldPanel.ContainsWorldPoint is now the one owner of "is this
point within my own radius" (panel-local in-plane distance vs.
panelRadius), used both as Hit's hard gate and as FindReusable's
candidacy test (with ReuseFraction, now capped at 1, narrowing but
never widening past the physical radius). Reuse now also extends
DieAt from the moment of the new hit.

Pinned in ShieldPanelCut3Verify.CheckHitOutsideRadiusDoesNotReachPanel:
a direct Hit() and a routed Absorb() outside a panel's own radius must
enqueue nothing and leave its state buffer untouched, and a genuinely
outside click opens its own panel. Deterministic (checks the pending
queue and no-op state, not temper drift) because breakBudgetFraction
paces fracture over many frames on purpose, so temper keeps drifting
from an earlier hit alone -- a drift-based check would have been
measuring that, not this rule (caught this against the check's own
first run).

All four ShieldPanelCut<N>Verify probes pass (batchmode, real GPU
device, no -nographics).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 21:02:18 +02:00
..
Lightning Move the remaining Assets scripts off Unity.Mathematics 2026-09-14 18:01:54 +02:00
ShieldField Shield panel: gate reuse and Hit on the panel's own radius 2026-09-18 21:02:18 +02:00
Slime Replace the Database Tools with the Studio and cut Unity over 2026-09-14 19:15:20 +02:00
Stardust Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
Lightning.meta Restore the stable legacy Unity project 2026-08-10 14:57:50 +01:00
ShieldField.meta Land the six shield-panel sources, ported to built-in and compiling 2026-09-18 06:08:04 +02:00
Slime.meta Trailer Stuff & More 2021-03-27 10:03:24 +00:00
Stardust.meta Lightning 2021-02-04 04:37:47 +00:00