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

    Type Alias MeshShading

    MeshShading: "smooth" | "flat" | "none"

    How a mesh's surface normals are obtained at render time.

    • 'smooth' — use the stored per-vertex normals array, when it is present AND its normal_dims matches the displayed axes (spec §3.4). Interpolated across each triangle, so a welded surface reads as curved.
    • 'flat' — derive a per-fragment normal from screen-space derivatives of the interpolated position, giving a faceted surface. Also the fallback whenever 'smooth' cannot be honoured.
    • 'none' — no lighting at all: the base colour reaches the screen unmodulated, with the diffuse and specular terms suppressed. This is what the other three geometry types always do (they are purely emissive), and what a data basemap needs — a textured globe whose colours carry meaning must not be reshaded by a view-anchored key. Never a default, only ever explicit, since defaulting to it would un-light every existing mesh.

    The writer resolves this at write time and always stamps a concrete value ('smooth' only when normals were supplied), so the viewer never has to guess. An explicit authored value is stamped as given and is never rewritten — an explicit 'smooth' with no stored normals is legal and falls back, and an explicit 'flat' gives a faceted surface even when normals exist.