Every uniform input the pick pass mirrors, keyed by the pick-side name.
uDensityDrop: the density guard's thinning. The pick pass must drop
exactly the elements the visual pass drops (same hash of the same storage
index), or hovering a thinned-away element would resolve a pick the user
cannot see. Read through getDensityDrop, so a visual without the
uniform reads 0 (nothing dropped).
uCoverageTruncate ← uTruncate: the gsplat screen-coverage fade is a
cull rule evaluated with the DRAW pass's T (per node), not with the
tighter 1.5σ pick footprint radius the pick's own uTruncate holds.
uMaxExtentFactor, uCov2DDilation: the other inputs of the gsplat
coverage limit and of the dilated footprint.
uOpacity: the LIVE node opacity. Its writers are the Layers panel, the
LOD cross-fade (scene/lod-fade.ts) and the embedder exposure path, and
only the first ever touched a pick material. A physical mesh keeps its
opacity off the uniform record (three's PBR material), so it is read
through getOpacity().
uNearFade: whether the mesh pick mirrors the house shader's near fade.
A physical visual (three's PBR material) has none, so its pick must not
discard the fade band either.
uIntensity, uHasElementAlpha, uVolumetric (with uOpacity): the
visual weight every point/line/gsplat pick multiplies its falloff by
(../_shared/visibility-glsl.ts). uVolumetric has no visual uniform —
the visual shaders branch on a compile-time define — so it is derived
from the node's blending mode.
uProjectionMode, uRayIntegralFactor: the gsplat amplitude the draw
emits (sum projection's ray-integral boost vs the plain peak).
uDisplayGain: the gsplat display_gain folded into that amplitude, so a
Layers-panel Brightness edit moves pickability with visibility.
Every uniform input the pick pass mirrors, keyed by the pick-side name.
uDensityDrop: the density guard's thinning. The pick pass must drop exactly the elements the visual pass drops (same hash of the same storage index), or hovering a thinned-away element would resolve a pick the user cannot see. Read throughgetDensityDrop, so a visual without the uniform reads 0 (nothing dropped).uCoverageTruncate←uTruncate: the gsplat screen-coverage fade is a cull rule evaluated with the DRAW pass's T (per node), not with the tighter 1.5σ pick footprint radius the pick's ownuTruncateholds.uMaxExtentFactor,uCov2DDilation: the other inputs of the gsplat coverage limit and of the dilated footprint.uOpacity: the LIVE node opacity. Its writers are the Layers panel, the LOD cross-fade (scene/lod-fade.ts) and the embedder exposure path, and only the first ever touched a pick material. A physical mesh keeps its opacity off the uniform record (three's PBR material), so it is read throughgetOpacity().uNearFade: whether the mesh pick mirrors the house shader's near fade. A physical visual (three's PBR material) has none, so its pick must not discard the fade band either.uIntensity,uHasElementAlpha,uVolumetric(withuOpacity): the visual weight every point/line/gsplat pick multiplies its falloff by (../_shared/visibility-glsl.ts).uVolumetrichas no visual uniform — the visual shaders branch on a compile-time define — so it is derived from the node's blending mode.uProjectionMode,uRayIntegralFactor: the gsplat amplitude the draw emits (sum projection's ray-integral boost vs the plain peak).uDisplayGain: the gsplatdisplay_gainfolded into that amplitude, so a Layers-panel Brightness edit moves pickability with visibility.