Bistro sample: load and navigate the Amazon Lumberyard Bistro scene
Goal
Load and freely navigate the Amazon Lumberyard Bistro demo scene as its own sample project, in its own repository (https://gitlab.com/mass4org/mega4/sample-bistro) — a strong showcase for the engine's rendering capabilities.
Source asset
Bistro_v5_2 (ORCA release): BistroExterior.fbx (2.8M tris) + BistroInterior.fbx (1.0M tris), 633 DDS textures (~1.4GB, ORM-packed + DirectX normals), san_giuseppe_bridge_4k.hdr environment map.
Status (2026-07-20 re-evaluation)
Import works, but the exterior barely renders — only ~32 of the cooked mesh's
1,591 submeshes / 132 materials reach the GPU. Root cause is a runtime
MAX_SUBMESH_MATERIALS = 32 cap, not the importer. Full diagnosis + fix plan in
docs/plans/bistro.md. See the follow-up issues below.
Completed foundation
- #45 (closed) Multi-mesh/multi-primitive import (submeshes + per-primitive materials)
- #133 (closed) FBX mesh & material import — geometry + materials only; hierarchy not delivered (completed in #142 (closed))
- #134 (closed) DDS texture import (ORM packing, DirectX normals)
- #27 (closed) sRGB/linear color management + ACES tonemap
- #26 (closed) Materials: transparency blend modes (foliage alpha, glass)
- #8 (closed) glTF/GLB mesh & scene-hierarchy import
- #140 (closed) Render full multi-material meshes — lift the 32-submesh/material cap — the direct blocker; makes the exterior actually visible. (breaking: scene-format migration)
- #141 (closed) Weld vertices / index-dedup imported meshes — cut the 272 MB VBO + import time.
- #142 (closed) FBX node hierarchy + dynamic
MAX_OBJECTS/MAX_MESHES— completes #133 (closed); enables per-object culling & interior scenes. - #143 (closed) Frustum culling + material-sorted batching — interactive framerate on Bistro-scale scenes.
- #135 (closed) IBL/environment/skybox lighting from the HDRI (primary exterior light).
- #136 (closed) Camera post-processing (vignette / color grading / bloom).
- #17 Software-renderer PBR parity — built-game CPU fallback only; parallel/optional.
Acceptance
- Scaffold the sample project + own git repository
- FBX importer lands, scene imports without crashing/dropping geometry
- DDS textures import correctly (ORM packing, DirectX normal convention)
- Exterior renders all geometry with correct per-slot PBR materials (#140 (closed))
- Transparency (foliage/glass, #26 (closed)) + IBL lighting from the HDRI (#135 (closed))
- Free-fly navigation through the scene in Studio at interactive framerate (#143 (closed))
Out of scope
CPU-fallback KTX2 decode (#46) is a stretch goal only if the CPU path becomes a real problem.