Options
All
  • Public
  • Public/Protected
  • All
Menu

The PBR material of BJS following the specular glossiness convention.

Hierarchy

Index

Constructors

Properties

Accessors

Methods

Constructors

Properties

allowShaderHotSwapping: boolean

Gets or sets a boolean indicating that the material is allowed (if supported) to do shader hot swapping. This means that the material can keep using a previous shader while a new one is being compiled. This is mostly used when shader parallel compilation is supported (true by default)

alphaCutOff: number

Defines the alpha limits in alpha test mode.

animations: Nullable<Animation[]>

Stores the animations for the material

Defines the anisotropic parameters for the material.

Defines the BRDF parameters for the material.

checkReadyOnEveryCall: boolean

Specifies if the ready state should be checked on each call

checkReadyOnlyOnce: boolean

Specifies if the ready state should be checked once

Defines the clear coat layer parameters for the material.

clipPlane: Nullable<Plane>

Gets or sets the active clipplane 1

clipPlane2: Nullable<Plane>

Gets or sets the active clipplane 2

clipPlane3: Nullable<Plane>

Gets or sets the active clipplane 3

clipPlane4: Nullable<Plane>

Gets or sets the active clipplane 4

clipPlane5: Nullable<Plane>

Gets or sets the active clipplane 5

clipPlane6: Nullable<Plane>

Gets or sets the active clipplane 6

customShaderNameResolve: ((shaderName: string, uniforms: string[], uniformBuffers: string[], samplers: string[], defines: string[] | MaterialDefines, attributes?: string[], options?: ICustomShaderNameResolveOptions) => string)

Type declaration

    • Custom callback helping to override the default shader used in the material.

      Parameters

      Returns string

Defines the decal map parameters for the material.

depthFunction: number

Specifies the depth function that should be used. 0 means the default engine function

Defines the detail map parameters for the material.

diffuseColor: Color3

Specifies the diffuse color of the material.

diffuseTexture: Nullable<BaseTexture>

Specifies the diffuse texture of the material. This can also contains the opacity value in its alpha channel.

disableColorWrite: boolean

Specifies if color writing should be disabled

disableDepthWrite: boolean

Specifies if depth writing should be disabled

disableLighting: boolean

If sets to true, disables all the lights affecting the material.

doNotSerialize: boolean

Specifies if the material should be serialized

emissiveColor: Color3

Emissivie color used to self-illuminate the model.

emissiveTexture: Nullable<BaseTexture>

Emissivie texture used to self-illuminate the model.

environmentTexture: Nullable<BaseTexture>

Environment Texture used in the material (this is use for both reflection and environment lighting).

forceDepthWrite: boolean

Specifies if depth writing should be forced

getRenderTargetTextures: Nullable<(() => SmartArray<RenderTargetTexture>)>

Callback triggered to get the render target textures

glossiness: number

Specifies the glossiness of the material. This indicates "how sharp is the reflection".

id: string

The ID of the material

inspectableCustomProperties: IInspectable[]

List of inspectable custom properties (used by the Inspector)

see

https://doc.babylonjs.com/toolsAndResources/inspector#extensibility

invertNormalMapX: boolean

If sets to true, x component of normal map value will invert (x = 1.0 - x).

invertNormalMapY: boolean

If sets to true, y component of normal map value will invert (y = 1.0 - y).

Defines the iridescence layer parameters for the material.

lightmapTexture: Nullable<BaseTexture>

Stores the pre-calculated light information of a mesh in a texture.

maxSimultaneousLights: number

Number of Simultaneous lights allowed on the material.

metadata: any

Gets or sets user defined metadata

name: string

The name of the material

normalTexture: Nullable<BaseTexture>

Normal map used in the model.

occlusionStrength: number

Occlusion Channel Strength.

occlusionTexture: Nullable<BaseTexture>

Occlusion Texture of the material (adding extra occlusion effects).

onCompiled: Nullable<((effect: Effect) => void)>

