One Mesh, One Lightmap
Mesh grouping rebuilt around texture-plus-lightmap pairs, autosprite and autosprite2 billboards, and thirteen render variables you can type.
The Grouping Bug
Meshes were grouped by texture alone, which meant one mesh could be carrying several lightmaps at once. Grouping is now by (texture, lightmap) pair, so each mesh has exactly one lightmap, and applyTextures changed from find() to filter() to match.
That one-word change is the fix.
Billboards, Two Kinds
deformVertexes autosprite and autosprite2 are parsed:
autosprite— a full billboard.autosprite2— cylindrical, Y-axis only, like Warsow light halos.
Faces are split into individual meshes with vertices reconstructed each frame.
Thirteen Render Variables
r_normalmap r_glossmap r_lightmap r_ambient r_emissive
r_anisotropy r_wireframe r_bloom r_exposure r_contrast
r_lightintensity r_showtrisAll persisted to localStorage, with r_list, r_reset, r_export and r_apply. Documented in docs/RENDER_VARS.md.
Also Here
Log history size (100-50000 lines, default 5000)Persistent in-memory history, plus a find command with wildcards — find *error* 100 — and shader info to inspect whatever surface is under the crosshair, with shader aim 1 to highlight it.
That last pair is the most-used debug feature in the renderer and it arrived here, in a release whose headline is about lightmaps.
Known Issues: none stated.