uDensityDrop — the per-node projected-density thinning uniform.
Every Luxar leaf material (points / lines / gsplats, GLSL and TSL, visual
and picking) declares uDensityDrop: the fraction of the node's elements
the vertex stage drops, chosen per storage index by luxarDensityDropped()
/ densityDroppedNode(). The value is written by the density guard
(scene/density-guard.ts) and mirrored onto the picking material by the
pick pass, so a thinned element can neither be seen nor picked.
Duck-typed on material.uniforms so one helper serves ShaderMaterial
uniform records and the TSL materials' proxyIUniform records alike.
uDensityAlphaExp is its alpha-over (normal) companion on the VISUAL
materials: a thinned alpha-over node has no linear brightness knob, so each
surviving element's alpha is raised to 1 − (1 − α)^uDensityAlphaExp with
the exponent 1/keep — keep·N survivors then transmit exactly what N
elements did. The shaders treat any exponent ≤ 1 (including an unset 0) as
the identity, so an unthinned node is bit-identical.
uDensityDrop— the per-node projected-density thinning uniform.Every Luxar leaf material (points / lines / gsplats, GLSL and TSL, visual and picking) declares
uDensityDrop: the fraction of the node's elements the vertex stage drops, chosen per storage index byluxarDensityDropped()/densityDroppedNode(). The value is written by the density guard (scene/density-guard.ts) and mirrored onto the picking material by the pick pass, so a thinned element can neither be seen nor picked.Duck-typed on
material.uniformsso one helper servesShaderMaterialuniform records and the TSL materials'proxyIUniformrecords alike.uDensityAlphaExpis its alpha-over (normal) companion on the VISUAL materials: a thinned alpha-over node has no linear brightness knob, so each surviving element's alpha is raised to1 − (1 − α)^uDensityAlphaExpwith the exponent1/keep—keep·Nsurvivors then transmit exactly whatNelements did. The shaders treat any exponent ≤ 1 (including an unset 0) as the identity, so an unthinned node is bit-identical.