Commit graph

3 commits

Author SHA1 Message Date
Sergei Shubin
aae67c1fb5 Add BRX1 extension format and native in-BSP lightmap page sizes
q3map2 changes:
- BRX1 backward-compatible BSP extension (always v46, extra lumps
  after header with magic + overlap detection)
- -lightmapsize N stores pages natively in BSP via EXT_LUMP_LIGHTMAP_INFO
- -extlmhacksize N unchanged (legacy external TGA + custom shaders)
- SH grid moved from v47 lump 18 to BRX1 EXT_LUMP_LIGHTGRID_SH
- Removed v47 version logic
- MSVC fix: noexcept move ctor for entity_t (std::list move not noexcept)
2026-04-16 15:18:44 +08:00
6f78fcb452 Add L2 spherical harmonics light grid to q3map2
Implements a new SH light grid that runs alongside the legacy Q3 light grid,
storing 9 RGB L2 spherical harmonic coefficients per grid point for accurate
directional lighting of dynamic objects from all angles.

BSP format: v47 with 19-lump header (160 bytes) when -sh is used, v46 with
17-lump header (144 bytes) otherwise. SH data stored in LUMP_LIGHTGRID_SH
(index 18) with a header containing grid bounds/size/mins followed by the
coefficient array. Stock Q3 engines read v46 lumps unchanged.

New CLI flags: -sh (enable), -gridscalesh (density multiplier, default 2x),
-gridsh (explicit cell size). SH grid receives bounced light with -bouncegrid.

Also adds libjpeg-turbo as a proper build dependency with its own vcxproj,
fixing the previous external engine path requirement.
2026-04-03 13:52:07 +08:00
Serge Shubin
8f902165b6 Initial commit of q3map2 2026-04-02 20:51:01 +08:00