Files
healer-man/docs/WOW_ENVIRONMENT_QUALITY_CONTINUATION_2026-10-07.md
2026-10-07 13:05:04 -04:00

63 lines
8.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# WoW environment quality continuation
The shared RoM quality controls also work in WoW: 16× texture filtering, High shadows, High ambient fill, and 200% render resolution. This continuation improves source UV preservation in Utgarde Pinnacle and Shadowfang Keep and produces a rendered, source-backed Zul'Farrak terrain pilot. Original-client WoW baked lighting remains diagnostic evidence, not a production replacement.
## Accepted local visual packages
| Dungeon | Previous visual bytes | Accepted visual bytes | SHA-256 |
| --- | ---: | ---: | --- |
| Utgarde Pinnacle | 59,344,144 | 29,792,924 | `bffaf126d0f65b2863d54418b1889f9e62adf5562491c3e74e6a5c5e05664844` |
| Shadowfang Keep | 8,566,408 | 8,803,744 | `6c69f739383fc98f440f181785c4f27c7f39cfcb18d9a8b5ac8282262070bf75` |
Both assets are installed in local public packages. The publisher updated all four matching visual descriptors per dungeon and regenerated the campaign catalog. All 20 Utgarde and 26 Shadowfang collision/navigation files remained unchanged. No deployment was performed.
The optimizer now uses explicit 16-bit positions and UVs in its final meshopt packing. It avoids automatic texture resizing/compression and mesh simplification before the separate KTX2 encoder. Utgarde's recipe additionally preserves spatial boundaries by disabling global flattening, joining, welding and offline instancing. Existing production runtime instancing still applies.
Nine views per dungeon (entrance, middle encounter, final encounter, each forward/side/reverse) were compared after the same production material preparation, static instancing and visibility setup. Accepted candidates have exactly the same measured draw and triangle counts as their respective previous assets in all nine views. Utgarde retains 1,780 instance batches / 11,055 instances / 1,383 visibility cells; Shadowfang retains 78 visibility cells. These are sampled asset-render checks, not full encounter or mobile performance certification.
Utgarde's static prebuild estimate remains 16,277 calls. Its repeated-mesh savings estimate increased from 14,018 to 14,695; the one existing budget entry was updated after the runtime comparisons above. The overall 106-asset performance audit passes.
All 916 remaining source-comparable images retain their original dimensions. Utgarde's 629 shared KTX2 payloads are byte-identical to the previous package. Four old entries were accounted for: two exact decoded image duplicates were deduplicated, and two solid-color images were folded into correct linear material factors on their active triangles. Shadowfang retains all 287 KTX2 payloads byte-for-byte.
Relative to original staged source, Utgarde's added UV-degenerate area falls from 122.17 to 58.44 m²; added rank-collapse area falls from 107.30 to 2.14 m². Shadowfang's added UV-degenerate area falls from 8.38 to 0.47 m², while rank-collapse area changes from +0.35 to −6.52 m². Small residuals remain: +105 UV-degenerate triangles in Utgarde and +7 in Shadowfang. This is an improvement, not a claim of perfect source topology.
Global-join Utgarde alternatives were rejected: they rendered roughly 7.6–8.1 million triangles in the sampled views, compared with about 1.5–3.4 million for the retained spatial layout. A smaller file alone was insufficient.
Evidence: `artifacts/dungeon-pipeline/wow-continuation-published-audit.{json,md}`, candidate reports and hotspot audits under `artifacts/dungeon-pipeline/`, and before/after captures under `artifacts/playtest/wow-environment-quality/continuation/`.
## Zul'Farrak native terrain pilot
The cached ADT/BLP source has terrain textures and blending data, but the exported OBJ and staged GLB contain only zero UVs and flat `ADT_Terrain` material. This proves conversion loss rather than an authored flat surface.
The entrance tile `TanarisInstance_30_29.adt` matches the winning `patch.MPQ` bytes exactly: SHA-256 `8ad75da6b9485d61537ee3b451c08b79e25b1b1b2c7d4e91c8e57ad0a65ff75b`. Provenance lock and source snapshot both identify `3.3.5a-Ascension`; a diagnostic helper's earlier hardcoded Epoch label was corrected. All 256 chunks, 746 layers and 490 alpha maps were recovered, with zero missing maps. All 1,024 disjoint geometry streams passed hash/size checks. The recovered tile has 37,120 vertices and 65,536 triangles; source-to-staged world-position error is below 0.000277 m. This tile has no holes.
`src/scene/wowTerrainMaterial.ts` consumes an explicit native WoW contract: source provenance, one to four layers, normalized chunk UVs, 8× diffuse repetition and linear RGB overlay weights. The base receives the residual weight. Classic sequential opacity maps are converted by the decoder; the shader does not normalize them or treat tile alpha as surface opacity. Color textures repeat in sRGB; blend weights clamp in linear space. Missing or incompatible contracts fail closed. Shared material cloning, filtering and disposal include auxiliary textures.
The complete diagnostic GLB is `artifacts/dungeon-pipeline/zulfarrak-30-29-native-terrain-pilot.glb`, 29,350,772 bytes, SHA-256 `864d8885413808f46c3397243ecf3a7bf21477b54e7fb8ff1853514243c7794d`. It preserves the original shipping binary prefix and all old images byte-for-byte, replacing only the selected flat terrain node with 256 disjoint chunks. New source textures are lossless PNG and new geometry is float32/uint16. It deliberately avoids solid-image pruning, which can discard a weight image whose red channel is constant while its other channels vary.
Nine prepared-runtime preview views passed with no browser errors. The entrance ground is visibly textured; its height is 0.0021 m below the authored footing versus 0.0074 m above in the old quantized terrain. Entrance forward rendering changes from 718 calls / 1,075,915 triangles to 828 calls / 1,038,795 triangles. Chunk boundaries improve culling but add calls; the largest sampled call increase is 225. The pilot has not been shipped. Other Zul'Farrak tiles retain their current fallback, and native terrain shadows/colors, water and original-client lighting are outside this pilot.
![Existing terrain](../artifacts/playtest/wow-environment-quality/continuation/zulfarrak-shipping-runtime-prepared/view-0-forward.png)
![Recovered native terrain pilot](../artifacts/playtest/wow-environment-quality/continuation/zulfarrak-zulfarrak-30-29-native-terrain-pilot-runtime-prepared/view-0-forward.png)
Source bundle: `artifacts/playtest/wow-terrain-recovery/zulfarrak-30-29-chunk-slices-ascension-provenance-2026-10-06/`. Regenerate sidecars with `build-wow-adt-terrain-tile.mjs`; package the source-pinned diagnostic with `pack-wow-adt-terrain-pilot.mjs`. The running local preview accepts the pilot through `visualOverride` and `runtimePreparation=1`.
All 21 cached Zul'Farrak ADTs and their 24 texture references are available for further recovery. Pit of Saron's nine cached ADTs and eight textures are also available, but strict decoding currently recovers only 2,122 of 3,766 alpha maps across those tiles; unsupported spans remain gated. Do not extrapolate the one clean pilot to fleet completeness.
## Original WoW baked lighting
`wow-native-wmo-audit.mjs` inventories source-matched WMO roots/groups, MOCV colors, MOLT lights and MOLR references. Stockade has 97 local-light records and exact color correspondence for all 55,730 exported OBJ vertices. Raw and documented-fixup diagnostic sidecars are preserved. Shadowfang has 176 light records, but its color correspondence is incomplete; no guessed color sidecar was emitted.
Original WMO color alpha is lighting data, not opacity. Gamma/composition, portal attenuation, exact byte quantization and a disputed MOHD flag still need a validated consumer. These records have not been turned into Three.js point lights or production vertex colors. Evidence and primary source references are in `artifacts/dungeon-pipeline/wow-native-lighting/README.md`.
## Validation
- 65 focused scene/material tests and 21 focused pipeline/native-source tests pass.
- App TypeScript and isolated preview TypeScript checks pass. The normal production build, KTX2/performance audits, precompression and release-bundle verification pass.
- Fresh production Options smoke uses entry `index-DIqor-kq.js`, built `2026-10-07T03:55:23.055Z`. Stockade Cellblock Rush selected **Hamhock**. 16× filtering, High shadows, High ambient fill and 200% resolution passed; 200% carried into Forsaken Abbey. No page errors. Options, WoW and RoM screenshots were visually inspected. Evidence: `artifacts/playtest/graphics-options/run-wow-continuation-current-build-2026-10-06/`.
- Asset screenshots prove the bounded visual changes; this pass does not certify encounter clears or broad class balance.
- `npm run release:check` passes, including untracked files.
The initial 54-dungeon review remains in `docs/WOW_ENVIRONMENT_QUALITY_2026-10-06.md`; its earlier package sizes and captures are historical evidence. This continuation supersedes the two accepted visual package identities above.