This is the default material used in Babylon. It is the best trade off between quality and performances.

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/materials_introduction

Hierarchy

  • PushMaterial
    • StandardMaterial

Constructors

Properties

allowShaderHotSwapping alphaCutOff ambientColor ambientTexture animations applyDecalMapAfterDetailMap bumpTexture checkReadyOnEveryCall checkReadyOnlyOnce clipPlane clipPlane2 clipPlane3 clipPlane4 clipPlane5 clipPlane6 customShaderNameResolve decalMap depthFunction detailMap diffuseColor diffuseFresnelParameters diffuseTexture disableColorWrite disableDepthWrite disableLighting doNotSerialize emissiveColor emissiveFresnelParameters emissiveTexture forceDepthWrite getRenderTargetTextures id indexOfRefraction inspectableCustomProperties invertNormalMapX invertNormalMapY invertRefractionY lightmapTexture linkEmissiveWithDiffuse maxSimultaneousLights metadata name onCompiled onDisposeObservable onError opacityFresnelParameters opacityTexture parallaxScaleBias pluginManager? pointSize prePassConfiguration reflectionFresnelParameters reflectionTexture refractionFresnelParameters refractionTexture reservedDataStore roughness separateCullingPass shadowDepthWrapper sideOrientation specularColor specularPower specularTexture state stencil twoSidedLighting uniqueId useAlphaFromDiffuseTexture useEmissiveAsIllumination useGlossinessFromSpecularMapAlpha useLightmapAsShadowmap useObjectSpaceNormalMap useParallax useParallaxOcclusion useReflectionFresnelFromSpecular useReflectionOverAlpha useSpecularOverAlpha zOffset zOffsetUnits AllDirtyFlag AttributesDirtyFlag ClockWiseSideOrientation CounterClockWiseSideOrientation FresnelDirtyFlag LightDirtyFlag LineListDrawMode LineLoopDrawMode LineStripDrawMode MATERIAL_ALPHABLEND MATERIAL_ALPHATEST MATERIAL_ALPHATESTANDBLEND MATERIAL_NORMALBLENDMETHOD_RNM MATERIAL_NORMALBLENDMETHOD_WHITEOUT MATERIAL_OPAQUE MiscDirtyFlag OnEventObservable PointFillMode PointListDrawMode PrePassDirtyFlag TextureDirtyFlag TriangleFanDrawMode TriangleFillMode TriangleStripDrawMode WireFrameFillMode

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.

ambientColor: Color3

The color of the material lit by the environmental background lighting.

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/materials_introduction#ambient-color-example

ambientTexture: Nullable<BaseTexture>

AKA Occlusion Texture in other nomenclature, it helps adding baked shadows into your material.

animations: Nullable<BabylonAnimation[]>

Stores the animations for the material

applyDecalMapAfterDetailMap: boolean

If sets to true, the decal map will be applied after the detail map. Else, it is applied before (default: false)

bumpTexture: Nullable<BaseTexture>

Bump mapping is a technique to simulate bump and dents on a rendered surface. These are made by creating a normal map from an image. The means to do this can be found on the web, a search for 'normal map generator' will bring up free and paid for methods of doing this.

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/moreMaterials#bump-map

checkReadyOnEveryCall: boolean

Specifies if the ready state should be checked on each call

checkReadyOnlyOnce: boolean

Specifies if the ready state should be checked once

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

    • (shaderName: string, uniforms: string[], uniformBuffers: string[], samplers: string[], defines: string[] | MaterialDefines, attributes?: string[], options?: ICustomShaderNameResolveOptions): string
    • Custom callback helping to override the default shader used in the material.

      Parameters

      • shaderName: string
      • uniforms: string[]
      • uniformBuffers: string[]
      • samplers: string[]
      • defines: string[] | MaterialDefines
      • Optional attributes: string[]
      • Optional options: ICustomShaderNameResolveOptions

      Returns string

decalMap: Nullable<DecalMapConfiguration>

Defines the decal map parameters for the material.

depthFunction: number

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

detailMap: DetailMapConfiguration

Defines the detail map parameters for the material.

diffuseColor: Color3

The basic color of the material as viewed under a light.

diffuseFresnelParameters: FresnelParameters

Define the diffuse fresnel parameters of the material.

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/fresnelParameters

diffuseTexture: Nullable<BaseTexture>

The basic texture of the material as viewed under a light.

disableColorWrite: boolean

Specifies if color writing should be disabled