Callback triggered when the material is compiled

onDisposeObservable: Observable<Material>

An event triggered when the material is disposed

onError: Nullable<((effect: Effect, errors: string) => void)>

Callback triggered when an error occurs

pluginManager?: MaterialPluginManager

Plugin manager for this material

pointSize: number

Stores the size of points

prePassConfiguration: PrePassConfiguration

Defines additional PrePass parameters for the material.

reservedDataStore: any

For internal use only. Please do not use.

separateCullingPass: boolean

Specifies if there should be a separate pass for culling

shadowDepthWrapper: Nullable<ShadowDepthWrapper>

Custom shadow depth material to use for shadow rendering instead of the in-built one

Defines the Sheen parameters for the material.

sideOrientation: number

Stores the value for side orientation

specularColor: Color3

Specifies the specular color of the material. This indicates how reflective is the material (none to mirror).

specularGlossinessTexture: Nullable<BaseTexture>

Specifies both the specular color RGB and the glossiness A of the material per pixels.

state: string

The state of the material

Gives access to the stencil properties of the material

Defines the SubSurface parameters for the material.

uniqueId: number

Gets or sets the unique id of the material

useLightmapAsShadowmap: boolean

If true, the light map contains occlusion information instead of lighting info.

zOffset: number

Stores the z offset Factor value

zOffsetUnits: number

Stores the z offset Units value

AllDirtyFlag: 63 = 63

The all dirty flag value

AttributesDirtyFlag: 8 = 8

The dirty attribute flag value

ClockWiseSideOrientation: 0 = 0

Stores the clock-wise side orientation

CounterClockWiseSideOrientation: 1 = 1

Stores the counter clock-wise side orientation

DEFAULT_AO_ON_ANALYTICAL_LIGHTS: number

Defines the default value of how much AO map is occluding the analytical lights (point spot...).

FresnelDirtyFlag: 4 = 4

The dirty fresnel flag value

LIGHTFALLOFF_GLTF: 1 = 1

PBRMaterialLightFalloff gltf: light is falling off as described in the gltf moving to PBR document to enhance interoperability with other engines.

LIGHTFALLOFF_PHYSICAL: 0 = 0

PBRMaterialLightFalloff Physical: light is falling off following the inverse squared distance law.

LIGHTFALLOFF_STANDARD: 2 = 2

PBRMaterialLightFalloff Standard: light is falling off like in the standard material to enhance interoperability with other materials.

LightDirtyFlag: 2 = 2

The dirty light flag value

LineListDrawMode: 4 = 4

Returns the line list draw mode

LineLoopDrawMode: 5 = 5

Returns the line loop draw mode

LineStripDrawMode: 6 = 6

Returns the line strip draw mode

MATERIAL_ALPHABLEND: 2 = 2

MaterialTransparencyMode: Pixels are blended (according to the alpha mode) with the already drawn pixels in the current frame buffer.

MATERIAL_ALPHATEST: 1 = 1

MaterialTransparencyMode: Alpha Test mode, pixel are discarded below a certain threshold defined by the alpha cutoff value.

MATERIAL_ALPHATESTANDBLEND: 3 = 3

MaterialTransparencyMode: Pixels are blended (according to the alpha mode) with the already drawn pixels in the current frame buffer. They are also discarded below the alpha cutoff threshold to improve performances.

MATERIAL_NORMALBLENDMETHOD_RNM: 1 = 1

The Reoriented Normal Mapping method is used to blend normals. Details of the algorithm can be found here: https://blog.selfshadow.com/publications/blending-in-detail/

MATERIAL_NORMALBLENDMETHOD_WHITEOUT: 0 = 0

The Whiteout method is used to blend normals. Details of the algorithm can be found here: https://blog.selfshadow.com/publications/blending-in-detail/

MATERIAL_OPAQUE: 0 = 0

MaterialTransparencyMode: No transparency mode, Alpha channel is not use.

