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

    Module rendering/materials/_shared/runtime-uniforms

    The RUNTIME uniforms a visual material's clone() must carry over: the values written after construction (camera broadcast, depth-sort coordinator, density guard, gamma/texture updates) that a fresh material built from the source's config would otherwise reset to the constructor defaults. Config-derived state (opacity, gain, blending, colormap, …) is re-derived by the constructor from the config each clone passes, and texture rebinds go through each wrapper's own rebind chokepoint (which re-stamps the baked texture width), so neither is listed here.

    ONE list per geometry type, shared by the GLSL and TSL twins so the two clones cannot drift; a name a twin does not declare (e.g. uLineJoin, a runtime uniform only in GLSL) is skipped for it. Why each rides along:

    • uResolution, uPixelRatio, uNearCull, maxPointSize, uMaxLinePixelWidth: the camera broadcast — a clone otherwise renders with stale camera state until the next broadcast.
    • uSortedIndexSlot: the active ordering buffer — a clone taken while the geometry draws from slot 1 would read the stale buffer until the coordinator's next per-frame re-assert.
    • uDensityDrop, uDensityAlphaExp: the density guard's thinning — it is re-asserted only on the guard's next visit, which an off-screen node never gets.
    • uInvGamma, uProjectionMode, radiusScale, uLineJoin: derived state a later update set (gamma, blending's projection, the commit's dtype scaling, the join override).
    UniformRecord
    GSPLAT_RUNTIME_UNIFORMS
    POINT_RUNTIME_UNIFORMS
    LINE_RUNTIME_UNIFORMS
    MESH_RUNTIME_UNIFORMS
    copyRuntimeUniforms