Optional ReadonlyuseOptional ReadonlyuseOptional ReadonlyblendingLuxar blending mode. Defaults to 'additive' to match the
GLSL wrapper class.
Optional ReadonlygammaFast path: skip the pow(adjusted, vec3(uInvGamma)) call when
the wrapper knows gamma == 1.0. Saves 3 fragment-stage pow()
calls in the default-gamma case (the common case).
Optional ReadonlynoFast path: skip the vColor * uIntensity + uOffset GOG chain
(and its max(..., vec3(0)) clamp) when the wrapper knows
intensity == 1 && offset == 0 — the default and most common
configuration. Saves 1 vec3 multiply, 1 vec3 add, and 1 vec3
max per fragment.
Optional ReadonlyjoinJoin style at degree-2 polyline joints (#790). BUILD-time here, unlike the
GLSL twin's uLineJoin uniform: the TSL vertex stage is traced in a single
Fn() that deliberately avoids structural select() branches, so the
style is a graph variant and the wrapper calls rebuildGraph() when it
changes. Omitted ⇒ the session default.
The camera projection is NOT a config field: the ortho/perspective split
is read per draw from cameraProjectionMatrix (isOrthoProjectionTSL(),
the GLSL twin's luxarLineIsOrtho), so one graph serves both cameras and
a camera-kind flip rebuilds nothing.
Optional ReadonlyprojectionCompile-time projection variant (screen-space quad only). 'ortho' /
'perspective' bake the ortho test into the graph as a constant, so the
compiler drops the other projection's code (a single runtime-ortho graph
measured +4.6% of the GPU pass on the 10M-segment ortho quad under
WebGPU); the ortho variant also carries no view-z varying. The wrapper
picks the variant PER DRAW from the drawn camera's projection matrix
(selectProjectionVariant, _shared/projection-variant.ts) — nothing is
pushed from the CPU. Unset: the ortho test is read at runtime from
cameraProjectionMatrix (the parity harness / ShaderSource path).
Optional ReadonlyelementThe line texture's width, baked into the vertex addressing as a
literal. Defaults to the width resolved from nodes.uLineTex.value;
a wrapper building a SHARED graph (shared-graph-tsl.ts) passes it so
it is part of the graph's configuration key. Read by both line
factories (quad and capsule).
When undefined, derived from
blendingMode === 'max'. Explicit config still wins.