MiscDirtyFlag: 16 = 16

The dirty misc flag value

OnEventObservable: Observable<Material>

Event observable which raises global events common to all materials (like MaterialPluginEvent.Created)

PBRMATERIAL_ALPHABLEND: 2 = 2

PBRMaterialTransparencyMode: Pixels are blended (according to the alpha mode) with the already drawn pixels in the current frame buffer.

PBRMATERIAL_ALPHATEST: 1 = 1

PBRMaterialTransparencyMode: Alpha Test mode, pixel are discarded below a certain threshold defined by the alpha cutoff value.

PBRMATERIAL_ALPHATESTANDBLEND: 3 = 3

PBRMaterialTransparencyMode: Pixels are blended (according to the alpha mode) with the already drawn pixels in the current frame buffer. They are also discarded below the alpha cutoff threshold to improve performances.

PBRMATERIAL_OPAQUE: 0 = 0

PBRMaterialTransparencyMode: No transparency mode, Alpha channel is not use.

PointFillMode: 2 = 2

Returns the point fill mode

PointListDrawMode: 3 = 3

Returns the point list draw mode

PrePassDirtyFlag: 32 = 32

The dirty prepass flag value

TextureDirtyFlag: 1 = 1

The dirty texture flag value

TriangleFanDrawMode: 8 = 8

Returns the triangle fan draw mode

TriangleFillMode: 0 = 0

Returns the triangle fill mode

TriangleStripDrawMode: 7 = 7

Returns the triangle strip draw mode

WireFrameFillMode: 1 = 1

Returns the wireframe mode

