198 lines
12 KiB
Markdown
198 lines
12 KiB
Markdown
# RoM residual rendering and Raksha route review — 2026-10-06
|
||
|
||
This follows the completed all-30 texture/lighting pass in
|
||
`ROM_ENVIRONMENT_REVIEW_2026-10-06.md`. The user requested continuation on the
|
||
remaining Origin root cards and Raksha camera/route defects. Evidence uses new
|
||
paths under `artifacts/playtest/rom-residual-review-20261006/`; the accepted v5
|
||
build, source assets, manifests and screenshots remain historical baselines.
|
||
|
||
Final status on 2026-10-07: Raksha's corrected source entrance/navigation package
|
||
and reviewed local build are installed. Ordinary entry/first-step walking and
|
||
camera checks pass. Origin's source-opaque dark root card and Raksha's disconnected
|
||
Shadoj route remain unresolved; this follow-up does not certify full clears.
|
||
|
||
## Starting evidence
|
||
|
||
- Origin's `elves_gaint_roots_village` material requests native alpha test 192,
|
||
but its raw DDS, prepared PNG and shipping KTX mips are fully opaque. The prior
|
||
exporter omits vertex color/alpha and face-culling data. A fresh source review
|
||
found `IRuMorphTarget::GetDiffuse()` and native shader multiplication by vertex
|
||
RGBA; the exact affected meshes and values require verification before a patch.
|
||
No black-keyed alpha or guessed blend semantics are authorized by this evidence.
|
||
- Raksha's authoritative source entrance `[1857,297,1161]` maps to local
|
||
`[-0.020312,21.013313,11.334656]`. Packaged navigation projected it to
|
||
`[0.021786,10.664467,17.560761]`, a 12.077449 m displacement. That large shift
|
||
requires source-floor and runtime attribution; it is not yet proof of the
|
||
camera or walking failure's complete cause.
|
||
- Shared camera obstruction currently combines physical sphere sweeps with a
|
||
dedicated wall/pillar sight ray. Raksha also mounts its navigation GLB as
|
||
physical ground, a workaround introduced before its WDB floor was verified.
|
||
Any correction must distinguish source geometry, derived navigation and
|
||
camera-only obstruction, while preserving ordinary right-drag input.
|
||
|
||
## Scope and validation
|
||
|
||
Luna subprocesses independently inspect native material streams, actual camera
|
||
framing and source/navigation/collision correspondence. Root owns shared runtime
|
||
changes and asset promotion. Source experiments remain staged until exact
|
||
identities, material semantics and preservation proofs are reviewed.
|
||
|
||
Ordinary UI/keyboard checks must verify Raksha entry and reachable movement,
|
||
Origin material rendering, and Stockade fallback where shared runtime changes
|
||
apply. Runtime stores remain read-only in gameplay proofs. The review does not
|
||
certify full clears, combat balance, or a bridge to Origin's disconnected
|
||
Falynum approach. Final focused checks, build and release hygiene follow the
|
||
actual implementation.
|
||
|
||
## Confirmed follow-up findings
|
||
|
||
The fresh, hash-matched `gaint_tree_a.ros` probe reports vertex format 9, no
|
||
`ruVERTEXFORMAT_DIFFUSE`, and no diffuse-color pointer on material 1's mesh.
|
||
There is no omitted vertex alpha on this exact root card. The native standard
|
||
shader defaults to one-sided `D3DCULL_CCW` without a material override, whereas
|
||
the GLB and runtime draw both sides. The exact-face A/B and reverse-side control
|
||
confirm that Three FrontSide matches its native winding. However, the dark face
|
||
visible from the recorded leg-18 walking location is front-facing and remains
|
||
under FrontSide. Culling therefore does not fix that panel. Its sole native
|
||
texture channel is diffuse, and DDS/PNG/KTX alpha remains fully opaque. No
|
||
vertex mask, extra opacity channel or color-key rule supports a transparency
|
||
patch. Origin remains unchanged; this residual appearance is unresolved.
|
||
|
||
The culling comparison is an isolated environment-preview diagnostic at a
|
||
recorded walking location, not a new ordinary gameplay run. Exact source,
|
||
served-asset and screenshot identities are recorded in
|
||
`origin/culling-ab/origin-roots-village-culling-conclusion.json` under this
|
||
review's evidence directory.
|
||
|
||
Raksha's bad runtime position has no visible floor below it. The visible deck
|
||
above it is at Y≈13.408, with physical collision at Y≈13.412; the camera stops
|
||
0.320 m below it, matching its radius/gap. At the authored XZ the visible and
|
||
physical source floors are at Y≈20.770/20.765. Ordinary right-drags confirm the
|
||
camera is responding correctly within the misplaced volume.
|
||
|
||
The native collision floor in chunk 003 (`01_1_mesh_0`) has interleaved POSITION
|
||
data (stride 8, offset 0). Recast's Three adapter copies the backing array and
|
||
steps by three floats, while the pipeline's inspection correctly uses attribute
|
||
getters. Generation therefore consumes different coordinates than its own
|
||
input report. The durable fix unpacks positions in memory before generation;
|
||
source collision and visual bytes remain unchanged. Corrected navigation and
|
||
entrance candidates require staging, route checks and ordinary gameplay review.
|
||
|
||
## Packaging gate
|
||
|
||
The corrected full bake restores the entry to
|
||
`[-0.020312,20.837463,11.334656]`, 0.17585 m from its Lua source point. Exact
|
||
Detour queries connect the first 2 m and 10 m forward; the route to Shadoj
|
||
remains partial. Its complete topology contains 137,575 polygons, 268,162 links
|
||
and 588,703 detail triangles, exceeding the runtime's existing limits of
|
||
50,000/100,000/200,000. A packaged-asset integration test caught this before a
|
||
new build was installed. The first local asset promotion was restored from its
|
||
exact backups; both promotion and rollback proofs remain in the evidence tree.
|
||
|
||
The full bake remains diagnostic evidence. Shipping selection must retain whole
|
||
actual Detour components tied to source entrance/population anchors, preserve
|
||
their exact directed links, and pass all runtime limits. It must not raise
|
||
budgets or connect disconnected islands. That smaller candidate and ordinary
|
||
gameplay validation are pending.
|
||
|
||
Source-anchor analysis confirms the source-to-local transform agrees with all
|
||
123 active combat/boss rows within 7.5e-7 m. Of 251 entrance/support/population
|
||
anchor records (including duplicates), only 29 are within the existing 4 m
|
||
population projection limit of the corrected full navigation. All accepted
|
||
faces point upward. The other 222 must remain unmatched; snapping them to remote
|
||
surfaces is not supported. The source entrance and Shadoj are within 0.176 m and
|
||
0.034 m respectively, but their components remain disconnected.
|
||
|
||
The workspace-wide prebuild reached the performance audit and failed on an
|
||
unrelated, concurrently modified Utgarde Pinnacle visual asset: 16,277 draw
|
||
calls with 14,695 unbatched savings against its existing 14,018 savings ceiling.
|
||
No RoM visual changed. The previously published immutable Utgarde asset passes
|
||
the same budget (16,277/14,018), as recorded in
|
||
`utgarde-frozen-release-budget-proof.json`. This pass will publish only the three
|
||
Raksha navigation/metadata files and preserve other manifest entries. The
|
||
workspace-wide audit failure must not be described as a complete prebuild pass.
|
||
|
||
## Reviewed source-anchored package
|
||
|
||
The fresh v2 bake uses the same path as normal environment regeneration:
|
||
`lib/source-navigation-anchors.mjs` transforms native recipe points with the
|
||
full inverse WDB placement; `recast-bake.mjs` queries actual Detour references
|
||
within explicit limits, rejects missing required anchors, then retains complete
|
||
weak components. Lua entry must be within 0.5 m and Shadoj within 0.25 m. Other
|
||
native anchors retain the existing 4 m limit. No runtime budget is raised.
|
||
|
||
V2 contains six complete components, 239 polygons, 514 actual directed links,
|
||
653 detail triangles and 1,492 spatial-index references. The exact query input
|
||
has 128 records (126 native support coordinates plus the two required guards):
|
||
16 are retained, 112 remain unmatched. This differs from the preliminary
|
||
251-record diagnostic, which duplicated population/support rows. Excluded areas
|
||
are not individually proven decorative; this is sparse source-anchor coverage,
|
||
not full-dungeon navigation.
|
||
|
||
Independent review matched every retained polygon, triangle coordinate and
|
||
directed link against the full bake. V1/v2 BIN chunks are identical; v2 preserves
|
||
source coordinates/evidence/required flags in JSON provenance. Required entry
|
||
and boss snaps are 0.17585/0.03368 m. Actual runtime graph checks pass for 2 m and
|
||
10 m forward routes; entry-to-Shadoj remains disconnected.
|
||
|
||
The reviewed navigation SHA is
|
||
`77b2b22bb89474bfe2bd9974d9f58cd680634d4f7feef6163723bb8f3afe6117`
|
||
(166,048 bytes). Shipping/canonical navigation and reports plus import metadata
|
||
were promoted with a separate exclusive backup. Visual and all seven collision
|
||
files are byte-identical to their baselines. Registry regeneration changes only
|
||
Raksha's navigation identity/counts and entrance/area center; source yaw remains.
|
||
The scoped content update changes three Raksha files and preserves all 21,602
|
||
other manifest entries, frozen as `content-151109efcb20cc00` with manifest SHA
|
||
`40d5c9e16d8045b8c240d57ca52017aaf95e423c44f96507aceb02285dca693c`.
|
||
|
||
Focused checks pass: 13 Node pipeline tests, 12 runtime tests, and ten Raksha
|
||
GLBs with zero validator errors/warnings (230 known tooling messages excluded).
|
||
TypeScript and the isolated production Vite build pass (11.26 s). Static
|
||
compression produces 258 files from 129 sources; release-bundle verification
|
||
passes with 126 chunks and 5,569 bootstrap objects/63,571,471 stored bytes. Build
|
||
index SHA is `8ca382b4ad8919ba100ee1e0ee6c7d64a30b87c7acfbf6d65fc8184eb10c9958`.
|
||
|
||
## Final gameplay and installation
|
||
|
||
The fresh ordinary Raksha entry is ready/grounded at
|
||
`[-0.020324,20.857564,11.334658]`. Scene rays hit the actual source deck near
|
||
Y=20.770, and then its collision-backed initial slope. Four WASD targets are
|
||
reached; all eight movement samples are grounded and browser errors are zero.
|
||
Movement completion is 8.554469 m; the later post-release settled screenshot
|
||
snapshot is 8.876903 m, also grounded. These are separate timestamps, not two
|
||
route runs. Standard/High use 150% resolution, 16× filtering and authored fill.
|
||
Held right-drag works without pointer lock, and no overhead obstruction is
|
||
reported within 40 m. Root reviewed the final entry/step screenshots. The blue
|
||
exterior background remains visible in side-facing views; broader scenery and
|
||
the route to Shadoj are not certified by this eight-metre check.
|
||
|
||
The same-build graphics fallback selects **Bazil Thredd** in Stockade Cellblock
|
||
Rush, validates default 150% and High 200%, plus the Forsaken Abbey comparison,
|
||
with zero errors. Root reviewed the High Stockade capture. The later complete
|
||
performance audit is green for 106 assets with 60 known exceptions and zero
|
||
regressions: the earlier transient unrelated Utgarde failure has cleared. This
|
||
does not retroactively turn the earlier prebuild invocation into a passing run.
|
||
|
||
The reviewed build is installed as local `dist`; all 5,967 files match it
|
||
byte-for-byte. The actual previous dist is preserved in the new exclusive
|
||
`pre-bounded-raksha-dist-backup` (prior index SHA
|
||
`76096ccd244c96b8163bd179858f3b25f53f29fc13c0a7a03a2edcf0da948a5e`).
|
||
Earlier asset/build backups remain intact. Local installation proof is
|
||
`local-build-install-proof.json`; live and frozen content manifests match at
|
||
the final check. No remote deployment or full-clear/balance certification is
|
||
implied.
|
||
|
||
Final evidence paths under this review directory:
|
||
|
||
- `raksha-route/source-anchored-v2/`: fresh bake, exact geometry/link/source
|
||
preservation and runtime graph fixtures.
|
||
- `raksha-final-gameplay/qa-report.md` and `frames/`: ordinary controls,
|
||
graphics settings, source-floor/camera rays and frozen build identity.
|
||
- `graphics-fallback-final/`: selected Stockade boss/settings and screenshots.
|
||
- `source-anchored-navigation-promotion-proof.json`,
|
||
`bounded-navigation-content-proof.json`, `local-build-install-proof.json`:
|
||
guarded asset/content/build installation identities and backups.
|
||
- `release-check-final.log`: final repository text hygiene, including untracked
|
||
files. The check passed across 81 changed paths after the final documentation
|
||
update.
|