Options
All
  • Public
  • Public/Protected
  • All
Menu

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

https://doc.babylonjs.com/features/featuresDeepDive/materials/shaders/shaderMaterial

Hierarchy

Index

Constructors

Properties

Accessors

Methods

Constructors

  • 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

    https://doc.babylonjs.com/features/featuresDeepDive/materials/shaders/shaderMaterial

    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 Effect.ShadersStore["customVertexShader"] and Effect.ShadersStore["customFragmentShader"]
      • object: { vertexElement: "vertexShaderCode", fragmentElement: "fragmentShaderCode" }, used with shader code in script tags
      • object: { vertexSource: "vertex shader code string", fragmentSource: "fragment shader code string" } using with strings containing the shaders code
      • 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

    • Optional storeEffectOnSubMeshes: boolean

      true to store effect on submeshes, false to store the effect directly in the material class.

    Returns ShaderMaterial

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)

animations: Nullable<Animation[]>

Stores the animations 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

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

depthFunction: number

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

disableColorWrite: boolean

Specifies if color writing should be disabled

disableDepthWrite: boolean

Specifies if depth writing should be disabled

doNotSerialize: boolean

Specifies if the material should be serialized

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

inspectableCustomProperties: IInspectable[]

List of inspectable custom properties (used by the Inspector)

see

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

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

pluginManager?: MaterialPluginManager

Plugin manager for this material

pointSize: number

Stores the size of points

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

sideOrientation: number

Stores the value for side orientation

snippetId: string

Snippet ID if the material was created from the snippet server

state: string

The state of the material

Gives access to the stencil properties of the material

uniqueId: number

Gets or sets the unique id of the material

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

CreateFromSnippetAsync: ((snippetId: string, scene: Scene, rootUrl?: string) => Promise<ShaderMaterial>)

Type declaration

    • Creates a ShaderMaterial from a snippet saved by the Inspector

      Parameters

      • snippetId: string

        defines the snippet to load

      • scene: Scene

        defines the hosting scene

      • Optional rootUrl: string

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

      Returns Promise<ShaderMaterial>

      a promise that will resolve to the new ShaderMaterial

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

SnippetUrl: string

Define the Url to load snippets

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
  • If the material can be rendered to several textures with MRT extension

    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 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 isMultiview(): boolean
  • is multiview set to true?

    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>

  • Gets the options used to compile the shader. They can be modified to trigger a new compilation

    Returns IShaderMaterialOptions

  • 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 shaderPath(): any
  • set shaderPath(shaderPath: any): void
  • Gets the shader path used to define the shader code It can be modified to trigger a new compilation

    Returns any

  • Sets the shader path used to define the shader code It can be modified to trigger a new compilation

    Parameters

    • shaderPath: any

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

  • Sets the state of wireframe mode

    Parameters

    • value: boolean

    Returns void

