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

    Class PBRMaterial

    PBR材质

    const material = new Hilo3d.PBRMaterial();
    

    Hierarchy (View Summary)

    Index
    • Parameters

      • params: PBRMaterialParameters = {}

        初始化参数,所有params都会复制到实例上

        • params.lightType: 光照类型,只能为 PBR 或 NONE
        • params.baseColor: 基础颜色
        • params.baseColorMap: 基础颜色贴图(sRGB空间)
        • params.metallic: 金属度
        • params.metallicMap: 金属度贴图
        • params.roughness: 粗糙度
        • params.roughnessMap: 粗糙度贴图
        • params.occlusionMap: 环境光遮蔽贴图
        • params.occlusionStrength: 环境光遮蔽强度
        • params.emission: 放射光贴图(sRGB 空间),或颜色
        • params.diffuseEnvMap: 漫反射辐照(Diffuse IBL)贴图
        • params.diffuseEnvSphereHarmonics3: 漫反射 SphericalHarmonics3
        • params.diffuseEnvIntensity: 漫反射强度
        • params.specularEnvMap: 环境反射(Specular IBL)贴图
        • params.brdfLUT: BRDF贴图,跟环境反射贴图一起使用
        • params.specularEnvIntensity: 环境反射(Specular IBL)贴图强度

      Returns PBRMaterial

    alphaCutoff: number = 0

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

    attributes: MaterialBindingMap = {}
    baseColor: Color = ...

    基础颜色

    baseColorMap: Texture<TextureImageSource> | null = null

    基础颜色贴图(sRGB空间)

    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 = null

    BRDF lookup texture used with an environment reflection map.

    castShadows: boolean = true

    是否投射阴影

    className: string = 'PBRMaterial'
    clearcoatFactor: number = 0

    The clearcoat layer intensity.

    clearcoatMap: Texture<TextureImageSource> | null = null

    The clearcoat layer intensity texture.

    clearcoatNormalMap: Texture<TextureImageSource> | null = null

    The clearcoat normal map texture.

    clearcoatRoughnessFactor: number = 0

    The clearcoat layer roughness.

    clearcoatRoughnessMap: Texture<TextureImageSource> | null = null

    The clearcoat layer roughness texture.

    depthFunc: number = LEQUAL

    深度测试方法

    depthMask: boolean = true

    是否开启depthMask

    depthRange: [number, number] = ...

    深度测试Range

    depthTest: boolean = true

    是否开启深度测试

    diffuseEnvIntensity: number = 1

    漫反射环境强度

    diffuseEnvMap: MaterialTexture | null = null

    漫反射辐照(Diffuse IBL)贴图

    diffuseEnvSphereHarmonics3: SphericalHarmonics3 | null = null

    漫反射 SphericalHarmonics3

    emission: MaterialTextureValue = null

    放射光贴图(sRGB 空间)

    emissionFactor: Color = ...

    The emissive color of the material.

    enableDrawBuffers: boolean = false

    是否开启 drawBuffers

    enableTextureLod: boolean = false

    是否开启 texture lod

    exposure: number = 1

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

    frontFace: number = CCW

    front face winding orientation

    gammaCorrection: boolean = true

    gammaCorrection

    gammaFactor: number = 2.2

    gamma值

    glossiness: number = 1

    光泽度,针对 isSpecularGlossiness 渲染,默认PBR无效

    id: string
    ignoreTransparent: boolean = false

    是否忽略透明度

    isDiffuseEnvAndAmbientLightWorkTogether: boolean = false

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

    isMaterial: true
    isOcclusionInMetallicRoughnessMap: boolean = false

    环境光遮蔽贴图(occlusionMap)包含在 metallicRoughnessMap 的R通道中

    isPBRMaterial: boolean = true
    isSpecularEnvMapIncludeMipmaps: boolean = false

    环境反射是否包含 mipmaps

    isSpecularGlossiness: boolean = false

    是否基于反射光泽度的 PBR,具体见 [KHR_materials_pbrSpecularGlossiness]https://github.com/KhronosGroup/glTF/tree/master/extensions/Khronos/KHR_materials_pbrSpecularGlossiness

    lightMap: Texture<TextureImageSource> | null = null
    lightType: "NONE" | "PBR" = 'PBR'

    光照类型,只能为 PBR 或 NONE

    metallic: number = 1

    金属度

    metallicMap: Texture<TextureImageSource> | null = null

    金属度贴图

    metallicRoughnessMap: Texture<TextureImageSource> | null = null

    金属度及粗糙度贴图,金属度为B通道,粗糙度为G通道,可以指定R通道作为环境光遮蔽

    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 = null

    环境光遮蔽贴图

    occlusionStrength: number = 1

    环境光遮蔽强度

    onBeforeCompile: MaterialBeforeCompile | null = null
    parallaxMap: Texture<TextureImageSource> | null = null

    视差贴图

    receiveShadows: boolean = true

    是否接受阴影

    renderOrder: number = 0

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

    roughness: number = 1

    粗糙度

    roughnessMap: Texture<TextureImageSource> | null = 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 代替。

    specular: Color = ...

    镜面反射率,针对 isSpecularGlossiness 渲染

    specularEnvIntensity: number = 1

    环境反射(Specular IBL)贴图强度

    specularEnvMap: MaterialTexture | null = null

    环境反射(Specular IBL)贴图

    specularGlossinessMap: Texture<TextureImageSource> | null = null

    镜面反射即光泽度贴图,RGB 通道为镜面反射率,A 通道为光泽度

    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.

    usedUniformVectors: number = 11
    useHDR: boolean = false

    是否使用HDR

    usePhysicsLight: boolean = true

    是否使用物理灯光

    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 cullFaceType(): number

      CullFace 类型

      Returns number

    • set cullFaceType(value: number): void

      CullFace 类型

      Parameters

      • value: number

      Returns void

    • get isDirty(): boolean

      当前是否需要强制更新

      Returns boolean

    • set isDirty(value: boolean): void

      Parameters

      • value: boolean

      Returns void

    • 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

    • get side(): number

      显示面,可选值 FRONT, BACK, FRONT_AND_BACK

      Returns number

    • set side(value: number): void

      显示面,可选值 FRONT, BACK, FRONT_AND_BACK

      Parameters

      • value: number

      Returns void

    • get transparent(): boolean

      是否需要透明

      Returns boolean

    • set transparent(value: boolean): void

      是否需要透明

      Parameters

      • value: boolean

      Returns void

    • 增加贴图 uniforms

      Parameters

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

        textureName:semanticName 键值对

      Returns void