ShaderMaterial

The ShaderMaterial object has the necessary methods to pass data from your scene to the Vertex and Fragment Shaders and returns a material that can be applied to any mesh.

This returned material effects how the mesh will look based on the code in the shaders.

see

http://doc.babylonjs.com/how_to/shader_material

Hierarchy

Implements

Index

Constructors

constructor

Find examples in Playground
  • Instantiate a new shader material. The ShaderMaterial object has the necessary methods to pass data from your scene to the Vertex and Fragment Shaders and returns a material that can be applied to any mesh. This returned material effects how the mesh will look based on the code in the shaders.

    see

    http://doc.babylonjs.com/how_to/shader_material

    Parameters

    • name: string

      Define the name of the material in the scene

    • scene: Scene

      Define the scene the material belongs to

    • shaderPath: any

      Defines the route to the shader code in one of three ways:

      - object - { vertex: "custom", fragment: "custom" }, used with BABYLON.Effect.ShadersStore["customVertexShader"] and BABYLON.Effect.ShadersStore["customFragmentShader"]
      - object - { vertexElement: "vertexShaderCode", fragmentElement: "fragmentShaderCode" }, used with shader code in <script> tags
      - string - "./COMMON_NAME", used with external files COMMON_NAME.vertex.fx and COMMON_NAME.fragment.fx in index.html folder.
    • Optional options: Partial<IShaderMaterialOptions>

      Define the options used to create the shader

    Returns ShaderMaterial

Properties

alpha

Find examples in Playground
alpha: number

Gets the alpha value of the material

alphaMode

Find examples in Playground
alphaMode: number

Gets the value of the alpha mode

animations

Find examples in Playground
animations: Array<Animation>

Stores the animations for the material

backFaceCulling

Find examples in Playground
backFaceCulling: boolean

Gets the back-face culling state

checkReadyOnEveryCall

Find examples in Playground
checkReadyOnEveryCall: boolean

Specifies if the ready state should be checked on each call

checkReadyOnlyOnce

Find examples in Playground
checkReadyOnlyOnce: boolean

Specifies if the ready state should be checked once

disableDepthWrite

Find examples in Playground
disableDepthWrite: boolean

Specifies if depth writing should be disabled

doNotSerialize

Find examples in Playground
doNotSerialize: boolean

Specifies if the material should be serialized

fillMode

Find examples in Playground
fillMode: number

Sets the material fill mode

fogEnabled

Find examples in Playground
fogEnabled: boolean

Gets the value of the fog enabled state

forceDepthWrite

Find examples in Playground
forceDepthWrite: boolean

Specifies if depth writing should be forced

getRenderTargetTextures

Find examples in Playground
getRenderTargetTextures: function

Callback triggered to get the render target textures

hasRenderTargetTextures

Find examples in Playground
hasRenderTargetTextures: boolean

Gets a boolean indicating that current material needs to register RTT

id

Find examples in Playground
id: string

The ID of the material

isFrozen

Find examples in Playground
isFrozen: boolean

Specifies if updates for the material been locked

name

Find examples in Playground
name: string

The name of the material

needDepthPrePass

Find examples in Playground
needDepthPrePass: boolean

Gets the depth pre-pass value

onBind

Find examples in Playground
onBind: function

Called during a bind event

Type declaration

onBindObservable

Find examples in Playground
onBindObservable: Observable<AbstractMesh>

An event triggered when the material is bound

onCompiled

Find examples in Playground
onCompiled: function

Callback triggered when the material is compiled

Type declaration

    • Parameters

      Returns void

onDispose

Find examples in Playground
onDispose: function

Called during a dispose event

Type declaration

    • (): void
    • Returns void

onDisposeObservable

Find examples in Playground
onDisposeObservable: Observable<Material>

An event triggered when the material is disposed

onError

Find examples in Playground
onError: function

Callback triggered when an error occurs

Type declaration

    • (effect: Effect, errors: string): void
    • Parameters

      • effect: Effect
      • errors: string

      Returns void

onUnBindObservable

Find examples in Playground
onUnBindObservable: Observable<Material>

An event triggered when the material is unbound

pointSize

Find examples in Playground
pointSize: number

Stores the size of points

pointsCloud

Find examples in Playground
pointsCloud: boolean

Sets the state of point cloud mode

separateCullingPass

Find examples in Playground
separateCullingPass: boolean

Specifies if there should be a separate pass for culling

sideOrientation

Find examples in Playground
sideOrientation: number

Stores the value for side orientation

state

Find examples in Playground
state: string

The state of the material

storeEffectOnSubMeshes

Find examples in Playground
storeEffectOnSubMeshes: boolean

Specifies if the effect should be stored on sub meshes

uniqueId

Find examples in Playground
uniqueId: number