Accessors

  • get alpha(): number
  • set alpha(value: number): void
  • Gets the alpha value of the material

    Returns number

  • Sets the alpha value of the material

    Parameters

    • value: number

    Returns void

  • get alphaMode(): number
  • set alphaMode(value: number): void
  • Gets the value of the alpha mode

    ValueTypeDescription
    0ALPHA_DISABLE
    1ALPHA_ADD
    2ALPHA_COMBINE
    3ALPHA_SUBTRACT
    4ALPHA_MULTIPLY
    5ALPHA_MAXIMIZED
    6ALPHA_ONEONE
    7ALPHA_PREMULTIPLIED
    8ALPHA_PREMULTIPLIED_PORTERDUFF
    9ALPHA_INTERPOLATE
    10ALPHA_SCREENMODE

    Returns number

  • Sets the value of the alpha mode.

    ValueTypeDescription
    0ALPHA_DISABLE
    1ALPHA_ADD
    2ALPHA_COMBINE
    3ALPHA_SUBTRACT
    4ALPHA_MULTIPLY
    5ALPHA_MAXIMIZED
    6ALPHA_ONEONE
    7ALPHA_PREMULTIPLIED
    8ALPHA_PREMULTIPLIED_PORTERDUFF
    9ALPHA_INTERPOLATE
    10ALPHA_SCREENMODE

    Parameters

    • value: number

    Returns void

  • get backFaceCulling(): boolean
  • set backFaceCulling(value: boolean): void
  • Gets the culling state

    Returns boolean

  • Sets the culling state (true to enable culling, false to disable)

    Parameters

    • value: boolean

    Returns void

  • get blockDirtyMechanism(): boolean
  • set blockDirtyMechanism(value: boolean): void
  • Block the dirty-mechanism for this specific material When set to false after being true the material will be marked as dirty.

    Returns boolean

  • Block the dirty-mechanism for this specific material When set to false after being true the material will be marked as dirty.

    Parameters

    • value: boolean

    Returns void

  • get canRenderToMRT(): boolean
  • Can this material render to several textures at once

    Returns boolean

  • get cullBackFaces(): boolean
  • set cullBackFaces(value: boolean): void
  • Gets the type of faces that should be culled

    Returns boolean

  • Sets the type of faces that should be culled (true for back faces, false for front faces)

    Parameters

    • value: boolean

    Returns void

  • get doubleSided(): boolean
  • set doubleSided(value: boolean): void
  • Gets the current double sided mode.

    Returns boolean

  • If sets to true and backfaceCulling is false, normals will be flipped on the backside.

    Parameters

    • value: boolean

    Returns void

  • get fillMode(): number
  • set fillMode(value: number): void
  • Gets the material fill mode

    Returns number

  • Sets the material fill mode

    Parameters

    • value: number

    Returns void

  • get fogEnabled(): boolean
  • set fogEnabled(value: boolean): void
  • Gets the value of the fog enabled state

    Returns boolean

  • Sets the state for enabling fog

    Parameters

    • value: boolean

    Returns void

  • get hasRenderTargetTextures(): boolean
  • Gets a boolean indicating that current material needs to register RTT

    Returns boolean

  • get isFrozen(): boolean
  • Specifies if updates for the material been locked

    Returns boolean

  • get isPrePassCapable(): boolean
  • Can this material render to prepass

    Returns boolean

  • get needDepthPrePass(): boolean
  • set needDepthPrePass(value: boolean): void
  • Gets the depth pre-pass value

    Returns boolean

  • Sets the need depth pre-pass value

    Parameters

    • value: boolean

    Returns void

  • Called during a bind event

    Parameters

    Returns void

  • An event triggered when the material is bound

    Returns Observable<AbstractMesh>

  • set onDispose(callback: (() => void)): void
  • Called during a dispose event

    Parameters

    • callback: (() => void)
        • (): void
        • Returns void

    Returns void

  • An event triggered when the effect is (re)created

    Returns Observable<{ effect: Effect; subMesh: Nullable<SubMesh> }>

  • An event triggered when the material is unbound

    Returns Observable<Material>

  • get pointsCloud(): boolean
  • set pointsCloud(value: boolean): void
  • Gets the value specifying if point clouds are enabled

    Returns boolean

  • Sets the state of point cloud mode

    Parameters

    • value: boolean

    Returns void

  • get realTimeFiltering(): boolean
  • set realTimeFiltering(b: boolean): void
  • Enables realtime filtering on the texture.

    Returns boolean

  • Enables realtime filtering on the texture.

    Parameters

    • b: boolean

    Returns void

  • get realTimeFilteringQuality(): number
  • set realTimeFilteringQuality(n: number): void
  • Quality switch for realtime filtering

    Returns number

  • Quality switch for realtime filtering

    Parameters

    • n: number

    Returns void

  • get transparencyMode(): Nullable<number>
  • set transparencyMode(value: Nullable<number>): void
  • Gets the current transparency mode.

    Returns Nullable<number>

  • Sets the transparency mode of the material.

    ValueTypeDescription
    0OPAQUE
    1ALPHATEST
    2ALPHABLEND
    3ALPHATESTANDBLEND

    Parameters

    Returns void

  • get useLogarithmicDepth(): boolean
  • set useLogarithmicDepth(value: boolean): void
  • Enabled the use of logarithmic depth buffers, which is good for wide depth buffers.

    Returns boolean

  • Enabled the use of logarithmic depth buffers, which is good for wide depth buffers.

    Parameters

    • value: boolean

    Returns void

  • get useMicroSurfaceFromReflectivityMapAlpha(): boolean
  • Specifies if the reflectivity texture contains the glossiness information in its alpha channel.

    Returns boolean

  • get wireframe(): boolean
  • set wireframe(value: boolean): void
  • Returns boolean

  • Sets the state of wireframe mode

    Parameters

    • value: boolean

    Returns void

