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

Hierarchy

  • PushMaterial
    • NodeMaterial

Constructors

Properties

Accessors

Methods

Constructors

  • 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: NodeMaterialBlock[]

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

_vertexOutputNodes: NodeMaterialBlock[]

Gets or sets the root nodes of the material vertex shader

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<BabylonAnimation[]>

Stores the animations for the material

attachedBlocks: NodeMaterialBlock[]

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

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

comment: string

A free comment about the material

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

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

editorData: any

Gets or sets data used by visual editor

See

https://nme.babylonjs.com

forceAlphaBlending: boolean

Gets or sets a boolean indicating that alpha blending must be enabled no matter what alpha value or alpha channel of the FragmentBlock are

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

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)

inspectableCustomProperties: IInspectable[]

List of inspectable custom properties (used by the Inspector)

See

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

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

onBuildObservable: Observable<NodeMaterial>

Observable raised when the material is built

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

stencil: MaterialStencilState

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

EditorURL: string

Define the Url to load node editor script

FresnelDirtyFlag: 4 = 4

The dirty fresnel flag value

IgnoreTexturesAtLoadTime: boolean

Gets or sets a boolean indicating that node materials should not deserialize textures from json / snippet content

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
  • 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 buildId(): number
  • Gets or sets the unique identifier used to identified the effect associated with the material

    Returns number

  • set buildId(value: number): void
  • Parameters

    • value: number

    Returns void

  • get canRenderToMRT(): boolean
  • If the material can be rendered to several textures with MRT extension

    Returns boolean

  • get compiledShaders(): string
  • Get a string representing the shaders built by the current node graph

    Returns string

  • 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 mode(): NodeMaterialModes
  • Gets or sets the mode property

    Returns NodeMaterialModes

  • set mode(value: NodeMaterialModes): void
  • Parameters

    • value: NodeMaterialModes

    Returns void

  • 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 options(): INodeMaterialOptions
  • Gets or sets options to control the node material overall behavior

    Returns INodeMaterialOptions

  • set options(options: INodeMaterialOptions): void
  • Parameters

    • options: INodeMaterialOptions

    Returns void

  • 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 prePassTextureInputs(): number[]
  • Gets the list of prepass texture required

    Returns number[]

  • get prePassTextureOutputs(): number[]
  • Outputs written to the prepass

    Returns number[]

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

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

    Parameters

    • value: boolean

    Returns void

