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

    Interface SemanticMaterial

    材质基类,一般不直接使用

    interface SemanticMaterial {
        alphaCutoff: number;
        ambient: MaterialTextureValue;
        attributes: MaterialBindingMap;
        baseColor: Color;
        baseColorMap: Texture<TextureImageSource> | null;
        blend: boolean;
        blendDst: number;
        blendDstAlpha: number;
        blendEquation: number;
        blendEquationAlpha: number;
        blendSrc: number;
        blendSrcAlpha: number;
        brdfLUT: Texture<TextureImageSource> | null;
        castShadows: boolean;
        className: string;
        clearcoatFactor: number;
        clearcoatMap: Texture<TextureImageSource> | null;
        clearcoatNormalMap: Texture<TextureImageSource> | null;
        clearcoatRoughnessFactor: number;
        clearcoatRoughnessMap: Texture<TextureImageSource> | null;
        depthFunc: number;
        depthMask: boolean;
        depthRange: [number, number];
        depthTest: boolean;
        diffuse: MaterialTextureValue;
        diffuseEnvIntensity: number;
        diffuseEnvMap: MaterialTexture | null;
        diffuseEnvSphereHarmonics3: SphericalHarmonics3 | null;
        emission: MaterialTextureValue;
        emissionFactor: Color;
        enableDrawBuffers: boolean;
        enableTextureLod: boolean;
        exposure: number;
        frontFace: number;
        gammaCorrection: boolean;
        gammaFactor: number;
        glossiness: number;
        id: string;
        ignoreTransparent: boolean;
        isDiffuseEnvAndAmbientLightWorkTogether: boolean;
        isMaterial: true;
        lightMap: Texture<TextureImageSource> | null;
        lightType: string;
        metallic: number;
        metallicMap: Texture<TextureImageSource> | null;
        metallicRoughnessMap: Texture<TextureImageSource> | null;
        name: string | null;
        needBasicAttributes: boolean;
        needBasicUniforms: boolean;
        normalMap: Texture<TextureImageSource> | null;
        normalMapScale: number;
        occlusionMap: Texture<TextureImageSource> | null;
        occlusionStrength: number;
        onBeforeCompile: MaterialBeforeCompile | null;
        parallaxMap: Texture<TextureImageSource> | null;
        receiveShadows: boolean;
        reflectivity: number;
        refractivity: number;
        refractRatio: number;
        renderOrder: number;
        roughness: number;
        roughnessMap: Texture<TextureImageSource> | null;
        sampleAlphaToCoverage: boolean;
        shaderCacheId: string | null;
        shaderName: string | null;
        shininess: number;
        specular: MaterialTextureValue;
        specularEnvIntensity: number;
        specularEnvMap: MaterialTexture | null;
        specularEnvMatrix: Matrix4 | null;
        specularGlossinessMap: Texture<TextureImageSource> | null;
        stencilFunc: number;
        stencilFuncMask: number;
        stencilFuncRef: number;
        stencilMask: number;
        stencilOpFail: number;
        stencilOpZFail: number;
        stencilOpZPass: number;
        stencilTest: boolean;
        transparency: number | Texture<TextureImageSource>;
        uniformBlocks: Record<string, UniformBuffer>;
        uniforms: MaterialBindingMap;
        useHDR: boolean;
        usePhysicsLight: boolean;
        userData: unknown;
        uvMatrix: Matrix3 | null;
        uvMatrix1: Matrix3 | null;
        wireframe: boolean;
        get cullFace(): boolean;
        set cullFace(value: boolean): void;
        get cullFaceType(): number;
        set cullFaceType(value: number): void;
        get isDirty(): boolean;
        set isDirty(value: boolean): void;
        get premultiplyAlpha(): boolean;
        set premultiplyAlpha(value: boolean): void;
        get revision(): number;
        get side(): number;
        set side(value: number): void;
        get transparent(): boolean;
        set transparent(value: boolean): void;
        addBasicAttributes(): void;
        addBasicUniforms(): void;
        addTextureUniforms(textureUniforms: Readonly<Record<string, string>>): void;
        clone(): Material;
        destroyTextures(): void;
        getAttributeData(
            name: string,
            mesh: Mesh,
            programInfo: ProgramBindingInfo,
        ): unknown;
        getAttributeInfo(name: string): MaterialBindingInfo;
        getInstancedUniforms(): InstancedUniform[];
        getRenderOption(option?: ShaderOptions): ShaderOptions;
        getShadowMaterial(shadowMaterial: Material): Material;
        getTextures(): MaterialTexture[];
        getUniformData(
            name: string,
            mesh: Mesh,
            programInfo: ProgramBindingInfo,
        ): unknown;
        getUniformInfo(name: string): MaterialBindingInfo;
        setDefaultTransparentBlend(): void;
        [property: string]: unknown;
    }

    Hierarchy (View Summary)

    Indexable

    • [property: string]: unknown
    Index
    alphaCutoff: number = 0

    透明度剪裁,如果渲染的颜色透明度大于等于这个值的话渲染为完全不透明,否则渲染为完全透明

    attributes: MaterialBindingMap = {}
    baseColor: Color
    baseColorMap: Texture<TextureImageSource> | null
    blend: boolean = false

    是否开启颜色混合

    blendDst: number = ZERO

    颜色混合目标比例

    blendDstAlpha: number = ZERO

    透明度混合目标比例

    blendEquation: number = FUNC_ADD

    颜色混合方式

    blendEquationAlpha: number = FUNC_ADD

    透明度混合方式

    blendSrc: number = ONE

    颜色混合来源比例

    blendSrcAlpha: number = ONE

    透明度混合来源比例

    brdfLUT: Texture<TextureImageSource> | null
    castShadows: boolean = true

    是否投射阴影

    className: string = 'Material'
    clearcoatFactor: number
    clearcoatMap: Texture<TextureImageSource> | null
    clearcoatNormalMap: Texture<TextureImageSource> | null
    clearcoatRoughnessFactor: number
    clearcoatRoughnessMap: Texture<TextureImageSource> | null
    depthFunc: number = LEQUAL

    深度测试方法

    depthMask: boolean = true

    是否开启depthMask

    depthRange: [number, number] = ...

    深度测试Range

    depthTest: boolean = true

    是否开启深度测试

    diffuseEnvIntensity: number
    diffuseEnvMap: MaterialTexture | null
    diffuseEnvSphereHarmonics3: SphericalHarmonics3 | null
    emission: MaterialTextureValue = null
    emissionFactor: Color
    enableDrawBuffers: boolean = false

    是否开启 drawBuffers

    enableTextureLod: boolean = false

    是否开启 texture lod

    exposure: number = 1

    曝光度,仅在 useHDR 为 true 时生效

    frontFace: number = CCW

    front face winding orientation

    gammaCorrection: boolean = false

    是否开启 gamma 矫正

    gammaFactor: number = 2.2

    gamma值

    glossiness: number
    id: string
    ignoreTransparent: boolean = false

    是否忽略透明度

    isDiffuseEnvAndAmbientLightWorkTogether: boolean = false

    是否环境贴图和环境光同时生效

    isMaterial: true
    lightMap: Texture<TextureImageSource> | null
    lightType: string = 'NONE'

    光照类型

    metallic: number
    metallicMap: Texture<TextureImageSource> | null
    metallicRoughnessMap: Texture<TextureImageSource> | null
    name: string | null = null

    name

    needBasicAttributes: boolean = true

    是否需要加基础 attributes

    needBasicUniforms: boolean = true

    是否需要加基础 uniforms

    normalMap: Texture<TextureImageSource> | null = null

    法线贴图

    normalMapScale: number = 1

    法线贴图scale

    occlusionMap: Texture<TextureImageSource> | null
    occlusionStrength: number
    onBeforeCompile: MaterialBeforeCompile | null = null
    parallaxMap: Texture<TextureImageSource> | null = null

    视差贴图

    receiveShadows: boolean = true

    是否接受阴影

    reflectivity: number
    refractivity: number
    refractRatio: number
    renderOrder: number = 0

    渲染顺序数字小的先渲染(透明物体和不透明在不同的队列)

    roughness: number
    roughnessMap: Texture<TextureImageSource> | null
    sampleAlphaToCoverage: boolean = false

    SAMPLE_ALPHA_TO_COVERAGE

    shaderCacheId: string | null = null

    shader cache id

    shaderName: string | null = null

    shader name,会在 shader 中加个 SHADER_NAME 宏,不填用 className 代替。

    shininess: number
    specularEnvIntensity: number
    specularEnvMap: MaterialTexture | null
    specularEnvMatrix: Matrix4 | null
    specularGlossinessMap: Texture<TextureImageSource> | null
    stencilFunc: number = ALWAYS

    stencilFunc func

    stencilFuncMask: number = 0xff

    stencilFunc mask

    stencilFuncRef: number = 1

    stencilFunc ref

    stencilMask: number = 0xff

    stencilMask

    stencilOpFail: number = KEEP

    stencilOp fail

    stencilOpZFail: number = KEEP

    stencilOp zfail

    stencilOpZPass: number = KEEP

    stencilOp zpass

    stencilTest: boolean = false

    stencilTest

    transparency: number | Texture<TextureImageSource> = 1

    透明度 0~1

    uniformBlocks: Record<string, UniformBuffer> = {}

    Registered std140 blocks keyed by GLSL block name.

    uniforms: MaterialBindingMap = {}

    Semantic resolvers for canonical block fields and sampler bindings. Program linking rejects every active classic uniform that is not an opaque sampler.

    useHDR: boolean = false

    是否使用HDR

    usePhysicsLight: boolean = false

    是否使用物理灯光

    userData: unknown = null

    用户数据

    uvMatrix: Matrix3 | null = null

    uv transform eg:new Matrix3().fromRotationTranslationScale(Math.PI/2, 0, 0, 2, 2)

    uvMatrix1: Matrix3 | null = null

    uv1 transform eg:new Matrix3().fromRotationTranslationScale(Math.PI/2, 0, 0, 2, 2)

    wireframe: boolean = false

    是否开启网格模式

    • get premultiplyAlpha(): boolean

      是否预乘 alpha

      Returns boolean

    • set premultiplyAlpha(value: boolean): void

      是否预乘 alpha

      Parameters

      • value: boolean

      Returns void

    • get revision(): number

      Monotonic material-data revision observed independently by every backend.

      Returns number

    • 增加贴图 uniforms

      Parameters

      • textureUniforms: Readonly<Record<string, string>>

        textureName:semanticName 键值对

      Returns void