Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...

    Configuration for line material creation

    interface LineMaterialConfig {
        opacity?: number;
        gamma?: number;
        intensity?: number;
        offset?: number;
        absorption?: number;
        hasElementAlpha?: boolean;
        blendingMode?: BlendingModeName;
        transparent?: boolean;
        depthTest?: boolean;
        colormapTexture?: DataTexture;
        scalarRange?: [number, number];
        join?: LineJoinStyleName;
        primitive?: LinePrimitive;
    }
    Index
    opacity?: number

    Opacity multiplier (0.0 to 1.0)

    gamma?: number

    Gamma correction (0.1 to 10.0, default 1.0)

    intensity?: number

    Intensity (linear color multiplier / gain), default 1.0

    offset?: number

    Offset (additive brightness shift / black level), default 0.0

    absorption?: number

    κ — 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).

    hasElementAlpha?: boolean

    True 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.

    blendingMode?: BlendingModeName

    Blending mode

    transparent?: boolean

    Whether material is transparent (default true)

    depthTest?: boolean

    Whether to test against depth buffer (default true; additive sets false)

    colormapTexture?: DataTexture

    Colormap texture for scalar-to-color mapping (256x1 RGB)

    scalarRange?: [number, number]

    Scalar data range [min, max] for normalization before LUT lookup

    Join 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.

    primitive?: LinePrimitive

    Line 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.