Methods

  • Add a new block to the list of output nodes

    Returns

    the current material

    Parameters

    • node: NodeMaterialBlock

      defines the node to add

    Returns NodeMaterial

  • 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

    • callback: ((material: NodeMaterial) => void)

      the callback to be executed that will update the material

    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 world matrix to the material

    Parameters

    • world: Matrix

      defines the world transformation matrix

    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

  • Build the material and generates the inner effect

    Parameters

    • Optional verbose: boolean

      defines if the build should log activity

    • Optional updateBuildId: boolean

      defines if the internal build Id should be updated (default is true)

    • Optional autoConfigure: boolean

      defines if the autoConfigure method should be called when initializing blocks (default is false)

    Returns void

  • Initializes the uniform buffer layout for the shader.

    Returns void

  • Clear the current material

    Returns void

  • Makes a duplicate of the current material.

    Parameters

    • name: string

      defines the name to use for the new material

    • Optional shareEffect: boolean

      defines if the clone material should share the same effect (default is false)

    Returns NodeMaterial

  • Use this material as the shadow depth wrapper of a target material

    Parameters

    • targetMaterial: Material

      defines the target material

    Returns void

  • Create the effect to be used as the custom effect for a particle system

    Parameters

    • particleSystem: IParticleSystem

      Particle system to create the effect for

    • Optional onCompiled: ((effect: Effect) => void)

      defines a function to call when the effect creation is successful

        • (effect: Effect): void
        • Parameters

          • effect: Effect

          Returns void

    • Optional onError: ((effect: Effect, errors: string) => void)

      defines a function to call when the effect creation has failed

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

          • effect: Effect
          • errors: string

          Returns void

    Returns void

  • Create the post process effect from the material

    Parameters

    • postProcess: PostProcess

      The post process to create the effect for

    Returns void

  • Create a post process from the material

    Returns

    the post process created

    Parameters

    • camera: Nullable<Camera>

      The camera to apply the render pass to.

    • Optional options: number | PostProcessOptions

      The required width/height ratio to downsize to before computing the render pass. (Use 1.0 for full size)

    • Optional samplingMode: number

      The sampling mode to be used when computing the pass. (default: 0)

    • Optional engine: Engine

      The engine which the post process will be applied. (default: current engine)

    • Optional reusable: boolean

      If the post process can be reused on the same frame. (default: false)

    • Optional textureType: number

      Type of textures used when performing the post process. (default: 0)

    • Optional textureFormat: number

      Format of textures used when performing the post process. (default: TEXTUREFORMAT_RGBA)

    Returns Nullable<PostProcess>

  • Create a new procedural texture based on this node material

    Returns

    the new procedural texture attached to this node material

    Parameters

    • size: number | { height: number; layers?: number; width: number }

      defines the size of the texture

    • scene: Scene

      defines the hosting scene

    Returns Nullable<ProceduralTexture>

  • 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

  • Launch the node material editor

    Returns

    a promise fulfilled when the node editor is visible

    Parameters

    • Optional config: INodeMaterialEditorOptions

      Define the configuration of the editor

    Returns Promise<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

  • Generate a string containing the code declaration required to create an equivalent of this material

    Returns

    a string

    Returns string

  • Gets the active textures from the material

    Returns

    an array of textures

    Returns BaseTexture[]

  • Gets the list of all texture blocks Note that this method will scan all attachedBlocks and return blocks that are texture blocks

    Returns

    Returns NodeMaterialTextureBlocks[]

  • Gets the texture used for the alpha test

    Returns

    the texture to use for alpha testing

    Returns Nullable<BaseTexture>

  • Returns the animatable textures.

    Returns

    • Array of animatable textures.

    Returns IAnimatable[]

  • Gets the meshes bound to the material

    Returns

    an array of meshes bound to the material

    Returns AbstractMesh[]

  • Get a block by its name

    Returns

    the required block or null if not found

    Parameters

    • name: string

      defines the name of the block to retrieve

    Returns null | NodeMaterialBlock

  • Get a block by its name

    Returns

    the required block or null if not found

    Parameters

    • predicate: ((block: NodeMaterialBlock) => boolean)

      defines the predicate used to find the good candidate

        • (block: NodeMaterialBlock): boolean
        • Parameters

          • block: NodeMaterialBlock

          Returns boolean

    Returns null | NodeMaterialBlock

  • Gets the current class name of the material e.g. "NodeMaterial"

    Returns

    the class name

    Returns string

  • Returns Effect

  • Get an input block by its name

    Returns

    the required input block or null if not found

    Parameters

    • predicate: ((block: InputBlock) => boolean)

      defines the predicate used to find the good candidate

        • (block: InputBlock): boolean
        • Parameters

          • block: InputBlock

          Returns boolean

    Returns Nullable<InputBlock>

  • Gets the list of input blocks attached to this material

    Returns

    an array of InputBlocks

    Returns InputBlock[]

  • Returns the current scene

    Returns

    a Scene

    Returns Scene

  • Gets the list of texture blocks Note that this method will only return blocks that are reachable from the final block(s) and only after the material has been built!

    Returns

    an array of texture blocks

    Returns NodeMaterialTextureBlocks[]

  • 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

  • Loads the current Node Material from a url pointing to a file save by the Node Material Editor

    Deprecated

    Please use NodeMaterial.ParseFromFileAsync instead

    Returns

    a promise that will fulfil when the material is fully loaded

    Parameters

    • url: string

      defines the url to load from

    • Optional rootUrl: string

      defines the root URL for nested url in the node material

    Returns Promise<NodeMaterial>

  • Clear the current graph and load a new one from a serialization object

    Deprecated

    Please use the parseSerializedObject method instead

    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

    • Optional merge: boolean

      defines whether or not the source must be merged or replace the current content

    Returns 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

  • 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

  • Runs an otpimization phase to try to improve the shader code

    Returns 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

    • Optional merge: boolean

      defines whether or not the source must be merged or replace the current content

    Returns void

  • Adds a new optimizer to the list of optimizers

    Returns

    the current material

    Parameters

    • optimizer: NodeMaterialOptimizer

      defines the optimizers to add

    Returns undefined | NodeMaterial

  • Remove a block from the current node material

    Parameters

    • block: NodeMaterialBlock

      defines the block to remove

    Returns void

  • Remove a block from the list of root nodes

    Returns

    the current material

    Parameters

    • node: NodeMaterialBlock

      defines the node to remove

    Returns NodeMaterial

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

    Returns void

  • Serializes this material in a JSON representation

    Returns

    the serialized material object

    Parameters

    • Optional selectedBlocks: NodeMaterialBlock[]

    Returns any

  • Sets the required values to the prepass renderer.

    Parameters

    • prePassRenderer: PrePassRenderer

    Returns boolean

  • Clear the current material and set it to a default state

    Returns void

  • Clear the current material and set it to a default state for particle

    Returns void

  • Clear the current material and set it to a default state for post process

    Returns void

  • Clear the current material and set it to a default state for procedural texture

    Returns void

  • 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

  • Remove an optimizer from the list of optimizers

    Returns

    the current material

    Parameters

    • optimizer: NodeMaterialOptimizer

      defines the optimizers to remove

    Returns undefined | NodeMaterial

  • Awaits for all the material textures to be ready before resolving the returned promise.

    Returns Promise<void[]>

  • Creates a new node material set to default basic configuration

    Returns

    a new NodeMaterial

    Parameters

    • name: string

      defines the name of the material

    • Optional scene: Scene

      defines the hosting scene

    Returns NodeMaterial

  • Creates a node material from parsed material data

    Returns

    a new node material

    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

  • Creates a node material from a snippet saved in a remote file

    Returns

    a promise that will resolve to the new node material

    Parameters

    • name: string

      defines the name of the material to create

    • url: string

      defines the url to load from

    • scene: Scene

      defines the hosting scene

    • Optional rootUrl: string

      defines the root URL for nested url in the node material

    • Optional skipBuild: boolean

      defines whether to build the node material

    • Optional targetMaterial: NodeMaterial

      defines a material to use instead of creating a new one

    Returns Promise<NodeMaterial>

  • Creates a node material from a snippet saved by the node material editor

    Returns

    a promise that will resolve to the new node material

    Parameters

    • snippetId: string

      defines the snippet to load

    • Optional scene: Scene

      defines the hosting scene

    • Optional rootUrl: string

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

    • Optional nodeMaterial: NodeMaterial

      defines a node material to update (instead of creating a new one)

    • Optional skipBuild: boolean

      defines whether to build the node material

    • Optional waitForTextureReadyness: boolean

      defines whether to wait for texture readiness resolving the promise (default: false)

    Returns Promise<NodeMaterial>

  • Checks if a block is a texture block

    Returns

    True if the block is a texture block

    Parameters

    • block: NodeMaterialBlock

      The block to check

    Returns block is NodeMaterialTextureBlocks

Generated using TypeDoc