Gets or sets the unique id of the material

wireframe

Find examples in Playground
wireframe: boolean

Sets the state of wireframe mode

zOffset

Find examples in Playground
zOffset: number

Stores the z offset value

Static AllDirtyFlag

Find examples in Playground
AllDirtyFlag: number

The all dirty flag value

Static AttributesDirtyFlag

Find examples in Playground
AttributesDirtyFlag: number

The dirty attribute flag value

Static ClockWiseSideOrientation

Find examples in Playground
ClockWiseSideOrientation: number

Returns the clock-wise side orientation

Static CounterClockWiseSideOrientation

Find examples in Playground
CounterClockWiseSideOrientation: number

Returns the counter clock-wise side orientation

Static FresnelDirtyFlag

Find examples in Playground
FresnelDirtyFlag: number

The dirty fresnel flag value

Static LightDirtyFlag

Find examples in Playground
LightDirtyFlag: number

The dirty light flag value

Static LineListDrawMode

Find examples in Playground
LineListDrawMode: number

Returns the line list draw mode

Static LineLoopDrawMode

Find examples in Playground
LineLoopDrawMode: number

Returns the line loop draw mode

Static LineStripDrawMode

Find examples in Playground
LineStripDrawMode: number

Returns the line strip draw mode

Static MiscDirtyFlag

Find examples in Playground
MiscDirtyFlag: number

The dirty misc flag value

Static PointFillMode

Find examples in Playground
PointFillMode: number

Returns the point fill mode

Static PointListDrawMode

Find examples in Playground
PointListDrawMode: number

Returns the point list draw mode

Static TextureDirtyFlag

Find examples in Playground
TextureDirtyFlag: number

The dirty texture flag value

Static TriangleFanDrawMode

Find examples in Playground
TriangleFanDrawMode: number

Returns the triangle fan draw mode

Static TriangleFillMode

Find examples in Playground
TriangleFillMode: number

Returns the triangle fill mode

Static TriangleStripDrawMode

Find examples in Playground
TriangleStripDrawMode: number

Returns the triangle strip draw mode

Static WireFrameFillMode

Find examples in Playground
WireFrameFillMode: number

Returns the wireframe mode

Methods

bind

Find examples in Playground
  • Binds the material to the mesh

    Parameters

    • world: Matrix

      defines the world transformation matrix

    • Optional mesh: Mesh

      defines the mesh to bind the material to

    Returns void

bindForSubMesh

Find examples in Playground
  • Binds the submesh to the material

    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

bindOnlyWorldMatrix

Find examples in Playground
  • bindOnlyWorldMatrix(world: Matrix): void

bindSceneUniformBuffer

Find examples in Playground
  • Binds the scene's uniform buffer to the effect.

    Parameters

    • effect: Effect

      defines the effect to bind to the scene uniform buffer

    • sceneUbo: UniformBuffer

      defines the uniform buffer storing scene data

    Returns void

bindView

Find examples in Playground
  • 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

Find examples in Playground
  • bindViewProjection(effect: Effect): void
  • Binds the view projection matrix to the effect

    Parameters

    • effect: Effect

      defines the effect to bind the view projection matrix to

    Returns void

clone

Find examples in Playground
  • Makes a duplicate of the material, and gives it a new name

    Parameters

    • name: string

      defines the new name for the duplicated material

    Returns ShaderMaterial

    the cloned material

dispose

Find examples in Playground
  • dispose(forceDisposeEffect?: boolean, forceDisposeTextures?: boolean): void
  • 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

forceCompilation

Find examples in Playground
  • forceCompilation(mesh: AbstractMesh, onCompiled?: function, options?: Partial<object>): void
  • Force shader compilation

    Parameters

    • mesh: AbstractMesh

      defines the mesh associated with this material

    • Optional onCompiled: function

      defines a function to execute once the material is compiled

    • Optional options: Partial<object>

      defines the options to configure the compilation

    Returns void

forceCompilationAsync

Find examples in Playground
  • forceCompilationAsync(mesh: AbstractMesh, options?: Partial<object>): Promise<void>
  • Force shader compilation

    Parameters

    • mesh: AbstractMesh

      defines the mesh that will use this material

    • Optional options: Partial<object>

      defines additional options for compiling the shaders

    Returns Promise<void>

    a promise that resolves when the compilation completes

freeze

Find examples in Playground
  • freeze(): void
  • Locks updates for the material

    Returns void

getActiveTextures

Find examples in Playground

getAlphaTestTexture

Find examples in Playground

getBindedMeshes

Find examples in Playground

getClassName

Find examples in Playground
  • getClassName(): string
  • Gets the current class name of the material e.g. "ShaderMaterial" Mainly use in serialization.

    Returns string

    the class name

