3bee60cb71
1.12.1 lights models and buildings per vertex and interpolates the result. benilla lit them per pixel, and clamped the light sum before the material colour multiplied it. - **#509:** M2 lighting (the `Model2.bls` vertex programs under the stock `M2UseShaders` 1, `M2UsePixelShaders` 0) and WMO exterior T&L now run in the vertex stage. - **#530:** the vertex and model colour is the lit material inside the one clamp. For WMO this is MOCV, through GL colour material (`0x59cfec`, `0x59cff3`). For M2 it is `c28`, the model colour times the batch's M2Color (`0x70c4d3`-`0x70c712`). The programs clamp E first only when a point light is bound. - **#115:** the clutter grey (`0xffc0c0c0`, `0x6b2615`) sits inside the clamp. Tests: - an interpreter runs `Model2.bls` programs 135 and 136 against the shader's mirror; - both program levels pin the clamp law per light count; - per-vertex and clamp-order checks run on both shaders. Fixes #509 Fixes #530 Fixes #115 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>