GfxWorld and Lighting
Target-binary evidence
Atlas indexes Load_ProcessStructLayout_GfxWorld at RVA 0x4D1BA0 (10,209 bytes), associated with archive_impl_r_bsp_db.h:32687-32938. Additional target symbols in the same module include the generated GfxWorldDpvs*, primary-light, cell, surface, and transient-zone load families. These are target-symbol facts; source layout status is scoped in Evidence Scope.
Candidate serialized layout
- Candidate
GfxWorld: size0x41E0, alignment0x10. Its leading registered fields includebspVersion, primary-light counters/ranges, sort keys, andGfxWorldDpvsPlanes; later components include transient/cell data, surfaces, static models, draw data, dynamic-lightset, static/dynamic DPVS, Umbra gates/tome, and stream-tree grids. Source:archive_impl_r_bsp_db.h:32687-32938; early fields and major groups at lines 32689-32757, visibility/shadow groups at 32901-32905, Umbra at 32907-32923, streaming grids at 32931-32935. - Candidate source registers
GfxWorld::surfacesat0xC8,smodelsat0x170,drawat0x488,dpvsat0x3BE8, anddpvsDynat0x3E60; these numbers are source-candidate offsets only. - The world record registers
primaryLightCountnear the header (candidate offset0x18) and aGfxDynamicLightset; this establishes named lighting/world records in the source candidate, but not the whole primary-light payload representation.
Format observations
The generated asset schema places render geometry, static models, world draw structures, light data, and visibility payloads beneath a single GfxWorld record, with a mix of inline records and pointer/array members. Loader names and source member registrations establish that division. A complete serialized map format still requires stream and pointer-fixup traces.
Confidence and unknowns
- High: target GfxWorld layout-registration loader exists at RVA
0x4D1BA0in the indexed binary. - Medium: Atlas source association to the cited generated file.
- Candidate only: world size/member offsets.
- Unknown: target exactness, BSP version values, light record layouts, cell-to-surface indexing, static/dynamic DPVS bitset encoding, transient-zone payload boundaries, and resource pointer packing.
Evidence: Evidence Scope · Atlas validation · GfxWorld source.