getEffect

Find examples in Playground

getScene

Find examples in Playground

hasTexture

Find examples in Playground
  • Specifies if the material uses a texture

    Parameters

    • texture: BaseTexture

      defines the texture to check against the material

    Returns boolean

    a boolean specifying if the material uses the texture

isReady

Find examples in Playground
  • isReady(mesh?: AbstractMesh, useInstances?: boolean): boolean
  • Checks if the material is ready to render the requested mesh

    Parameters

    • Optional mesh: AbstractMesh

      Define the mesh to render

    • Optional useInstances: boolean

      Define whether or not the material is used with instances

    Returns boolean

    true if ready, otherwise false

isReadyForSubMesh

Find examples in Playground
  • Specifies that the submesh is ready to be used

    Parameters

    • mesh: AbstractMesh

      defines the mesh to check

    • subMesh: BaseSubMesh

      defines which submesh to check

    • Optional useInstances: boolean

      specifies that instances should be used

    Returns boolean

    a boolean indicating that the submesh is ready or not

markAsDirty

Find examples in Playground
  • 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

Find examples in Playground
  • markDirty(): void
  • Marks the material to indicate that it needs to be re-calculated

    Returns void

needAlphaBlending

Find examples in Playground
  • needAlphaBlending(): boolean
  • Specifies if the material will require alpha blending

    Returns boolean

    a boolean specifying if alpha blending is needed

needAlphaBlendingForMesh

Find examples in Playground
  • Specifies if the mesh will require alpha blending

    Parameters

    Returns boolean

    a boolean specifying if alpha blending is needed for the mesh

needAlphaTesting

Find examples in Playground
  • needAlphaTesting(): boolean
  • Specifies if this material should be rendered in alpha test mode

    Returns boolean

    a boolean specifying if an alpha test is needed.

serialize

Find examples in Playground
  • serialize(): any
  • Serializes this material in a JSON representation

    Returns any

    the serialized material object

setArray2

Find examples in Playground
  • Set a vec2 array in the shader from a number array.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: number[]

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

setArray3

Find examples in Playground
  • Set a vec3 array in the shader from a number array.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: number[]

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

setColor3

Find examples in Playground
  • Set a vec3 in the shader from a Color3.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: Color3

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

setColor3Array

Find examples in Playground
  • Set a vec3 array in the shader from a Color3 array.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: Color3[]

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

setColor4

Find examples in Playground
  • Set a vec4 in the shader from a Color4.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: Color4

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

setFloat

Find examples in Playground
  • Set a float in the shader.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: number

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

setFloats

Find examples in Playground
  • Set an array of floats in the shader.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: number[]

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

setInt

Find examples in Playground
  • Set a int in the shader.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: number

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

setMatrix

Find examples in Playground
  • Set a mat4 in the shader from a Matrix.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: Matrix

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

setMatrix2x2

Find examples in Playground
  • Set a mat2 in the shader from a Float32Array.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: Float32Array

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

setMatrix3x3

Find examples in Playground
  • Set a mat3 in the shader from a Float32Array.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: Float32Array

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

setTexture

Find examples in Playground
  • Set a texture in the shader.

    Parameters

    • name: string

      Define the name of the uniform samplers as defined in the shader

    • texture: Texture

      Define the texture to bind to this sampler

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

setTextureArray

Find examples in Playground
  • Set a texture array in the shader.

    Parameters

    • name: string

      Define the name of the uniform sampler array as defined in the shader

    • textures: Texture[]

      Define the list of textures to bind to this sampler

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

setVector2

Find examples in Playground
  • Set a vec2 in the shader from a Vector2.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: Vector2

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

setVector3

Find examples in Playground
  • Set a vec3 in the shader from a Vector3.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: Vector3

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

setVector4

Find examples in Playground
  • Set a vec4 in the shader from a Vector4.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: Vector4

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

toString

Find examples in Playground
  • 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

Find examples in Playground
  • unbind(): void
  • Unbinds the material from the mesh

    Returns void

unfreeze

Find examples in Playground
  • unfreeze(): void
  • Unlocks updates for the material

    Returns void

Static Parse

Find examples in Playground
  • Creates a shader material from parsed shader material data

    Parameters

    • source: any

      defines the JSON represnetation of the material

    • scene: Scene

      defines the hosting scene

    • rootUrl: string

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

    Returns ShaderMaterial

    a new material

Static ParseMultiMaterial

Find examples in Playground
  • Creates a MultiMaterial from parsed MultiMaterial data.

    Parameters

    • parsedMultiMaterial: any

      defines parsed MultiMaterial data.

    • scene: Scene

      defines the hosting scene

    Returns MultiMaterial

    a new MultiMaterial

Generated using TypeDoc