Methods

  • atomicMaterialsUpdate(callback: ((material: ShaderMaterial) => void)): void
  • 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

  • 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

    • Optional effectOverride: Nullable<Effect>

      If provided, use this effect instead of internal effect

    • Optional subMesh: SubMesh

      defines the submesh to bind the material to

    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

  • 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

  • bindOnlyNormalMatrix(normalMatrix: Matrix): void
  • Binds the given normal matrix to the active effect

    Parameters

    • normalMatrix: Matrix

      the matrix to bind

    Returns void

  • Binds the world matrix to the material

    Parameters

    • world: Matrix

      defines the world transformation matrix

    • Optional effectOverride: Nullable<Effect>

      If provided, use this effect instead of internal effect

    Returns 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
  • Initializes the uniform buffer layout for the shader.

    Returns void

  • 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(forceDisposeEffect?: boolean, forceDisposeTextures?: boolean, notBoundToMesh?: 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

    • Optional notBoundToMesh: boolean

      specifies if the material that is being disposed is known to be not bound to any mesh

    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

    Parameters

    Returns Promise<void>

    a promise that resolves when the compilation completes

  • freeze(): void
  • Locks updates for the material

    Returns void

  • Gets the active textures from the material

    Returns BaseTexture[]

    an array of textures

  • Gets the texture used for the alpha test

    Returns Nullable<BaseTexture>

    the texture to use for alpha testing

  • Returns the animatable textures.

    Returns IAnimatable[]

    • Array of animatable textures.
  • Gets the meshes bound to the material

    Returns AbstractMesh[]

    an array of meshes bound to the material

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

    Returns string

    the class name

  • Returns Effect

  • Returns the current scene

    Returns Scene

    a Scene

  • 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

  • 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

    • Optional subMesh: SubMesh

      defines which submesh to render

    Returns boolean

    true if ready, otherwise false

  • Specifies that the submesh is ready to be used

    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

    a 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 if the material will require alpha blending

    Returns boolean

    a boolean specifying if alpha blending is needed

  • 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 if this material should be rendered in alpha test mode

    Returns boolean

    a boolean specifying if an alpha test is needed.

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

    Returns void

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

    Returns any

    the serialized material object

  • 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

  • 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

  • Set a vec4 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

  • 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

  • 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

  • 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

  • Set a vec4 array in the shader from a Color4 array.

    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

  • Adds, removes, or replaces the specified shader define and value.

    • setDefine("MY_DEFINE", true); // enables a boolean define
    • setDefine("MY_DEFINE", "0.5"); // adds "#define MY_DEFINE 0.5" to the shader (or sets and replaces the value of any existing define with that name)
    • setDefine("MY_DEFINE", false); // disables and removes the define Note if the active defines do change, the shader will be recompiled and this can be expensive.

    Parameters

    • define: string

      the define name e.g., "OUTPUT_TO_SRGB" or "#define OUTPUT_TO_SRGB". If the define was passed into the constructor already, the version used should match that, and in either case, it should not include any appended value.

    • value: string | boolean

      either the value of the define (e.g. a numerical value) or for booleans, true if the define should be enabled or false if it should be disabled

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

  • Set an internal texture in the shader.

    Parameters

    • name: string

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

    • texture: ExternalTexture

      Define the texture to bind to this sampler

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

  • 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

  • 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

  • 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

  • Set a float32Array in the shader from a matrix array.

    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

  • 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(name: string, value: number[] | Float32Array): ShaderMaterial
  • Set a mat2 in the shader from a Float32Array.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: number[] | Float32Array

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

  • setMatrix3x3(name: string, value: number[] | Float32Array): ShaderMaterial
  • Set a mat3 in the shader from a Float32Array.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: number[] | Float32Array

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

  • Sets the required values to the prepass renderer.

    Parameters

    Returns boolean

    true if the pre pass is needed.

  • Set a vec4 in the shader from a Quaternion.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: Quaternion

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

  • Set a vec4 array in the shader from a Quaternion array.

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • value: Quaternion[]

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

  • Set a storage buffer in the shader

    Parameters

    • name: string

      Define the name of the storage buffer as defined in the shader

    • buffer: StorageBuffer

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

  • Set a texture in the shader.

    Parameters

    • name: string

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

    • texture: BaseTexture

      Define the texture to bind to this sampler

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

  • Set a texture array in the shader.

    Parameters

    • name: string

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

    • textures: BaseTexture[]

      Define the list of textures to bind to this sampler

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

  • Set a texture sampler in the shader

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • sampler: TextureSampler

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

  • Set a unsigned 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

  • Set a uniform buffer in the shader

    Parameters

    • name: string

      Define the name of the uniform as defined in the shader

    • buffer: UniformBuffer

      Define the value to give to the uniform

    Returns ShaderMaterial

    the material itself allowing "fluent" like uniform updates

  • 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

  • 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

  • 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(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
  • Unlocks updates for the material

    Returns void

  • Creates a shader material from parsed shader material data

    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 ShaderMaterial

    a new material

  • Creates a new ShaderMaterial from a snippet saved in a remote file

    Parameters

    • name: Nullable<string>

      defines the name of the ShaderMaterial to create (can be null or empty to use the one from the json data)

    • url: string

      defines the url to load from

    • scene: Scene

      defines the hosting scene

    • Optional rootUrl: string

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

    Returns Promise<ShaderMaterial>

    a promise that will resolve to the new ShaderMaterial

  • ParseFromSnippetAsync(snippetId: string, scene: Scene, rootUrl?: string): Promise<ShaderMaterial>
  • Creates a ShaderMaterial from a snippet saved by the Inspector

    Parameters

    • snippetId: string

      defines the snippet to load

    • scene: Scene

      defines the hosting scene

    • Optional rootUrl: string

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

    Returns Promise<ShaderMaterial>

    a promise that will resolve to the new ShaderMaterial

Legend

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

Settings

Theme