Map a blending-mode name to its concrete THREE.js material settings.
Unknown modes coerce to 'normal'-equivalent state via the shared
normalizeBlendingMode chokepoint so a malformed zarr attribute
can't crash the panel (and gets the same one-time warning every
other consumer of the raw string gets).
this delegates to getCompleteBlendingState so the LayersPanel
generic fallback path agrees with material-side applyBlendingMode
implementations on blendSrc/blendDst. Without this, switching a
material to max via the UI used to leave blendSrc/blendDst
stale at SrcAlpha/OneMinusSrcAlpha — different from the creation-
time max state (OneFactor/OneFactor).
Map a blending-mode name to its concrete THREE.js material settings.
Unknown modes coerce to
'normal'-equivalent state via the sharednormalizeBlendingModechokepoint so a malformed zarr attribute can't crash the panel (and gets the same one-time warning every other consumer of the raw string gets).this delegates to
getCompleteBlendingStateso the LayersPanel generic fallback path agrees with material-sideapplyBlendingModeimplementations onblendSrc/blendDst. Without this, switching a material tomaxvia the UI used to leaveblendSrc/blendDststale at SrcAlpha/OneMinusSrcAlpha — different from the creation- time max state (OneFactor/OneFactor).