Each generated prop used one material per part (body, accent, metal...). The model pipeline now packs a prop's palette into one power-of-two colour atlas plus a matching metallic/roughness atlas and emits a single material: - atlas_for(): 8x8 cells per palette role, colours in sRGB, roughness in the G and metallic in the B channel of the second atlas; NEAREST sampling keeps cells flat. - build_glb(): every part merges into one primitive with constant per-vertex atlas UVs; the material uses baseColorTexture + metallicRoughnessTexture with factors 1.0. - audit_glb(): fails unless a prop has exactly one material, both atlas textures, two images, and TEXCOORD_0 on every primitive. - Removed the now-unused sRGB->linear factor helpers; colour travels in the texture. Verification: headless 181 -> 182 (new "one material per prop scene" test), Python tooling 53/53 (atlas determinism/size/UV/palette-override tests replace the old factor tests), model audit OK for all six props, screenshots regenerated and screen_designs.py compare still 6 good / 0 bad. Version 0.3.1.
1016 B
1016 B
TODO
Godot 4.3 prototype. Latest release v0.3.1 (prop atlas). Headless suite 182/182 plus 53 Python tooling tests; the session, PLAN-verb, crowd, emergency, timeline, audio, scenario-content, and windowed focus/radial smokes pass. Anonymous downloads are enabled on the host.
All planned backlog sections are complete (see DONE.md). Optional future ideas live below.
Future ideas (optional, not scheduled)
- Live 3D body-camera replay (the timeline is text-only today).
- LOD/culling for NPCs if
MAX_LIVE_NPCSgrows past the measured 16-avatar budget. - Additional venues or seasonal events authored from the new
.tresfiles. - Real voice/dialogue audio (the crowd bed and radio crackle are procedural).
- Swap the primitive prop builder for an image-to-mesh model API behind the same
assets/models/generated/<prop>.glbcontract. - Regenerate the AI screen mockups for the seven new catalogue entries (only the deterministic wireframes exist so far).