diff --git a/context/rendering.md b/context/rendering.md index df76811..74ef8bb 100644 --- a/context/rendering.md +++ b/context/rendering.md @@ -259,17 +259,19 @@ 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. ⚠ **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). +regardless of DrawObj. **RUBBLE PLACEMENT FIX (2026-07-19, pixel-verified via BT_SHOT):** the +rubble originally never appeared because additional cultural objects were built as +DPLStaticChildRenderable/DCSInstanceRenderable at TOP level — those read the bare matrix stack +(identity), so the rubble drew at the WORLD ORIGIN. Every cultural video object is now a +`RootRenderable` (places from `myEntity->localToWorld`). Screenshot timeline confirms: intact +MECHMOVR truck → ram death → MECHMD wreck debris scattered at the truck's spot. ⚠ STILL OPEN +(#3): (a) the wreck's scorch base quad draws as an opaque BLACK rectangle (MECHMD's own op — +material/ramp resolve); (b) the death Explosion (psfx 1008 ddam5) not visually confirmed; +(c) the authored BurningState fire visual unreconstructed. LESSON: `[cultvis]` log lines verify +the STATE MACHINE, not pixels — only a screen check (BT_SHOT / human) verifies rendering. +Diags: `BT_CULT_LOG` (census/damage/death + `[cultvis]` + `[cultobj]` per-object file/type/op +flags). 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]].