docs: file #263 - Drudge Scrying Orb residual particle occlusion (deferred)
General composite-translucency fix (16ed6e7c) user-verified on other items; the orb keeps traces. Remaining hypotheses (ClipMap-opaque shell / unattached-emitter scope split) and the discriminating probe set are recorded in the issue.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
16ed6e7c5c
commit
bc05f0f61f
1 changed files with 49 additions and 0 deletions
|
|
@ -97,6 +97,55 @@ Copy this block when adding a new issue:
|
|||
|
||||
---
|
||||
|
||||
## #263 — Drudge Scrying Orb still occludes its particles after the composite-translucency fix
|
||||
|
||||
**Status:** OPEN (deferred by user 2026-07-29)
|
||||
**Severity:** LOW (single known item; "very subtle" per user)
|
||||
**Component:** rendering / world translucency / particles
|
||||
|
||||
**Symptom (user report):** wielded items subtly hid particle effects, "missing
|
||||
some translucent texture." The general fix landed as `16ed6e7c` (authored
|
||||
`Surface.Translucency` was baked into texture alpha only on the shared-atlas
|
||||
path; the per-instance composite paths — palette/texture overrides, i.e. most
|
||||
wielded loot — never applied it, so translucent parts painted alpha=1 and
|
||||
erased particles composited behind them). User confirms other items now render
|
||||
correctly; the **Drudge Scrying Orb** still shows traces of the occlusion.
|
||||
|
||||
**Root cause / status:** the override-driven translucency loss is fixed and
|
||||
verified on other items. The orb residual matches the remaining ranked
|
||||
hypotheses from the 2026-07-29 investigation (transcript-level, not yet a
|
||||
research doc):
|
||||
- **H3 — ClipMap-only shell:** `IsOpaque` counts `Base1ClipMap` as opaque
|
||||
(`WbDrawDispatcher.cs` `IsOpaque`, pipeline writes depth), so a
|
||||
ClipMap-authored orb shell would depth-reject particles behind/inside it.
|
||||
Only a divergence if retail composites that same surface blended.
|
||||
- **H2 — scope-split ordering:** interior roots draw unattached scene
|
||||
particles (`AttachedObjectId == 0`) BEFORE `FlushLandscapeAlpha`
|
||||
(`RetailPViewRenderer.cs` ~:774-780), so an unattached emitter composites
|
||||
in a strictly earlier scope than every dynamic's mesh regardless of
|
||||
distance.
|
||||
- Orb-specific authoring (interior particle system inside a glass sphere) is
|
||||
the classic shape for both.
|
||||
|
||||
**Discriminating probes (no new code needed):** `ACDREAM_WB_DIAG=1` (a
|
||||
translucent-looking orb part appearing in the opaque draw count = H3),
|
||||
`ACDREAM_PROBE_OUTSTAGE=1` (owner-id in the late-landscape particle set vs
|
||||
dynamics set = H2), `ACDREAM_DUMP_ENTITY=<orb setup id>`,
|
||||
`ACDREAM_HIDE_PART=<index>` to confirm the occluding part by construction.
|
||||
|
||||
**Files:** `src/AcDream.App/Rendering/Wb/WbDrawDispatcher.cs` (IsOpaque /
|
||||
ClassifyBatches / DeferTransparentGroups), `src/AcDream.App/Rendering/TextureCache.cs`
|
||||
(`DecodeFromDats` bake), `src/AcDream.Core/Textures/SurfaceDecoder.cs`
|
||||
(`ApplyAuthoredTranslucency`), `src/AcDream.App/Rendering/ParticleRenderer.cs`
|
||||
(scope deferral). Related: #225 (RetailAlphaQueue, final visual gate pending),
|
||||
register rows AP-34/AP-21/AD-19.
|
||||
|
||||
**Acceptance:** the Drudge Scrying Orb's particle effect reads through its
|
||||
shell like retail, wielded and on the ground, indoors and out, without
|
||||
regressing the #225 lifestone/candle compositing.
|
||||
|
||||
---
|
||||
|
||||
## #262 — Run-on-the-spot at first login: no displacement until a recall reset
|
||||
|
||||
**Status:** OPEN
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue