Material
constMaterial:object
Defined in: material.ts:302
Type Declaration
Section titled “Type Declaration”compileShader()
Section titled “compileShader()”compileShader(
esshaderSource,features?):number
Compiles a .esshader material shader through the engine’s ShaderParser, which
generates the std140 MaterialConstants block from its #pragma param declarations and
registers the param layout. Use this (not createShader) for materials whose parameters
should reach the GPU. Returns a shader handle, or 0 on failure.
Parameters
Section titled “Parameters”esshaderSource
Section titled “esshaderSource”string
features?
Section titled “features?”string[] = []
Returns
Section titled “Returns”number
create()
Section titled “create()”create(
options):number
Creates a material with a shader and optional settings.
Parameters
Section titled “Parameters”options
Section titled “options”Material creation options
Returns
Section titled “Returns”number
Material handle
createFromAsset()
Section titled “createFromAsset()”createFromAsset(
data,shaderHandle,parentHandle?):number
Creates a material from asset data. When
Parameters
Section titled “Parameters”shaderHandle
Section titled “shaderHandle”number
parentHandle?
Section titled “parentHandle?”number
Returns
Section titled “Returns”number
parentHandle is given (the asset’s
instanceOf resolved to a loaded parent), builds a Material Instance carrying only the
asset’s overrides — properties and any present render-state fields. Otherwise builds a
base material on
shaderHandle.
createInstance()
Section titled “createInstance()”createInstance(
source):number
Creates a material instance (UE MaterialInstanceConstant): it inherits
Parameters
Section titled “Parameters”source
Section titled “source”number
Parent material (a base material or another instance)
Returns
Section titled “Returns”number
New instance handle
source’s shader, render state and parameters, and stores only the diffs you later set on it. Editing the parent propagates to every non-overriding instance. Use this for cheap variants (“the same material, but red”) instead of duplicating the whole material.
createShader()
Section titled “createShader()”createShader(
vertexSrc,fragmentSrc):number
Creates a shader from vertex and fragment source code.
Parameters
Section titled “Parameters”vertexSrc
Section titled “vertexSrc”string
GLSL vertex shader source
fragmentSrc
Section titled “fragmentSrc”string
GLSL fragment shader source
Returns
Section titled “Returns”number
Shader handle, or 0 on failure
get(
material):MaterialData|undefined
Gets material data by handle.
Parameters
Section titled “Parameters”material
Section titled “material”number
Material handle
Returns
Section titled “Returns”MaterialData | undefined
Material data or undefined
getBlendMode()
Section titled “getBlendMode()”getBlendMode(
material):BlendMode
Gets the blend mode of a material.
Parameters
Section titled “Parameters”material
Section titled “material”number
Material handle
Returns
Section titled “Returns”Blend mode
getShader()
Section titled “getShader()”getShader(
material):number
Gets the shader handle for a material.
Parameters
Section titled “Parameters”material
Section titled “material”number
Material handle
Returns
Section titled “Returns”number
Shader handle
getSwitch()
Section titled “getSwitch()”getSwitch(
material,name):boolean
Gets an enabled static switch (false when unset).
Parameters
Section titled “Parameters”material
Section titled “material”number
string
Returns
Section titled “Returns”boolean
getUniform()
Section titled “getUniform()”getUniform(
material,name):UniformValue|undefined
Gets a uniform value from a material.
Parameters
Section titled “Parameters”material
Section titled “material”number
Material handle
string
Uniform name
Returns
Section titled “Returns”UniformValue | undefined
Uniform value or undefined
getUniforms()
Section titled “getUniforms()”getUniforms(
material):Map<string,UniformValue>
Gets all uniforms from a material.
Parameters
Section titled “Parameters”material
Section titled “material”number
Material handle
Returns
Section titled “Returns”Map<string, UniformValue>
Map of uniform names to values
isValid()
Section titled “isValid()”isValid(
material):boolean
Checks if a material exists.
Parameters
Section titled “Parameters”material
Section titled “material”number
Material handle
Returns
Section titled “Returns”boolean
True if material exists
release()
Section titled “release()”release(
material):void
Releases a material (does not release the shader).
Parameters
Section titled “Parameters”material
Section titled “material”number
Material handle
Returns
Section titled “Returns”void
releaseAll()
Section titled “releaseAll()”releaseAll():
void
Returns
Section titled “Returns”void
releaseShader()
Section titled “releaseShader()”releaseShader(
shader):void
Releases a shader.
Parameters
Section titled “Parameters”shader
Section titled “shader”number
Shader handle to release
Returns
Section titled “Returns”void
renderPreview()
Section titled “renderPreview()”renderPreview(
material,w,h):Promise<ImageData|null>
Render a material to an offscreen
Parameters
Section titled “Parameters”material
Section titled “material”number
number
number
Returns
Section titled “Returns”Promise<ImageData | null>
w×@p h target and resolve with its pixels (a “material ball” thumbnail). Reuses the real viewport render path — a unit quad lit by one directional light — so the preview matches how the material looks in-scene. The readback rides the engine’s async seam: immediate on GL, resolved when the staging-buffer map lands on WebGPU — one awaited call either way. Null if the engine isn’t ready or the readback fails.
setBlendMode()
Section titled “setBlendMode()”setBlendMode(
material,mode):void
Sets the blend mode for a material.
Parameters
Section titled “Parameters”material
Section titled “material”number
Material handle
Blend mode
Returns
Section titled “Returns”void
setCull()
Section titled “setCull()”setCull(
material,cull):void
Sets the triangle culling mode.
Parameters
Section titled “Parameters”material
Section titled “material”number
Returns
Section titled “Returns”void
setDepthTest()
Section titled “setDepthTest()”setDepthTest(
material,enabled):void
Sets depth test enabled for a material.
Parameters
Section titled “Parameters”material
Section titled “material”number
Material handle
enabled
Section titled “enabled”boolean
Whether depth test is enabled
Returns
Section titled “Returns”void
setDepthWrite()
Section titled “setDepthWrite()”setDepthWrite(
material,enabled):void
Enables/disables depth writes (default on, matching the engine’s 2D state).
Parameters
Section titled “Parameters”material
Section titled “material”number
enabled
Section titled “enabled”boolean
Returns
Section titled “Returns”void
setSwitch()
Section titled “setSwitch()”setSwitch(
material,name,on):void
Sets a static switch on the record. The shader permutation is chosen at compile time, so a change takes effect when the material’s shader is next (re)compiled — callers that need it live recompile the shader with the new switch set.
Parameters
Section titled “Parameters”material
Section titled “material”number
string
boolean
Returns
Section titled “Returns”void
setUniform()
Section titled “setUniform()”setUniform(
material,name,value):void
Sets a uniform value on a material.
Parameters
Section titled “Parameters”material
Section titled “material”number
Material handle
string
Uniform name
Uniform value
Returns
Section titled “Returns”void
tex(
textureId,slot?):TextureRef
Parameters
Section titled “Parameters”textureId
Section titled “textureId”number
number
Returns
Section titled “Returns”toAssetData()
Section titled “toAssetData()”toAssetData(
material,shaderPath,parentPath?):MaterialAssetData|null
Exports material to serializable asset data.
Parameters
Section titled “Parameters”material
Section titled “material”number
Material handle
shaderPath
Section titled “shaderPath”string
Shader file path for asset reference
parentPath?
Section titled “parentPath?”string
Returns
Section titled “Returns”MaterialAssetData | null
Material asset data