disableDepthWrite: boolean

Specifies if depth writing should be disabled

disableLighting: boolean

Does lights from the scene impacts this material. It can be a nice trick for performance to disable lighting on a fully emissive material.

doNotSerialize: boolean

Specifies if the material should be serialized

emissiveColor: Color3

Define the color of the material as if self lit. This will be mixed in the final result even in the absence of light.

emissiveFresnelParameters: FresnelParameters

Define the emissive fresnel parameters of the material.

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/fresnelParameters

emissiveTexture: Nullable<BaseTexture>

Define texture of the material as if self lit. This will be mixed in the final result even in the absence of light.

forceDepthWrite: boolean

Specifies if depth writing should be forced

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

Callback triggered to get the render target textures

id: string

The ID of the material

indexOfRefraction: number
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).

invertRefractionY: boolean

Invert the refraction texture alongside the y axis. It can be useful with procedural textures or probe for instance.

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/reflectionTexture#how-to-obtain-reflections-and-refractions

lightmapTexture: Nullable<BaseTexture>

Complex lighting can be computationally expensive to compute at runtime. To save on computation, lightmaps may be used to store calculated lighting in a texture which will be applied to a given mesh.

See

https://doc.babylonjs.com/features/featuresDeepDive/lights/lights_introduction#lightmaps

linkEmissiveWithDiffuse: boolean

If true, some kind of energy conservation will prevent the end result to be more than 1 by reducing the emissive level when the final color is close to one.

maxSimultaneousLights: number

Defines the maximum number of lights that can be used in the material

metadata: any

Gets or sets user defined metadata

name: string

The name of the material

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

opacityFresnelParameters: FresnelParameters

Define the opacity fresnel parameters of the material.

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/fresnelParameters

opacityTexture: Nullable<BaseTexture>

Define the transparency of the material from a texture. The final alpha value can be read either from the red channel (if texture.getAlphaFromRGB is false) or from the luminance or the current texel (if texture.getAlphaFromRGB is true)

parallaxScaleBias: number

Apply a scaling factor that determine which "depth" the height map should reprensent. A value between 0.05 and 0.1 is reasonnable in Parallax, you can reach 0.2 using Parallax Occlusion.

pluginManager?: MaterialPluginManager

Plugin manager for this material

pointSize: number

Stores the size of points

prePassConfiguration: PrePassConfiguration

Defines additional PrePass parameters for the material.

reflectionFresnelParameters: FresnelParameters

Define the reflection fresnel parameters of the material.

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/fresnelParameters

reflectionTexture: Nullable<BaseTexture>
refractionFresnelParameters: FresnelParameters

Define the refraction fresnel parameters of the material.

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/fresnelParameters

refractionTexture: Nullable<BaseTexture>
reservedDataStore: any

For internal use only. Please do not use.

roughness: number

Helps to define how blurry the reflections should appears in the material.

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

sideOrientation: number

Stores the value for side orientation

specularColor: Color3

Define how the color and intensity of the highlight given by the light in the material.

specularPower: number

Defines how sharp are the highlights in the material. The bigger the value the sharper giving a more glossy feeling to the result. Reversely, the smaller the value the blurrier giving a more rough feeling to the result.

specularTexture: Nullable<BaseTexture>

Define how the color and intensity of the highlight given by the light in the material.

state: string

The state of the material

stencil: MaterialStencilState

Gives access to the stencil properties of the material

twoSidedLighting: boolean

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

uniqueId: number

Gets or sets the unique id of the material

useAlphaFromDiffuseTexture: boolean

Does the transparency come from the diffuse texture alpha channel.

useEmissiveAsIllumination: boolean

If true, the emissive value is added into the end result, otherwise it is multiplied in.

useGlossinessFromSpecularMapAlpha: boolean

Defines if the glossiness/roughness of the material should be read from the specular map alpha channel

useLightmapAsShadowmap: boolean

In case of light mapping, define whether the map contains light or shadow informations.

useObjectSpaceNormalMap: boolean

Allows using an object space normal map (instead of tangent space).

useParallax: boolean
useParallaxOcclusion: boolean

Is parallax occlusion enabled or not. If true, the outcome is way more realistic than traditional Parallax but you can expect a performance hit that worthes consideration.

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/parallaxMapping

useReflectionFresnelFromSpecular: boolean

If true automatically deducts the fresnels values from the material specularity.

See

