OptionalopacityOpacity multiplier (0.0 to 1.0)
OptionalgammaGamma correction (0.1 to 10.0, default 1.0)
OptionalintensityIntensity (linear color multiplier / gain), default 1.0
OptionaloffsetOffset (additive brightness shift / black level), default 0.0
Optionalabsorptionκ — composed node absorption for the volumetric blending mode
(identity 1.0). Inert in every other mode; same shape as
PointMaterialConfig.absorption and GSplatMaterialConfig.absorption
(three-geometry symmetry).
OptionalhasTrue when the dataset's colors carry a per-element alpha channel
(RGBA). Gates the volumetric branch's alpha → optical-depth mapping
(w = −ln(1−a)); the linear per-mode alpha factor needs no gate (RGB
data carries the identity alpha 1.0 in the element texture). Same
shape as GSplatMaterialConfig.hasElementAlpha (three-geometry
symmetry). Normally pushed per-commit by the material sync; the
config field exists so clone() round-trips it.
OptionalblendingBlending mode
OptionaltransparentWhether material is transparent (default true)
OptionaldepthWhether to test against depth buffer (default true; additive sets false)
OptionalcolormapColormap texture for scalar-to-color mapping (256x1 RGB)
OptionalscalarScalar data range [min, max] for normalization before LUT lookup
OptionaljoinJoin style at degree-2 polyline joints (#790). Omitted ⇒ the session
override if one is set, else DEFAULT_LINE_JOIN. See
types/line-join.ts for the cost/fidelity ladder.
OptionalprimitiveLine rendering primitive (#1352). Production passes the per-node
auto-policy resolution (resolveLinePrimitiveForNode, via
createLinesNode); omitted ⇒ the session-wide resolution
(?linePrimitive= override > forced policy > default). Explicit
values also serve harnesses (the GLSL/TSL parity page never runs
bootstrap, so it cannot rely on session state). BUILD-time: the
primitive selects the shader-source pair at construction and cannot be
changed on a live material — a node's resolution is made once, so
nothing ever needs to.
Configuration for line material creation