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

    Class BasicMaterial

    基础材质,支持 NONE, PHONG, BLINN-PHONG, LAMBERT光照模型

    const material = new Hilo3d.BasicMaterial({
    diffuse: new Hilo3d.Color(1, 0, 0, 1)
    });

    Hierarchy (View Summary)

    Index
    • Parameters

      • params: BasicMaterialParameters = {}

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

        • params.lightType: 光照类型,支持: NONE, PHONG, BLINN-PHONG, LAMBERT
        • params.diffuse: 漫反射贴图,或颜色
        • params.ambient: 环境光贴图,或颜色
        • params.specular: 镜面贴图,或颜色
        • params.emission: 放射光贴图,或颜色
        • params.specularEnvMap: 环境贴图
        • params.specularEnvMatrix: 环境贴图变化矩阵,如旋转等
        • params.reflectivity: 反射率
        • params.refractRatio: 折射比率
        • params.refractivity: 折射率
        • params.shininess: 高光发光值

      Returns BasicMaterial

    alphaCutoff: number = 0

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

    ambient: MaterialTextureValue = null

    环境光贴图,或颜色

    attributes: MaterialBindingMap = {}
    blend: boolean = false

    是否开启颜色混合

    blendDst: number = ZERO

    颜色混合目标比例

    blendDstAlpha: number = ZERO

    透明度混合目标比例

    blendEquation: number = FUNC_ADD

    颜色混合方式

    blendEquationAlpha: number = FUNC_ADD

    透明度混合方式

    blendSrc: number = ONE

    颜色混合来源比例

    blendSrcAlpha: number = ONE

    透明度混合来源比例

    castShadows: boolean = true

    是否投射阴影

    className: string = 'BasicMaterial'
    depthFunc: number = LEQUAL

    深度测试方法

    depthMask: boolean = true

    是否开启depthMask

    depthRange: [number, number] = ...

    深度测试Range

    depthTest: boolean = true

    是否开启深度测试

    diffuse: MaterialTextureValue = null

    漫反射贴图,或颜色

    emission: MaterialTextureValue = null

    放射光贴图,或颜色

    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值

    id: string
    ignoreTransparent: boolean = false

    是否忽略透明度

    isBasicMaterial: boolean = true
    isDiffuseEnvAndAmbientLightWorkTogether: boolean = false

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

    isMaterial: true
    lightType: BasicLightType = 'BLINN-PHONG'

    光照类型,支持: NONE, PHONG, BLINN-PHONG, LAMBERT

    name: string | null = null

    name

    needBasicAttributes: boolean = true

    是否需要加基础 attributes

    needBasicUniforms: boolean = true

    是否需要加基础 uniforms

    normalMap: Texture<TextureImageSource> | null = null

    法线贴图

    normalMapScale: number = 1

    法线贴图scale

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

    视差贴图

    receiveShadows: boolean = true

    是否接受阴影

    reflectivity: number = 0

    反射率

    refractivity: number = 0

    折射率

    refractRatio: number = 0

    折射比率

    renderOrder: number = 0

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

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

    高光发光值

    specular: MaterialTextureValue = null

    镜面贴图,或颜色

    specularEnvMap: MaterialTexture | null = null

    环境贴图

    specularEnvMatrix: Matrix4 | null = 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.

    usedUniformVectors: number = 11
    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 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