perf(vfx): port retail particle visibility degradation

Resolve DAT-authored particle ranges from the hardware GfxObj, apply retail distance and completed-cell visibility gates, and preserve the exact finite/infinite off-view update semantics. This removes dense-world simulation work without shortening terrain, entity, fog, or streaming distance.

Publish doorway-clipped outdoor cells through a focused frame controller, retain effect cell identity for outdoor statics, reject hidden emitters before particle-slot scans, and offer an explicit opt-in Extended particle range.

Release build succeeds and all 5,857 tests pass with five intentional skips. Retail-conformance, architecture, and adversarial review cycles are clean; connected Aerlinthe visual/performance gate pending.

Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-17 15:27:36 +02:00
parent 82789eea88
commit f1ba147ac5
29 changed files with 1810 additions and 125 deletions

View file

@ -633,8 +633,15 @@ include dungeons.
ports `CPhysicsPart::Always2D`: mode-1/no-degrade particles now keep every
authored mesh polygon through the modern global buffer, while other degrade
modes retain the billboard path. This restores the four-piece apex of
Armor/protection shield effects. The final two-client visual gate is still
pending.
Armor/protection shield effects. MP2's 2026-07-17 corrective performance
slice now ports the complete retail particle distance/cell-view gate and
degraded update branches: DAT-authored ranges (Aerlinthe's dominant swarm is
64 world units), exact infinite-emitter freeze/finite-emitter conditional
stop bookkeeping, and emitter-first render rejection. The landscape renderer
publishes outdoor landcells independently of surviving object meshes.
Terrain/entity streaming distance is
unchanged; an explicit Extended setting doubles only particle range. The
final two-client visual gate is still pending.
- **L.1c local attack receive path (implemented and live-gated 2026-07-15)**
local non-autonomous mt-0 UpdateMotion now uses retail's wholesale interpreted
funnel and action-stamp gate, so ACE's server-selected melee/missile action