https://doc.babylonjs.com/features/featuresDeepDive/materials/using/fresnelParameters

useReflectionOverAlpha: boolean

Specifies that the material will keeps the reflection highlights over a transparent surface (only the most luminous ones). A car glass is a good exemple of that. When the street lights reflects on it you can not see what is behind.

useSpecularOverAlpha: boolean

Specifies that the material will keep the specular highlights over a transparent surface (only the most luminous ones). A car glass is a good exemple of that. When sun reflects on it you can not see what is behind.

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

FresnelDirtyFlag: 4 = 4

The dirty fresnel flag value

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)

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
  • Gets the alpha value of the material

    Returns number

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

    Parameters

    • value: number

    Returns void

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

    Returns number

  • set alphaMode(value: number): void
  • Sets the value of the alpha mode.

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

    Parameters

    • value: number

    Returns void

  • get backFaceCulling(): boolean
  • Gets the culling state

    Returns boolean

  • set backFaceCulling(value: boolean): void
  • Sets the culling state (true to enable culling, false to disable)

    Parameters

    • value: boolean

    Returns void

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

    Returns boolean

  • set blockDirtyMechanism(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get cameraColorCurves(): Nullable<ColorCurves>
  • The color grading curves provide additional color adjustmnent that is applied after any color grading transform (3D LUT). They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects. These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image; corresponding to low luminance, medium luminance, and high luminance areas respectively.

    Returns Nullable<ColorCurves>

  • set cameraColorCurves(value: Nullable<ColorCurves>): void
  • The color grading curves provide additional color adjustment that is applied after any color grading transform (3D LUT). They allow basic adjustment of saturation and small exposure adjustments, along with color filter tinting to provide white balance adjustment or more stylistic effects. These are similar to controls found in many professional imaging or colorist software. The global controls are applied to the entire image. For advanced tuning, extra controls are provided to adjust the shadow, midtone and highlight areas of the image; corresponding to low luminance, medium luminance, and high luminance areas respectively.

    Parameters

    • value: Nullable<ColorCurves>

    Returns void

  • get cameraColorCurvesEnabled(): boolean
  • Gets whether the color curves effect is enabled.

    Returns boolean

  • set cameraColorCurvesEnabled(value: boolean): void
  • Sets whether the color curves effect is enabled.

    Parameters

    • value: boolean

    Returns void

  • get cameraColorGradingEnabled(): boolean
  • Gets whether the color grading effect is enabled.

    Returns boolean

  • set cameraColorGradingEnabled(value: boolean): void
  • Gets whether the color grading effect is enabled.

    Parameters

    • value: boolean

    Returns void

  • get cameraColorGradingTexture(): Nullable<BaseTexture>
  • Gets the Color Grading 2D Lookup Texture.

    Returns Nullable<BaseTexture>

  • set cameraColorGradingTexture(value: Nullable<BaseTexture>): void
  • Sets the Color Grading 2D Lookup Texture.

    Parameters

    • value: Nullable<BaseTexture>

    Returns void

  • get cameraContrast(): number
  • Gets The camera contrast used on this material.

    Returns number

  • set cameraContrast(value: number): void
  • Sets The camera contrast used on this material.

    Parameters

    • value: number

    Returns void

  • get cameraExposure(): number
  • The camera exposure used on this material. This property is here and not in the camera to allow controlling exposure without full screen post process. This corresponds to a photographic exposure.

    Returns number

  • set cameraExposure(value: number): void
  • The camera exposure used on this material. This property is here and not in the camera to allow controlling exposure without full screen post process. This corresponds to a photographic exposure.

    Parameters

    • value: number

    Returns void

  • get cameraToneMappingEnabled(): boolean
  • Gets whether tonemapping is enabled or not.

    Returns boolean

  • set cameraToneMappingEnabled(value: boolean): void
  • Sets whether tonemapping is enabled or not

    Parameters

    • value: boolean

    Returns void

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

    Returns boolean

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

    Returns boolean

  • set cullBackFaces(value: boolean): void
  • Sets the type of faces that should be culled (true for back faces, false for front faces)

    Parameters

    • value: boolean

    Returns void

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

    Returns number

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

    Parameters

    • value: number

    Returns void

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

    Returns boolean

  • set fogEnabled(value: boolean): void
  • 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 imageProcessingConfiguration(): ImageProcessingConfiguration
  • Gets the image processing configuration used either in this material.

    Returns ImageProcessingConfiguration

  • set imageProcessingConfiguration(value: ImageProcessingConfiguration): void
  • Sets the Default image processing configuration used either in the this material.

    If sets to null, the scene one is in use.

    Parameters

    • value: ImageProcessingConfiguration

    Returns void

  • 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
  • Gets the depth pre-pass value

    Returns boolean

  • set needDepthPrePass(value: boolean): void
  • Sets the need depth pre-pass value

    Parameters

    • value: boolean

    Returns void

  • set onBind(callback: ((Mesh: AbstractMesh) => void)): void
  • Called during a bind event

    Parameters

    Returns void

  • get onBindObservable(): Observable<AbstractMesh>
  • 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

  • get onEffectCreatedObservable(): Observable<{ effect: Effect; subMesh: Nullable<SubMesh> }>
  • An event triggered when the effect is (re)created

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

  • get onUnBindObservable(): Observable<Material>
  • An event triggered when the material is unbound

    Returns Observable<Material>

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

    Returns boolean

  • set pointsCloud(value: boolean): void
  • Sets the state of point cloud mode

    Parameters

    • value: boolean

    Returns void

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

    Returns Nullable<number>

  • set transparencyMode(value: Nullable<number>): void
  • Sets the transparency mode of the material.

    Value Type Description
    0 OPAQUE
    1 ALPHATEST
    2 ALPHABLEND
    3 ALPHATESTANDBLEND

    Parameters

    • value: Nullable<number>

    Returns void

  • get useLogarithmicDepth(): boolean
  • In case the depth buffer does not allow enough depth precision for your scene (might be the case in large scenes) You can try switching to logarithmic depth.

    See

    https://doc.babylonjs.com/features/featuresDeepDive/materials/advanced/logarithmicDepthBuffer

    Returns boolean

  • set useLogarithmicDepth(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get wireframe(): boolean
  • Returns boolean

  • set wireframe(value: boolean): void
  • Sets the state of wireframe mode

    Parameters

    • value: boolean

    Returns void

  • get AmbientTextureEnabled(): boolean
  • Are ambient textures enabled in the application.

    Returns boolean

  • set AmbientTextureEnabled(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get BumpTextureEnabled(): boolean
  • Are bump textures enabled in the application.

    Returns boolean

  • set BumpTextureEnabled(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get ColorGradingTextureEnabled(): boolean
  • Are color grading textures enabled in the application.

    Returns boolean

  • set ColorGradingTextureEnabled(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get DetailTextureEnabled(): boolean
  • Are detail textures enabled in the application.

    Returns boolean

  • set DetailTextureEnabled(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get DiffuseTextureEnabled(): boolean
  • Are diffuse textures enabled in the application.

    Returns boolean

  • set DiffuseTextureEnabled(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get EmissiveTextureEnabled(): boolean
  • Are emissive textures enabled in the application.

    Returns boolean

  • set EmissiveTextureEnabled(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get FresnelEnabled(): boolean
  • Are fresnels enabled in the application.

    Returns boolean

  • set FresnelEnabled(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get LightmapTextureEnabled(): boolean
  • Are lightmap textures enabled in the application.

    Returns boolean

  • set LightmapTextureEnabled(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get OpacityTextureEnabled(): boolean
  • Are opacity textures enabled in the application.

    Returns boolean

  • set OpacityTextureEnabled(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get ReflectionTextureEnabled(): boolean
  • Are reflection textures enabled in the application.

    Returns boolean

  • set ReflectionTextureEnabled(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get RefractionTextureEnabled(): boolean
  • Are refraction textures enabled in the application.

    Returns boolean

  • set RefractionTextureEnabled(value: boolean): void
  • Parameters

    • value: boolean

    Returns void

  • get SpecularTextureEnabled(): boolean
  • Are specular textures enabled in the application.

    Returns boolean

  • set SpecularTextureEnabled(value: boolean): void
  • 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

  • Parameters

    • world: Matrix
    • Optional mesh: Mesh

    Returns 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

  • Binds the submesh to this material by preparing the effect and shader to draw

    Parameters

    • world: Matrix

      defines the world transformation matrix

    • mesh: Mesh

      defines the mesh containing the submesh

    • subMesh: SubMesh

      defines the submesh to bind the material to

    Returns void

  • Binds the given normal matrix to the active effect

    Parameters

    • normalMatrix: Matrix

      the matrix to bind

    Returns void

  • Binds the given world matrix to the active effect

    Parameters

    • world: Matrix

      the matrix to bind

    Returns void

  • Binds the view matrix to the effect

    Parameters

    • effect: Effect

      defines the effect to bind the view matrix to

    Returns 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

  • Builds the material UBO layouts. Used internally during the effect preparation.

    Returns void

  • Makes a duplicate of the material, and gives it a new name

    Returns

    the cloned material

    Parameters

    • name: string

      defines the new name for the duplicated material

    • Optional cloneTexturesOnlyOnce: boolean

      if a texture is used in more than one channel (e.g diffuse and opacity), only clone it once and reuse it on the other channels. Default false.

    • Optional rootUrl: string

      defines the root URL to use to load textures

    Returns StandardMaterial

  • Disposes the material

    Parameters

    • Optional forceDisposeEffect: boolean

      specifies if effects should be forcefully disposed

    • Optional forceDisposeTextures: boolean

      specifies if textures should be forcefully disposed

    Returns void

  • Force shader compilation

    Parameters

    • mesh: AbstractMesh

      defines the mesh associated with this material

    • Optional onCompiled: ((material: Material) => void)

      defines a function to execute once the material is compiled

    • Optional options: Partial<IMaterialCompilationOptions>

      defines the options to configure the compilation

    • Optional onError: ((reason: string) => void)

      defines a function to execute if the material fails compiling

        • (reason: string): void
        • Parameters

          • reason: string

          Returns void

    Returns void

  • Force shader compilation

    Returns

    a promise that resolves when the compilation completes

    Parameters

    • mesh: AbstractMesh

      defines the mesh that will use this material

    • Optional options: Partial<IMaterialCompilationOptions>

      defines additional options for compiling the shaders

    Returns Promise<void>

  • Locks updates for the material

    Returns void

  • Gets the active textures from the material

    Returns

    an array of textures

    Returns BaseTexture[]

  • Get the texture used for alpha test purpose.

    Returns

    the diffuse texture in case of the standard material.

    Returns Nullable<BaseTexture>

  • Get the list of animatables in the material.

    Returns

    the list of animatables object used in the material

    Returns IAnimatable[]

  • Gets the meshes bound to the material

    Returns

    an array of meshes bound to the material

    Returns AbstractMesh[]

  • Gets the current class name of the material e.g. "StandardMaterial" Mainly use in serialization.

    Returns

    the class name

    Returns string

  • Returns Effect

  • Returns the current scene

    Returns

    a Scene

    Returns Scene

  • Specifies if the material uses a texture

    Returns

    a boolean specifying if the material uses the texture

    Parameters

    • texture: BaseTexture

      defines the texture to check against the material

    Returns boolean

  • Parameters

    Returns boolean

  • Get if the submesh is ready to be used and all its information available. Child classes can use it to update shaders

    Returns

    a boolean indicating that the submesh is ready or not

    Parameters

    • mesh: AbstractMesh

      defines the mesh to check

    • subMesh: SubMesh

      defines which submesh to check

    • Optional useInstances: boolean

      specifies that instances should be used

    Returns boolean

  • 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

  • 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

  • Specifies if the material will require alpha blending

    Returns

    a boolean specifying if alpha blending is needed

    Returns boolean

  • Specifies if the mesh will require alpha blending

    Returns

    a boolean specifying if alpha blending is needed for the mesh

    Parameters

    Returns boolean

  • Specifies if this material should be rendered in alpha test mode

    Returns

    a boolean specifying if an alpha test is needed.

    Returns boolean

  • Resets the draw wrappers cache for all submeshes that are using this material

    Returns void

  • Serializes this material

    Returns

    the serialized material object

    Returns any

  • Sets the required values to the prepass renderer.

    Returns

    true if the pre pass is needed.

    Parameters

    • prePassRenderer: PrePassRenderer

      defines the prepass renderer to setup.

    Returns boolean

  • Returns a string representation of the current material

    Returns

    a string with material information

    Parameters

    • Optional fullDetails: boolean

      defines a boolean indicating which levels of logging is desired

    Returns string

  • Unbinds the material from the mesh

    Returns void

  • Unlocks updates for the material

    Returns void

  • Creates a standard material from parsed material data

    Returns

    a new standard material

    Parameters

    • source: any

      defines the JSON representation of the material

    • scene: Scene

      defines the hosting scene

    • rootUrl: string

      defines the root URL to use to load textures and relative dependencies

    Returns StandardMaterial

Generated using TypeDoc