diff --git a/context/rendering.md b/context/rendering.md index aa01844..df76811 100644 --- a/context/rendering.md +++ b/context/rendering.md @@ -259,10 +259,17 @@ RemakeEntity mechanism); `[video] Object` hides at BurningState, `Rubble` shows; `StateIndicator::AddVideoWatcher` (SetState DOES fire video watchers). ⚠ REQUIRED gotcha: cultural objects must stay **OUT of static-mesh consolidation** (`RecurseStaticObject` — same exclusion class as banded LODs/shadows), else the merged mesh draws the intact model forever -regardless of DrawObj. Explosion visual = the psfx route (effect 1008 observed). Verified live -(BT_GOTO ram): HIDE×2 + SHOW(rubble), contacts cease, mech occupies the footprint. Diags: -`BT_CULT_LOG` (census/damage/death + `[cultvis]`). MP: replicants transition via -`ReadUpdateRecord` → same SetState watcher path (untested cross-pod). +regardless of DrawObj. ⚠ **STATUS (human playtest 2026-07-19): PARTIAL — the intact model now +hides on death (the truck "disappears"), but the RUBBLE never appears and no explosion/fire is +visible.** The switch's SHOW sets DrawObj on the rubble CHILD component (DCSInstanceRenderable/ +DPLStaticChildRenderable) — those child classes are themselves 2007-stubbed and never draw their +object, so the swap is a no-op on screen; and the death Explosion routes effect 1008 (ddam5 +psfx) but nothing visible appears (+ the authentic BurningState fire visual is entirely +unreconstructed). REMAINING: make the rubble genuinely draw (or hang it off the drawn root), +a visible death explosion, the burning-fire state. LESSON: `[cultvis]` log lines verify the +STATE MACHINE, not pixels — only a human screen check verifies rendering. Diags: `BT_CULT_LOG` +(census/damage/death + `[cultvis]`). MP: replicants transition via `ReadUpdateRecord` → same +SetState watcher path (untested cross-pod). ## Key Relationships - Geometry/LOD: [[bgf-format]]. Base: [[wintesla-port]] (L4D3D). Shadow/visual-conform: [[locomotion]].