API

Interface IGLTFObjectModelTreeMaterialsObject

Accessor tree describing the /materials section of the glTF Object Model. Covers core PBR properties as well as the family of KHR_materials_* extensions.

interface IGLTFObjectModelTreeMaterialsObject {
    __array__: {
        __target__: boolean;
        alphaCutoff: IObjectAccessor<IMaterial, PBRMaterial, number>;
        doubleSided: IObjectAccessor<IMaterial, PBRMaterial, boolean>;
        emissiveFactor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;
        emissiveTexture: {
            extensions: { KHR_texture_transform: ITextureDefinition };
        };
        extensions: {
            KHR_materials_anisotropy: {
                anisotropyRotation: IObjectAccessor<IMaterial, PBRMaterial, number>;
                anisotropyStrength: IObjectAccessor<IMaterial, PBRMaterial, number>;
                anisotropyTexture: {
                    extensions: { KHR_texture_transform: ITextureDefinition };
                };
            };
            KHR_materials_clearcoat: {
                clearcoatFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
                clearcoatNormalTexture: {
                    extensions: { KHR_texture_transform: ITextureDefinition };
                    scale: IObjectAccessor<IMaterial, PBRMaterial, number>;
                };
                clearcoatRoughnessFactor: IObjectAccessor<
                    IMaterial,
                    PBRMaterial,
                    number,
                >;
                clearcoatRoughnessTexture: {
                    extensions: { KHR_texture_transform: ITextureDefinition };
                };
                clearcoatTexture: {
                    extensions: { KHR_texture_transform: ITextureDefinition };
                };
            };
            KHR_materials_diffuse_transmission: {
                diffuseTransmissionColorFactor: IObjectAccessor<
                    IMaterial,
                    PBRMaterial,
                    Nullable<Color3>,
                >;
                diffuseTransmissionColorTexture: {
                    extensions: { KHR_texture_transform: ITextureDefinition };
                };
                diffuseTransmissionFactor: IObjectAccessor<
                    IMaterial,
                    PBRMaterial,
                    number,
                >;
                diffuseTransmissionTexture: {
                    extensions: { KHR_texture_transform: ITextureDefinition };
                };
            };
            KHR_materials_dispersion: {
                dispersion: IObjectAccessor<IMaterial, PBRMaterial, number>;
            };
            KHR_materials_emissive_strength: {
                emissiveStrength: IObjectAccessor<IMaterial, PBRMaterial, number>;
            };
            KHR_materials_ior: {
                ior: IObjectAccessor<IMaterial, PBRMaterial, number>;
            };
            KHR_materials_iridescence: {
                iridescenceFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
                iridescenceIor: IObjectAccessor<IMaterial, PBRMaterial, number>;
                iridescenceTexture: {
                    extensions: { KHR_texture_transform: ITextureDefinition };
                };
                iridescenceThicknessMaximum: IObjectAccessor<
                    IMaterial,
                    PBRMaterial,
                    number,
                >;
                iridescenceThicknessMinimum: IObjectAccessor<
                    IMaterial,
                    PBRMaterial,
                    number,
                >;
                iridescenceThicknessTexture: {
                    extensions: { KHR_texture_transform: ITextureDefinition };
                };
            };
            KHR_materials_sheen: {
                sheenColorFactor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;
                sheenColorTexture: {
                    extensions: { KHR_texture_transform: ITextureDefinition };
                };
                sheenRoughnessFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
                sheenRoughnessTexture: {
                    extensions: { KHR_texture_transform: ITextureDefinition };
                };
            };
            KHR_materials_specular: {
                specularColorFactor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;
                specularColorTexture: {
                    extensions: { KHR_texture_transform: ITextureDefinition };
                };
                specularFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
                specularTexture: {
                    extensions: { KHR_texture_transform: ITextureDefinition };
                };
            };
            KHR_materials_transmission: {
                transmissionFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
                transmissionTexture: {
                    extensions: { KHR_texture_transform: ITextureDefinition };
                };
            };
            KHR_materials_volume: {
                attenuationColor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;
                attenuationDistance: IObjectAccessor<IMaterial, PBRMaterial, number>;
                thicknessFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
                thicknessTexture: {
                    extensions: { KHR_texture_transform: ITextureDefinition };
                };
            };
        };
        normalTexture: {
            extensions: { KHR_texture_transform: ITextureDefinition };
            scale: IObjectAccessor<IMaterial, PBRMaterial, number>;
        };
        occlusionTexture: {
            extensions: { KHR_texture_transform: ITextureDefinition };
            strength: IObjectAccessor<IMaterial, PBRMaterial, number>;
        };
        pbrMetallicRoughness: {
            baseColorFactor: IObjectAccessor<IMaterial, PBRMaterial, Color4>;
            baseColorTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
            };
            metallicFactor: IObjectAccessor<IMaterial, PBRMaterial, Nullable<number>>;
            metallicRoughnessTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
            };
            roughnessFactor: IObjectAccessor<
                IMaterial,
                PBRMaterial,
                Nullable<number>,
            >;
        };
    };
    length: IObjectAccessor<IMaterial[], PBRMaterial[], FlowGraphInteger>;
}
Index
__array__: {
    __target__: boolean;
    alphaCutoff: IObjectAccessor<IMaterial, PBRMaterial, number>;
    doubleSided: IObjectAccessor<IMaterial, PBRMaterial, boolean>;
    emissiveFactor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;
    emissiveTexture: {
        extensions: { KHR_texture_transform: ITextureDefinition };
    };
    extensions: {
        KHR_materials_anisotropy: {
            anisotropyRotation: IObjectAccessor<IMaterial, PBRMaterial, number>;
            anisotropyStrength: IObjectAccessor<IMaterial, PBRMaterial, number>;
            anisotropyTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
            };
        };
        KHR_materials_clearcoat: {
            clearcoatFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
            clearcoatNormalTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
                scale: IObjectAccessor<IMaterial, PBRMaterial, number>;
            };
            clearcoatRoughnessFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
            clearcoatRoughnessTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
            };
            clearcoatTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
            };
        };
        KHR_materials_diffuse_transmission: {
            diffuseTransmissionColorFactor: IObjectAccessor<
                IMaterial,
                PBRMaterial,
                Nullable<Color3>,
            >;
            diffuseTransmissionColorTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
            };
            diffuseTransmissionFactor: IObjectAccessor<
                IMaterial,
                PBRMaterial,
                number,
            >;
            diffuseTransmissionTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
            };
        };
        KHR_materials_dispersion: {
            dispersion: IObjectAccessor<IMaterial, PBRMaterial, number>;
        };
        KHR_materials_emissive_strength: {
            emissiveStrength: IObjectAccessor<IMaterial, PBRMaterial, number>;
        };
        KHR_materials_ior: {
            ior: IObjectAccessor<IMaterial, PBRMaterial, number>;
        };
        KHR_materials_iridescence: {
            iridescenceFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
            iridescenceIor: IObjectAccessor<IMaterial, PBRMaterial, number>;
            iridescenceTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
            };
            iridescenceThicknessMaximum: IObjectAccessor<
                IMaterial,
                PBRMaterial,
                number,
            >;
            iridescenceThicknessMinimum: IObjectAccessor<
                IMaterial,
                PBRMaterial,
                number,
            >;
            iridescenceThicknessTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
            };
        };
        KHR_materials_sheen: {
            sheenColorFactor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;
            sheenColorTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
            };
            sheenRoughnessFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
            sheenRoughnessTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
            };
        };
        KHR_materials_specular: {
            specularColorFactor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;
            specularColorTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
            };
            specularFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
            specularTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
            };
        };
        KHR_materials_transmission: {
            transmissionFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
            transmissionTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
            };
        };
        KHR_materials_volume: {
            attenuationColor: IObjectAccessor<IMaterial, PBRMaterial, Color3>;
            attenuationDistance: IObjectAccessor<IMaterial, PBRMaterial, number>;
            thicknessFactor: IObjectAccessor<IMaterial, PBRMaterial, number>;
            thicknessTexture: {
                extensions: { KHR_texture_transform: ITextureDefinition };
            };
        };
    };
    normalTexture: {
        extensions: { KHR_texture_transform: ITextureDefinition };
        scale: IObjectAccessor<IMaterial, PBRMaterial, number>;
    };
    occlusionTexture: {
        extensions: { KHR_texture_transform: ITextureDefinition };
        strength: IObjectAccessor<IMaterial, PBRMaterial, number>;
    };
    pbrMetallicRoughness: {
        baseColorFactor: IObjectAccessor<IMaterial, PBRMaterial, Color4>;
        baseColorTexture: {
            extensions: { KHR_texture_transform: ITextureDefinition };
        };
        metallicFactor: IObjectAccessor<IMaterial, PBRMaterial, Nullable<number>>;
        metallicRoughnessTexture: {
            extensions: { KHR_texture_transform: ITextureDefinition };
        };
        roughnessFactor: IObjectAccessor<IMaterial, PBRMaterial, Nullable<number>>;
    };
}
length: IObjectAccessor<IMaterial[], PBRMaterial[], FlowGraphInteger>

Number of materials in the array.