Point-specific blending state: identical to
getCompleteBlendingState for every mode EXCEPT normal, where
depthWrite is forced off unconditionally.
Why points diverge from the generic predicate (mirrors the rationale
in getGSplatNormalBlendingState): a point normal sprite
stamps a single FLAT depth plane across the WHOLE billboard disc —
transparent soft fringe included. When the back-to-front sort order is
stale (routine for transparent sprites), that fringe depth-rejects the
opaque core of an atom genuinely behind it, punching occlusion halos.
Sorted transparency never depth-writes, so points opt out of
depthWrite in normal at ANY opacity — unlike the generic
normalModeDepthWrite predicate (opacity >= 0.99), which lines still
use. Trade-off: an opaque normal points layer no longer occludes
additive layers behind it (#1002).
Point-specific blending state: identical to getCompleteBlendingState for every mode EXCEPT
normal, wheredepthWriteis forced off unconditionally.Why points diverge from the generic predicate (mirrors the rationale in getGSplatNormalBlendingState): a point
normalsprite stamps a single FLAT depth plane across the WHOLE billboard disc — transparent soft fringe included. When the back-to-front sort order is stale (routine for transparent sprites), that fringe depth-rejects the opaque core of an atom genuinely behind it, punching occlusion halos. Sorted transparency never depth-writes, so points opt out ofdepthWriteinnormalat ANY opacity — unlike the genericnormalModeDepthWritepredicate (opacity >= 0.99), which lines still use. Trade-off: an opaquenormalpoints layer no longer occludes additive layers behind it (#1002).All OTHER modes are returned unchanged from getCompleteBlendingState.