fix(mesh): distinct anchor assignment -- no two resources may claim one buffer
Selection was per-resource and greedy, so two resources could take one vertex buffer while a valid one sat unused. A runtime capture proved that wrong for the mirrored e106 hull twins: the container holds both halves and the engine draws each from its own address. Now the first claimant keeps a buffer and later resources re-anchor past everything already claimed (coverage can never regress; grouped-pool models untouched). Against the 46 capture-named Stage_S02 buffers: exact anchors 29 -> 40, unclaimed 12 -> 4. Disc-wide: 5480 resources decoded (unchanged), cross-container inconsistency 125 -> 46. The twins' mirror therefore lives in the DATA, not in the placement matrix: the embedded e106_bdy_02 row and the two assertions encoding the old convention are updated, each with the reason recorded. Full suite green incl. disc/ISO gates. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -12,7 +12,12 @@
|
||||
|
||||
ship e106 ref=e106_bdy_04
|
||||
e106_bdy_01 1 0 0 0 1 0 0 0 1 -263.9948 -150.43242 1164.8667
|
||||
e106_bdy_02 -1 0 0 0 1 0 0 0 1 264.0088 -150.41339 1164.8651
|
||||
# 2026-08-12: this rotation was diag(-1,1,1) - the X-flip `correlate` bakes in
|
||||
# when a draw's buffer is the mirror of the decoded one. With distinct anchor
|
||||
# assignment the twins now decode to their OWN buffers (the container carries
|
||||
# both halves), so the mirror lives in the data and the placement is plain
|
||||
# identity. Re-emitting from the capture agrees: `1 0 0 0 1 0 0 0 1 264.04343`.
|
||||
e106_bdy_02 1 0 0 0 1 0 0 0 1 264.0088 -150.41339 1164.8651
|
||||
e106_bdy_03 1 0 0 0 1 0 0 0 1 0.0029247368 -34.517372 1075.878
|
||||
e106_bdy_04 1 0 0 0 1 0 0 0 1 0 0 0
|
||||
e106_brg_01 1 0 0 0 1 0 0 0 1 -0.005471501 153.31795 -164.03748
|
||||
|
||||
Reference in New Issue
Block a user