NodeMaterial

Class used to create a node based material built by assembling shader blocks

Hierarchy

  • PushMaterial
    • NodeMaterial

Implements

Index

Constructors

Properties

Methods

Constructors

constructor

Find examples in Playground
  • Create a new node based material

    Parameters

    • name: string

      defines the material name

    • Optional scene: Scene

      defines the hosting scene

    • Optional options: Partial<INodeMaterialOptions>

      defines creation option

    Returns NodeMaterial

Properties

_fragmentOutputNodes

Find examples in Playground
_fragmentOutputNodes: NodeMaterialBlock[]

Gets or sets the root nodes of the material fragment (pixel) shader

_vertexOutputNodes

Find examples in Playground
_vertexOutputNodes: NodeMaterialBlock[]

Gets or sets the root nodes of the material vertex shader

allowShaderHotSwapping

Find examples in Playground
allowShaderHotSwapping: boolean

Gets or sets a boolean indicating that the material is allowed 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)

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: Nullable<Array<Animation>>

Stores the animations for the material

attachedBlocks

Find examples in Playground
attachedBlocks: NodeMaterialBlock[]

Gets an array of blocks that needs to be serialized even if they are not yet connected

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

compiledShaders

Find examples in Playground
compiledShaders: string

Get a string representing the shaders built by the current node graph

depthFunction

Find examples in Playground
depthFunction: number

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

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

editorData

Find examples in Playground
editorData: any

Gets or sets data used by visual editor

see

https://nme.babylonjs.com

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: Nullable<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

ignoreAlpha

Find examples in Playground
ignoreAlpha: boolean

Gets or sets a boolean indicating that alpha value must be ignored (This will turn alpha blending off even if an alpha value is produced by the material)

imageProcessingConfiguration

Find examples in Playground
imageProcessingConfiguration: ImageProcessingConfiguration

Sets the Default image processing configuration used either in the this material.

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

inspectableCustomProperties

Find examples in Playground
inspectableCustomProperties: IInspectable[]

List of inspectable custom properties (used by the Inspector)

see

https://doc.babylonjs.com/how_to/debug_layer#extensibility

isFrozen

Find examples in Playground
isFrozen: boolean

Specifies if updates for the material been locked

maxSimultaneousLights

Find examples in Playground
maxSimultaneousLights: number

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

metadata

Find examples in Playground
metadata: any

Gets or sets user defined metadata

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

onBuildObservable

Find examples in Playground
onBuildObservable: Observable<NodeMaterial>

Observable raised when the material is built

onCompiled

Find examples in Playground
onCompiled: Nullable<function>

Callback triggered when the material is compiled

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: Nullable<function>

Callback triggered when an error occurs

onUnBindObservable

Find examples in Playground
onUnBindObservable: Observable<Material>

An event triggered when the material is unbound

options

Find examples in Playground

Gets or sets options to control the node material overall behavior

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

reservedDataStore

Find examples in Playground
reservedDataStore: any

For internal use only. Please do not use.

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

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

Stores the clock-wise side orientation

Static CounterClockWiseSideOrientation

Find examples in Playground
CounterClockWiseSideOrientation: number

Stores the counter clock-wise side orientation

Static EditorURL

Find examples in Playground
EditorURL: string

Define the URl to load node editor script

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

addOutputNode

Find examples in Playground
  • Add a new block to the list of output nodes

    Parameters

    Returns this

    the current material

bind

Find examples in Playground
  • Parameters

    Returns void

bindForSubMesh

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

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

    Parameters

    • normalMatrix: Matrix

      the matrix to bind

    Returns void

bindOnlyWorldMatrix

Find examples in Playground
  • bindOnlyWorldMatrix(world: Matrix): void
  • Binds the world matrix to the material

    Parameters

    • world: Matrix

      defines the world transformation matrix

    Returns 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

build

Find examples in Playground
  • build(verbose?: boolean): void
  • Build the material and generates the inner effect

    Parameters

    • Optional verbose: boolean

      defines if the build should log activity

    Returns void

clear

Find examples in Playground
  • clear(): void
  • Clear the current material

    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 Nullable<Material>

    the cloned material

dispose

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

edit

Find examples in Playground
  • Launch the node material editor

    Parameters

    Returns Promise<void>

    a promise fulfilled when the node editor is visible

forceCompilation

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

      defines the options to configure the compilation

    • Optional onError: function

      defines a function to execute if the material fails compiling

        • (reason: string): void
        • Parameters

          • reason: string

          Returns void

    Returns void

forceCompilationAsync

Find examples in Playground

freeze

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

    Returns void

generateCode

Find examples in Playground
  • generateCode(): string
  • Generate a string containing the code declaration required to create an equivalent of this material

    Returns string

    a string

getActiveTextures

Find examples in Playground

getAlphaTestTexture

Find examples in Playground

getBindedMeshes

Find examples in Playground

getBlockByName

Find examples in Playground
  • Get a block by its name

    Parameters

    • name: string

      defines the name of the block to retrieve

    Returns Nullable<NodeMaterialBlock>

    the required block or null if not found

getBlockByPredicate

Find examples in Playground

getClassName

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

    Returns string

    the class name

getEffect

Find examples in Playground

getInputBlockByPredicate

Find examples in Playground
  • Get an input block by its name

    Parameters

    • predicate: function

      defines the predicate used to find the good candidate

    Returns Nullable<InputBlock>

    the required input block or null if not found

getInputBlocks

Find examples in Playground
  • Gets the list of input blocks attached to this material

    Returns InputBlock[]

    an array of InputBlocks

getScene

Find examples in Playground

getTextureBlocks

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
  • Parameters

    • Optional mesh: AbstractMesh
    • Optional useInstances: boolean

    Returns boolean

isReadyForSubMesh

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

    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

loadAsync

Find examples in Playground
  • loadAsync(url: string): Promise<void>
  • Loads the current Node Material from a url pointing to a file save by the Node Material Editor

    Parameters

    • url: string

      defines the url to load from

    Returns Promise<void>

    a promise that will fullfil when the material is fully loaded

loadFromSerialization

Find examples in Playground
  • loadFromSerialization(source: any, rootUrl?: string): void
  • Clear the current graph and load a new one from a serialization object

    Parameters

    • source: any

      defines the JSON representation of the material

    • Optional rootUrl: string

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

    Returns void

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.

optimize

Find examples in Playground
  • optimize(): void
  • Runs an otpimization phase to try to improve the shader code

    Returns void

registerOptimizer

Find examples in Playground
  • Adds a new optimizer to the list of optimizers

    Parameters

    Returns this | undefined

    the current material

removeOutputNode

Find examples in Playground
  • Remove a block from the list of root nodes

    Parameters

    Returns this

    the current material

serialize

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

    Returns any

    the serialized material object

setToDefault

Find examples in Playground
  • setToDefault(): void
  • Clear the current material and set it to a default state

    Returns void

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

unregisterOptimizer

Find examples in Playground
  • Remove an optimizer from the list of optimizers

    Parameters

    Returns this | undefined

    the current material

Static CreateDefault

Find examples in Playground
  • Creates a new node material set to default basic configuration

    Parameters

    • name: string

      defines the name of the material

    • Optional scene: Scene

      defines the hosting scene

    Returns NodeMaterial

    a new NodeMaterial

Static Parse

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

    Parameters

    • source: any

      defines the JSON representation of the material

    • scene: Scene

      defines the hosting scene

    • Optional rootUrl: string

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

    Returns NodeMaterial

    a new node material

Generated using TypeDoc