Half the Engine Thrown Away
Granular Babylon.js imports cut the bundle by 5.8MB, plus a dedicated shader material for Quake's filter blend decals.
58%
Migrated from import { Scene, Vector3 } from "@babylonjs/core" to granular ES6 imports, and deduplicated the resulting duplicate Babylon packages.
Bundle reduced by ~5.8MB (58% reduction in the Babylon.js portion)Documented in docs/research/BABYLONJS_TREE_SHAKING_MIGRATION.md. Also added cli:game and cli:bsp scripts — the console-only entry points that would later carry most of the QA work.
Filter Blend Decals
A new FilterBlendShaderMaterial.ts for Q3 blendFunc filter decals, which use GL_DST_COLOR, GL_ZERO. Alpha is derived from inverse luminance, so white is transparent and coloured areas are visible. Parameters: alphaThreshold, alphaPower, colorDarken, alphaMultiplier.
This is the third release in a row to touch decal rendering, and the fourth in six weeks to carry a decal caveat. The pattern holds all the way to v0.8.10, and the z-fighting survives until v0.9.21's renderer pass.