Epic 5 Phase 2.5 — model blend via alpha, not lumakey

Model stages render with alpha:0 where no mesh covers (transparent
clear) and carry dark material colours. Lumakey keys on luma
(dot(src,0.212…)), so a dim mesh keyed to ~0 and vanished — Pylon
Field 3D / Synthwave Corridor looked black. Use 'normal' for
kind:'model' so the alpha is the mask; fragment over dark ground
stays covered. Per-stage fog/light tuning deferred to a director
param (LookGenerator) per review — not hand-tuned per stage.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Dejvino 2026-08-20 22:08:32 +02:00
parent f8e8d91c9b
commit b2c9497bae

View File

@ -625,7 +625,13 @@ function buildStack(module, overlayRoster, bias, rng, temperament, story = null,
// leaves unpainted is then the ground rather than black, which is the
// whole point of standing it on one, and what it DOES paint stays its
// own colour. 'screen' is the blaze — see above, and passes.js.
blend: standsAlone ? 'normal' : (blaze ? 'screen' : 'lumakey'),
// Model stages render with correct alpha (transparent clear) and carry
// dark material colours — lumakey would key them out. Use normal for
// kind:'model' so the alpha is the mask (Assembly, Pylon Field 3D,
// Synthwave Corridor).
blend: module.kind === 'model'
? 'normal'
: standsAlone ? 'normal' : (blaze ? 'screen' : 'lumakey'),
// Carried so the HUD, the checks and a later pass over the look can all
// tell a deliberate bloom-out from a broken one.
blaze,