Methods

  • This allows you to modify the material without marking it as dirty after every change. This function should be used if you need to make more than one dirty-enabling change to the material - adding a texture, setting a new fill mode and so on. The callback will pass the material as an argument, so you can make your changes to it.

    Parameters

    Returns void

  • bindEyePosition(effect: Effect, variableName?: string): void
  • Binds the view matrix to the effect

    Parameters

    • effect: Effect

      defines the effect to bind the view matrix to

    • Optional variableName: string

      name of the shader variable that will hold the eye position

    Returns void

  • bindOnlyNormalMatrix(normalMatrix: Matrix): void
  • bindOnlyWorldMatrix(world: Matrix): void
  • bindView(effect: Effect): void
  • Binds the view matrix to the effect

    Parameters

    • effect: Effect

      defines the effect to bind the view matrix to

    Returns void

  • bindViewProjection(effect: Effect): void
  • Binds the view projection and projection matrices to the effect

    Parameters

    • effect: Effect

      defines the effect to bind the view projection and projection matrices to

    Returns void

  • buildUniformLayout(): void
  • dispose(forceDisposeEffect?: boolean, forceDisposeTextures?: boolean): void
  • Disposes the resources of the material.

    Parameters

    • Optional forceDisposeEffect: boolean

      Forces the disposal of effects.

    • Optional forceDisposeTextures: boolean

      Forces the disposal of all textures.

    Returns void

  • freeze(): void
  • Returns the animatable textures. If material have animatable metallic texture, then reflectivity texture will not be returned, even if it has animations.

    Returns IAnimatable[]

    • Array of animatable textures.
  • getClassName(): string
  • Checks to see if a texture is used in the material.

    Parameters

    Returns boolean

    • Boolean specifying if a texture is used in the material.
  • isMetallicWorkflow(): boolean
  • Specifies if the material uses metallic roughness workflow.

    Returns boolean

    boolean specifying if the material uses metallic roughness workflow.

  • isReady(mesh?: AbstractMesh, useInstances?: boolean): boolean
  • Specifies that the submesh is ready to be used.

    Parameters

    • mesh: AbstractMesh

      BJS mesh.

    • subMesh: SubMesh

      A submesh of the BJS mesh. Used to check if it is ready.

    • Optional useInstances: boolean

      Specifies that instances should be used.

    Returns boolean

    • boolean indicating that the submesh is ready or not.
  • markAsDirty(flag: number): void
  • Marks a define in the material to indicate that it needs to be re-computed

    Parameters

    • flag: number

      defines a flag used to determine which parts of the material have to be marked as dirty

    Returns void

  • markDirty(forceMaterialDirty?: boolean): void
  • Marks the material to indicate that it needs to be re-calculated

    Parameters

    • Optional forceMaterialDirty: boolean

      Forces the material to be marked as dirty for all components (same as this.markAsDirty(Material.AllDirtyFlag)). You should use this flag if the material is frozen and you want to force a recompilation.

    Returns void

  • needAlphaBlending(): boolean
  • Specifies whether or not this material should be rendered in alpha blend mode.

    Returns boolean

  • Specifies if the mesh will require alpha blending

    Parameters

    Returns boolean

    a boolean specifying if alpha blending is needed for the mesh

  • needAlphaTesting(): boolean
  • Specifies whether or not this material should be rendered in alpha test mode.

    Returns boolean

  • resetDrawCache(): void
  • Resets the draw wrappers cache for all submeshes that are using this material

    Returns void

  • serialize(): any
  • setPrePassRenderer(): boolean
  • Sets the required values to the prepass renderer. It can't be sets when subsurface scattering of this material is disabled. When scene have ability to enable subsurface prepass effect, it will enable.

    Returns boolean

  • toString(fullDetails?: boolean): string
  • Returns a string representation of the current material

    Parameters

    • Optional fullDetails: boolean

      defines a boolean indicating which levels of logging is desired

    Returns string

    a string with material information

  • unbind(): void
  • Unbinds the material from the mesh

    Returns void

  • unfreeze(): void

Legend

  • Inherited constructor
  • Inherited property
  • Inherited method
  • Inherited accessor
  • Constructor
  • Property
  • Method
  • Property
  • Method
  • Static method

Settings

Theme