Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...
    PHYSICAL_MESH_KNOBS: {
        roughness: {
            prop: "roughness";
            label: "Roughness";
            min: 0;
            max: 1;
            default: 1;
            step: 0.01;
            programAffecting: false;
        };
        metalness: {
            prop: "metalness";
            label: "Metalness";
            min: 0;
            max: 1;
            default: 0;
            step: 0.01;
            programAffecting: false;
        };
        clearcoat: {
            prop: "clearcoat";
            label: "Clearcoat";
            min: 0;
            max: 1;
            default: 0;
            step: 0.01;
            programAffecting: true;
        };
        clearcoat_roughness: {
            prop: "clearcoatRoughness";
            label: "Clearcoat roughness";
            min: 0;
            max: 1;
            default: 0;
            step: 0.01;
            programAffecting: false;
        };
        iridescence: {
            prop: "iridescence";
            label: "Iridescence";
            min: 0;
            max: 1;
            default: 0;
            step: 0.01;
            programAffecting: true;
        };
        sheen: {
            prop: "sheen";
            label: "Sheen";
            min: 0;
            max: 1;
            default: 0;
            step: 0.01;
            programAffecting: true;
        };
        transmission: {
            prop: "transmission";
            label: "Transmission";
            min: 0;
            max: 1;
            default: 0;
            step: 0.01;
            programAffecting: true;
        };
        ior: {
            prop: "ior";
            label: "IOR";
            min: 1;
            max: 2.333;
            default: 1.5;
            step: 0.001;
            programAffecting: false;
        };
        thickness: {
            prop: "thickness";
            label: "Thickness";
            min: 0;
            max: number;
            default: 0;
            step: 0.01;
            sliderMax: 10;
            programAffecting: false;
        };
        attenuation_distance: {
            prop: "attenuationDistance";
            label: "Attenuation distance";
            min: 0.001;
            max: number;
            default: number;
            step: 0.01;
            sliderMax: 100;
            maxIsInfinite: true;
            logScale: true;
            programAffecting: false;
        };
        dispersion: {
            prop: "dispersion";
            label: "Dispersion";
            min: 0;
            max: number;
            default: 0;
            step: 0.01;
            sliderMax: 1;
            programAffecting: true;
        };
    } = ...

    The knob table, in Layers-panel order: the Phase 1 surface knobs, then the Phase 2 glass family (spec §3.4). Keys are the ATTR names an author typed — createMeshNode reads them off the node attrs and the panel lists them by the same names.

    Defaults are three's, with one exception documented on PHYSICAL_MESH_DEFAULTS (the sheen colour). attenuation_distance defaults to Infinity = no volume attenuation, exactly three's; the slider reaches it through its top stop.

    Type Declaration

    • Readonlyroughness: {
          prop: "roughness";
          label: "Roughness";
          min: 0;
          max: 1;
          default: 1;
          step: 0.01;
          programAffecting: false;
      }
    • Readonlymetalness: {
          prop: "metalness";
          label: "Metalness";
          min: 0;
          max: 1;
          default: 0;
          step: 0.01;
          programAffecting: false;
      }
    • Readonlyclearcoat: {
          prop: "clearcoat";
          label: "Clearcoat";
          min: 0;
          max: 1;
          default: 0;
          step: 0.01;
          programAffecting: true;
      }
    • Readonlyclearcoat_roughness: {
          prop: "clearcoatRoughness";
          label: "Clearcoat roughness";
          min: 0;
          max: 1;
          default: 0;
          step: 0.01;
          programAffecting: false;
      }
    • Readonlyiridescence: {
          prop: "iridescence";
          label: "Iridescence";
          min: 0;
          max: 1;
          default: 0;
          step: 0.01;
          programAffecting: true;
      }
    • Readonlysheen: {
          prop: "sheen";
          label: "Sheen";
          min: 0;
          max: 1;
          default: 0;
          step: 0.01;
          programAffecting: true;
      }
    • Readonlytransmission: {
          prop: "transmission";
          label: "Transmission";
          min: 0;
          max: 1;
          default: 0;
          step: 0.01;
          programAffecting: true;
      }
    • Readonlyior: {
          prop: "ior";
          label: "IOR";
          min: 1;
          max: 2.333;
          default: 1.5;
          step: 0.001;
          programAffecting: false;
      }
    • Readonlythickness: {
          prop: "thickness";
          label: "Thickness";
          min: 0;
          max: number;
          default: 0;
          step: 0.01;
          sliderMax: 10;
          programAffecting: false;
      }
    • Readonlyattenuation_distance: {
          prop: "attenuationDistance";
          label: "Attenuation distance";
          min: 0.001;
          max: number;
          default: number;
          step: 0.01;
          sliderMax: 100;
          maxIsInfinite: true;
          logScale: true;
          programAffecting: false;
      }
    • Readonlydispersion: {
          prop: "dispersion";
          label: "Dispersion";
          min: 0;
          max: number;
          default: 0;
          step: 0.01;
          sliderMax: 1;
          programAffecting: true;
      }