Hilo3d API - v2.0.0-alpha.3
    Preparing search index...

    Interface SemanticMaterial

    Mutable material data bound to one immutable MaterialDefinition.

    Ordinary parameter and texture changes advance revision but never alter the definition, resource layout, supported pass roles or shader topology. A topology change requires a new instance created with another definition.

    interface SemanticMaterial {
        ambient: MaterialTextureValue;
        anisotropyMap: Texture<TextureImageSource> | null;
        anisotropyRotation: number;
        anisotropyStrength: number;
        attenuationColor: Color;
        attenuationDistance: number;
        attributes: MaterialBindingMap;
        baseColor: Color;
        baseColorMap: Texture<TextureImageSource> | null;
        brdfLUT: Texture<TextureImageSource> | null;
        className: string;
        clearcoatFactor: number;
        clearcoatMap: Texture<TextureImageSource> | null;
        clearcoatNormalMap: Texture<TextureImageSource> | null;
        clearcoatNormalScale: number;
        clearcoatRoughnessFactor: number;
        clearcoatRoughnessMap: Texture<TextureImageSource> | null;
        compositing: MaterialCompositing;
        coverage: MaterialCoverage;
        definition: MaterialDefinition;
        diffuse: MaterialTextureValue;
        diffuseEnvIntensity: number;
        diffuseEnvMap: MaterialTexture | null;
        diffuseEnvSphereHarmonics3: SphericalHarmonics3 | null;
        emissionFactor: Color;
        glossiness: number;
        id: string;
        ior: number;
        iridescenceFactor: number;
        iridescenceIor: number;
        iridescenceMap: Texture<TextureImageSource> | null;
        iridescenceThicknessMap: Texture<TextureImageSource> | null;
        iridescenceThicknessMaximum: number;
        iridescenceThicknessMinimum: number;
        isMaterialInstance: true;
        lightMap: Texture<TextureImageSource> | null;
        materialId: number;
        metallic: number;
        metallicMap: Texture<TextureImageSource> | null;
        metallicRoughnessMap: Texture<TextureImageSource> | null;
        name: string | null;
        occlusionMap: Texture<TextureImageSource> | null;
        occlusionStrength: number;
        reflectivity: number;
        refractivity: number;
        refractRatio: number;
        roughness: number;
        roughnessMap: Texture<TextureImageSource> | null;
        shininess: number;
        specular: MaterialTextureValue;
        specularEnvIntensity: number;
        specularEnvMap: MaterialTexture | null;
        specularEnvMatrix: Matrix4 | null;
        specularGlossinessMap: Texture<TextureImageSource> | null;
        thicknessFactor: number;
        thicknessMap: Texture<TextureImageSource> | null;
        transmissionFactor: number;
        transmissionMap: Texture<TextureImageSource> | null;
        uniformBlocks: Record<string, UniformBuffer>;
        uniforms: MaterialBindingMap;
        userData: unknown;
        get forwardQueue(): "transparent" | "opaque";
        get isTransparent(): boolean;
        get lightType(): string;
        get normalScale(): number;
        set normalScale(value: number): void;
        get opacity(): number;
        set opacity(value: number): void;
        get requiresOpaqueSceneTexture(): boolean;
        get revision(): number;
        destroyTextures(): void;
        getAttributeData(
            name: string,
            mesh: Mesh,
            programInfo: ProgramBindingInfo,
        ): unknown;
        getAttributeInfo(name: string): MaterialBindingInfo;
        getInstancedUniforms(): readonly InstancedUniform[];
        getRenderOption(option?: ShaderOptions): ShaderOptions;
        getTextures(): readonly MaterialTexture[];
        getTextureSlot(name: string): MaterialTextureSlotBinding | null;
        getUniformData(
            name: string,
            mesh: Mesh,
            programInfo: ProgramBindingInfo,
        ): unknown;
        getUniformInfo(name: string): MaterialBindingInfo;
        invalidateData(): void;
        setTextureSlot(
            name: string,
            value: Texture<unknown> | MaterialTextureSlotInput | null,
        ): void;
        [property: string]: unknown;
    }

    Hierarchy (View Summary)

    Indexable

    • [property: string]: unknown
    Index
    anisotropyMap: Texture<TextureImageSource> | null
    anisotropyRotation: number
    anisotropyStrength: number
    attenuationColor: Color
    attenuationDistance: number
    attributes: MaterialBindingMap = {}
    baseColor: Color
    baseColorMap: Texture<TextureImageSource> | null
    brdfLUT: Texture<TextureImageSource> | null
    className: string = 'MaterialInstance'
    clearcoatFactor: number
    clearcoatMap: Texture<TextureImageSource> | null
    clearcoatNormalMap: Texture<TextureImageSource> | null
    clearcoatNormalScale: number
    clearcoatRoughnessFactor: number
    clearcoatRoughnessMap: Texture<TextureImageSource> | null
    compositing: MaterialCompositing
    definition: MaterialDefinition
    diffuseEnvIntensity: number
    diffuseEnvMap: MaterialTexture | null
    diffuseEnvSphereHarmonics3: SphericalHarmonics3 | null
    emissionFactor: Color
    glossiness: number
    id: string
    ior: number
    iridescenceFactor: number
    iridescenceIor: number
    iridescenceMap: Texture<TextureImageSource> | null
    iridescenceThicknessMap: Texture<TextureImageSource> | null
    iridescenceThicknessMaximum: number
    iridescenceThicknessMinimum: number
    isMaterialInstance: true
    lightMap: Texture<TextureImageSource> | null
    materialId: number
    metallic: number
    metallicMap: Texture<TextureImageSource> | null
    metallicRoughnessMap: Texture<TextureImageSource> | null
    name: string | null
    occlusionMap: Texture<TextureImageSource> | null
    occlusionStrength: number
    reflectivity: number
    refractivity: number
    refractRatio: number
    roughness: number
    roughnessMap: Texture<TextureImageSource> | null
    shininess: number
    specularEnvIntensity: number
    specularEnvMap: MaterialTexture | null
    specularEnvMatrix: Matrix4 | null
    specularGlossinessMap: Texture<TextureImageSource> | null
    thicknessFactor: number
    thicknessMap: Texture<TextureImageSource> | null
    transmissionFactor: number
    transmissionMap: Texture<TextureImageSource> | null
    uniformBlocks: Record<string, UniformBuffer> = {}
    uniforms: MaterialBindingMap = {}
    userData: unknown
    • get forwardQueue(): "transparent" | "opaque"

      Forward renderer queue selected from compositing and pass resource dependencies.

      An unblended transmission surface remains compositionally opaque, but it must execute after the opaque scene copy exists and therefore belongs to the transparent/after-opaque queue.

      Returns "transparent" | "opaque"

    • get isTransparent(): boolean

      Whether the forward pass composites this surface with an existing color attachment.

      Returns boolean

    • get requiresOpaqueSceneTexture(): boolean

      Whether the forward shader samples the opaque scene-color copy.

      Returns boolean

    • get revision(): number

      Monotonic instance-data revision observed independently by each renderer.

      Returns number