diff --git a/docs/superpowers/specs/2026-07-05-modern-pipeline-design.md b/docs/superpowers/specs/2026-07-05-modern-pipeline-design.md index ec8ef50e..17663779 100644 --- a/docs/superpowers/specs/2026-07-05-modern-pipeline-design.md +++ b/docs/superpowers/specs/2026-07-05-modern-pipeline-design.md @@ -138,8 +138,14 @@ client uses today**, run offline: - Mesh extraction (GfxObj/Setup → GPU-layout vertex/index + batch tables) via the existing ObjectMeshManager build path. -- Texture decode (palette/INDEX16/etc. → RGBA) via the existing TextureHelpers path, - then compressed to BC7 (quality) / BC1 (opaque bulk) with precomputed mip chains. +- Texture decode (palette/INDEX16/etc. → RGBA) via the existing TextureHelpers path. + **AMENDED 2026-07-05 (MP1a ground truth):** v1 pak stores **decoded RGBA8 exactly + as the runtime path produces today** (the atlas consumes RGBA8 via + `TextureBatchData` — storing BC7/BC1 would change delivered pixels and violate + this phase's byte-identical conformance gate). BC compression (quarter the disk + + VRAM, lossy) is an explicit post-conformance option requiring its own visual + gate and user approval, not v1 scope. Mip chains remain runtime-generated + (`GenerateMipmaps` flush) in v1 for the same reason. - BSPs (physics, cell, drawing) flattened to index-based node arrays (blittable). - Landblock terrain data (heights/attributes) as blittable arrays. - EnvCells (geometry + portals + surfaces) as blittable records.