How a transparent material's fragments combine with what is already in the
colour buffer (§57, §66).
Four modes, chosen because each is one blend function over straight
(non-premultiplied) alpha — the policy §66 requires the engine to state and
this tier commits to — and therefore reachable on every backend the
specification names, WebGL 2 included:
mode
source ×
destination ×
reads as
"normal"
SRC_ALPHA
ONE_MINUS_SRC_ALPHA
ordinary alpha blending
"additive"
SRC_ALPHA
ONE
light, glow, fire
"multiply"
DST_COLOR
ZERO
shadow, tint, stain
"screen"
ONE
ONE_MINUS_SRC_COLOR
haze, bloom-ish lift
A string union rather than an enum, matching TransformAuthority,
RendererBackend, and RenderItemKind: it serializes, logs, and compares as
itself. The mode is honoured only while a material actually blends — see
Material.transparent.
How a transparent material's fragments combine with what is already in the colour buffer (§57, §66).
Four modes, chosen because each is one blend function over straight (non-premultiplied) alpha — the policy §66 requires the engine to state and this tier commits to — and therefore reachable on every backend the specification names, WebGL 2 included:
"normal"SRC_ALPHAONE_MINUS_SRC_ALPHA"additive"SRC_ALPHAONE"multiply"DST_COLORZERO"screen"ONEONE_MINUS_SRC_COLORA string union rather than an enum, matching
TransformAuthority,RendererBackend, andRenderItemKind: it serializes, logs, and compares as itself. The mode is honoured only while a material actually blends — see Material.transparent.