Documentation / scene / MToonMaterial
Class: MToonMaterial
Defined in: libs/scene/src/material/mtoon.ts:48
MToonMaterial is a material that implements the MToon shader, which is a stylized shader commonly used for rendering anime-style characters. It supports features such as rim lighting, matcap, and outline rendering.
Extends
ToonMaterialBase
Constructors
Constructor
new MToonMaterial():
MToonMaterial
Defined in: libs/scene/src/material/mtoon.ts:70
Returns
MToonMaterial
Overrides
ToonMaterialBase.constructor
Properties
albedoTexture
albedoTexture:
Texture2D<unknown>
Inherited from
ToonMaterialBase.albedoTexture
albedoTextureSampler
albedoTextureSampler:
TextureSampler<unknown>
Inherited from
ToonMaterialBase.albedoTextureSampler
albedoTexCoordIndex
albedoTexCoordIndex:
number
Inherited from
ToonMaterialBase.albedoTexCoordIndex
albedoTexCoordMatrix
albedoTexCoordMatrix:
Matrix4x4
Inherited from
ToonMaterialBase.albedoTexCoordMatrix
hasAlbedoTexture
hasAlbedoTexture: () =>
boolean
Returns
boolean
Inherited from
ToonMaterialBase.hasAlbedoTexture
getAlbedoTextureUniform
getAlbedoTextureUniform: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getAlbedoTextureUniform
getAlbedoTexCoord
getAlbedoTexCoord: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getAlbedoTexCoord
sampleAlbedoTexture
sampleAlbedoTexture: (
scope,texCoord?) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
texCoord?
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.sampleAlbedoTexture
normalTexture
normalTexture:
Texture2D<unknown>
Inherited from
ToonMaterialBase.normalTexture
normalTextureSampler
normalTextureSampler:
TextureSampler<unknown>
Inherited from
ToonMaterialBase.normalTextureSampler
normalTexCoordIndex
normalTexCoordIndex:
number
Inherited from
ToonMaterialBase.normalTexCoordIndex
normalTexCoordMatrix
normalTexCoordMatrix:
Matrix4x4
Inherited from
ToonMaterialBase.normalTexCoordMatrix
hasNormalTexture
hasNormalTexture: () =>
boolean
Returns
boolean
Inherited from
ToonMaterialBase.hasNormalTexture
getNormalTextureUniform
getNormalTextureUniform: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getNormalTextureUniform
getNormalTexCoord
getNormalTexCoord: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getNormalTexCoord
sampleNormalTexture
sampleNormalTexture: (
scope,texCoord?) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
texCoord?
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.sampleNormalTexture
shadeMultiplyTexture
shadeMultiplyTexture:
Texture2D<unknown>
Inherited from
ToonMaterialBase.shadeMultiplyTexture
shadeMultiplyTextureSampler
shadeMultiplyTextureSampler:
TextureSampler<unknown>
Inherited from
ToonMaterialBase.shadeMultiplyTextureSampler
shadeMultiplyTexCoordIndex
shadeMultiplyTexCoordIndex:
number
Inherited from
ToonMaterialBase.shadeMultiplyTexCoordIndex
shadeMultiplyTexCoordMatrix
shadeMultiplyTexCoordMatrix:
Matrix4x4
Inherited from
ToonMaterialBase.shadeMultiplyTexCoordMatrix
hasShadeMultiplyTexture
hasShadeMultiplyTexture: () =>
boolean
Returns
boolean
Inherited from
ToonMaterialBase.hasShadeMultiplyTexture
getShadeMultiplyTextureUniform
getShadeMultiplyTextureUniform: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getShadeMultiplyTextureUniform
getShadeMultiplyTexCoord
getShadeMultiplyTexCoord: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getShadeMultiplyTexCoord
sampleShadeMultiplyTexture
sampleShadeMultiplyTexture: (
scope,texCoord?) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
texCoord?
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.sampleShadeMultiplyTexture
shadingShiftTexture
shadingShiftTexture:
Texture2D<unknown>
Inherited from
ToonMaterialBase.shadingShiftTexture
shadingShiftTextureSampler
shadingShiftTextureSampler:
TextureSampler<unknown>
Inherited from
ToonMaterialBase.shadingShiftTextureSampler
shadingShiftTexCoordIndex
shadingShiftTexCoordIndex:
number
Inherited from
ToonMaterialBase.shadingShiftTexCoordIndex
shadingShiftTexCoordMatrix
shadingShiftTexCoordMatrix:
Matrix4x4
Inherited from
ToonMaterialBase.shadingShiftTexCoordMatrix
hasShadingShiftTexture
hasShadingShiftTexture: () =>
boolean
Returns
boolean
Inherited from
ToonMaterialBase.hasShadingShiftTexture
getShadingShiftTextureUniform
getShadingShiftTextureUniform: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getShadingShiftTextureUniform
getShadingShiftTexCoord
getShadingShiftTexCoord: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getShadingShiftTexCoord
sampleShadingShiftTexture
sampleShadingShiftTexture: (
scope,texCoord?) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
texCoord?
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.sampleShadingShiftTexture
matcapTexture
matcapTexture:
Texture2D<unknown>
Inherited from
ToonMaterialBase.matcapTexture
matcapTextureSampler
matcapTextureSampler:
TextureSampler<unknown>
Inherited from
ToonMaterialBase.matcapTextureSampler
matcapTexCoordIndex
matcapTexCoordIndex:
number
Inherited from
ToonMaterialBase.matcapTexCoordIndex
matcapTexCoordMatrix
matcapTexCoordMatrix:
Matrix4x4
Inherited from
ToonMaterialBase.matcapTexCoordMatrix
hasMatcapTexture
hasMatcapTexture: () =>
boolean
Returns
boolean
Inherited from
ToonMaterialBase.hasMatcapTexture
getMatcapTextureUniform
getMatcapTextureUniform: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getMatcapTextureUniform
getMatcapTexCoord
getMatcapTexCoord: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getMatcapTexCoord
sampleMatcapTexture
sampleMatcapTexture: (
scope,texCoord?) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
texCoord?
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.sampleMatcapTexture
rimMultiplyTexture
rimMultiplyTexture:
Texture2D<unknown>
Inherited from
ToonMaterialBase.rimMultiplyTexture
rimMultiplyTextureSampler
rimMultiplyTextureSampler:
TextureSampler<unknown>
Inherited from
ToonMaterialBase.rimMultiplyTextureSampler
rimMultiplyTexCoordIndex
rimMultiplyTexCoordIndex:
number
Inherited from
ToonMaterialBase.rimMultiplyTexCoordIndex
rimMultiplyTexCoordMatrix
rimMultiplyTexCoordMatrix:
Matrix4x4
Inherited from
ToonMaterialBase.rimMultiplyTexCoordMatrix
hasRimMultiplyTexture
hasRimMultiplyTexture: () =>
boolean
Returns
boolean
Inherited from
ToonMaterialBase.hasRimMultiplyTexture
getRimMultiplyTextureUniform
getRimMultiplyTextureUniform: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getRimMultiplyTextureUniform
getRimMultiplyTexCoord
getRimMultiplyTexCoord: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getRimMultiplyTexCoord
sampleRimMultiplyTexture
sampleRimMultiplyTexture: (
scope,texCoord?) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
texCoord?
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.sampleRimMultiplyTexture
outlineWidthMultiplyTexture
outlineWidthMultiplyTexture:
Texture2D<unknown>
Inherited from
ToonMaterialBase.outlineWidthMultiplyTexture
outlineWidthMultiplyTextureSampler
outlineWidthMultiplyTextureSampler:
TextureSampler<unknown>
Inherited from
ToonMaterialBase.outlineWidthMultiplyTextureSampler
outlineWidthMultiplyTexCoordIndex
outlineWidthMultiplyTexCoordIndex:
number
Inherited from
ToonMaterialBase.outlineWidthMultiplyTexCoordIndex
outlineWidthMultiplyTexCoordMatrix
outlineWidthMultiplyTexCoordMatrix:
Matrix4x4
Inherited from
ToonMaterialBase.outlineWidthMultiplyTexCoordMatrix
hasOutlineWidthMultiplyTexture
hasOutlineWidthMultiplyTexture: () =>
boolean
Returns
boolean
Inherited from
ToonMaterialBase.hasOutlineWidthMultiplyTexture
getOutlineWidthMultiplyTextureUniform
getOutlineWidthMultiplyTextureUniform: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getOutlineWidthMultiplyTextureUniform
getOutlineWidthMultiplyTexCoord
getOutlineWidthMultiplyTexCoord: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getOutlineWidthMultiplyTexCoord
sampleOutlineWidthMultiplyTexture
sampleOutlineWidthMultiplyTexture: (
scope,texCoord?) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
texCoord?
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.sampleOutlineWidthMultiplyTexture
uvAnimationMaskTexture
uvAnimationMaskTexture:
Texture2D<unknown>
Inherited from
ToonMaterialBase.uvAnimationMaskTexture
uvAnimationMaskTextureSampler
uvAnimationMaskTextureSampler:
TextureSampler<unknown>
Inherited from
ToonMaterialBase.uvAnimationMaskTextureSampler
uvAnimationMaskTexCoordIndex
uvAnimationMaskTexCoordIndex:
number
Inherited from
ToonMaterialBase.uvAnimationMaskTexCoordIndex
uvAnimationMaskTexCoordMatrix
uvAnimationMaskTexCoordMatrix:
Matrix4x4
Inherited from
ToonMaterialBase.uvAnimationMaskTexCoordMatrix
hasUvAnimationMaskTexture
hasUvAnimationMaskTexture: () =>
boolean
Returns
boolean
Inherited from
ToonMaterialBase.hasUvAnimationMaskTexture
getUvAnimationMaskTextureUniform
getUvAnimationMaskTextureUniform: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getUvAnimationMaskTextureUniform
getUvAnimationMaskTexCoord
getUvAnimationMaskTexCoord: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getUvAnimationMaskTexCoord
sampleUvAnimationMaskTexture
sampleUvAnimationMaskTexture: (
scope,texCoord?) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
texCoord?
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.sampleUvAnimationMaskTexture
emissiveTexture
emissiveTexture:
Texture2D<unknown>
Inherited from
ToonMaterialBase.emissiveTexture
emissiveTextureSampler
emissiveTextureSampler:
TextureSampler<unknown>
Inherited from
ToonMaterialBase.emissiveTextureSampler
emissiveTexCoordIndex
emissiveTexCoordIndex:
number
Inherited from
ToonMaterialBase.emissiveTexCoordIndex
emissiveTexCoordMatrix
emissiveTexCoordMatrix:
Matrix4x4
Inherited from
ToonMaterialBase.emissiveTexCoordMatrix
hasEmissiveTexture
hasEmissiveTexture: () =>
boolean
Returns
boolean
Inherited from
ToonMaterialBase.hasEmissiveTexture
getEmissiveTextureUniform
getEmissiveTextureUniform: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getEmissiveTextureUniform
getEmissiveTexCoord
getEmissiveTexCoord: (
scope) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getEmissiveTexCoord
sampleEmissiveTexture
sampleEmissiveTexture: (
scope,texCoord?) =>PBShaderExp
Parameters
scope
PBInsideFunctionScope
texCoord?
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.sampleEmissiveTexture
albedoColor
albedoColor:
Vector4
Defined in: libs/scene/src/material/mixins/albedocolor.ts:16
Inherited from
ToonMaterialBase.albedoColor
normalScale
normalScale:
number
Defined in: libs/scene/src/material/mixins/lit.ts:23
Inherited from
ToonMaterialBase.normalScale
normalFlipY
normalFlipY:
boolean
Defined in: libs/scene/src/material/mixins/lit.ts:24
Inherited from
ToonMaterialBase.normalFlipY
normalMapMode
normalMapMode:
"tangent-space"|"object-space"
Defined in: libs/scene/src/material/mixins/lit.ts:25
Inherited from
ToonMaterialBase.normalMapMode
doubleSidedLighting
doubleSidedLighting:
boolean
Defined in: libs/scene/src/material/mixins/lit.ts:26
Inherited from
ToonMaterialBase.doubleSidedLighting
Accessors
disposed
Get Signature
get disposed():
boolean
Defined in: libs/base/dist/index.d.ts:6107
Returns
boolean
Inherited from
ToonMaterialBase.disposed
changeTag
Get Signature
get changeTag():
number
Defined in: libs/scene/src/material/material.ts:173
Incremented when the material’s GPU-relevant state changes and render bundles may need to be rebuilt.
Returns
number
Inherited from
ToonMaterialBase.changeTag
instanceId
Get Signature
get instanceId():
number
Defined in: libs/scene/src/material/material.ts:179
Runtime-unique numeric identifier for the material instance.
Returns
number
Inherited from
ToonMaterialBase.instanceId
numPasses
Get Signature
get numPasses():
number
Defined in: libs/scene/src/material/material.ts:189
Number of rendering passes this material uses.
Increasing this will expand the per-pass hash cache; make sure to implement createHash(pass), _createProgram(pb, ctx, pass), and updateRenderStates(pass, ...) accordingly for each pass.
Returns
number
Set Signature
set numPasses(
val):void
Defined in: libs/scene/src/material/material.ts:192
Parameters
val
number
Returns
void
Inherited from
ToonMaterialBase.numPasses
coreMaterial
Get Signature
get coreMaterial():
this
Defined in: libs/scene/src/material/material.ts:283
Returns the core material that owns GPU state.
Instances may delegate to a shared core to reuse compiled programs and caches.
Returns
this
Inherited from
ToonMaterialBase.coreMaterial
drawContext
Get Signature
get drawContext():
DrawContext
Defined in: libs/scene/src/material/meshmaterial.ts:514
Draw context captured during program creation, available inside shader hooks.
Returns
The last DrawContext used to build or apply this material.
Inherited from
ToonMaterialBase.drawContext
pass
Get Signature
get pass():
number
Defined in: libs/scene/src/material/meshmaterial.ts:523
Current material pass index during program building. Typically used inside shader hooks to select per-pass logic.
Returns
number
The active pass index while building the program, or -1 when idle.
Inherited from
ToonMaterialBase.pass
alphaCutoff
Get Signature
get alphaCutoff():
number
Defined in: libs/scene/src/material/meshmaterial.ts:532
Alpha test cutoff in [0, 1].
- 0 disables alpha testing.
- > 0 discards fragments with alpha < cutoff. Changing this marks uniforms dirty (no shader rebuild).
Returns
number
Set Signature
set alphaCutoff(
val):void
Defined in: libs/scene/src/material/meshmaterial.ts:535
Parameters
val
number
Returns
void
Inherited from
ToonMaterialBase.alphaCutoff
alphaDither
Get Signature
get alphaDither():
boolean
Defined in: libs/scene/src/material/meshmaterial.ts:547
Whether alpha clipping uses frame-varying dither coverage.
- Effective only when alpha cutoff is enabled.
- Intended for masked materials (blendMode='none') to emulate soft transparency with TAA.
Returns
boolean
Set Signature
set alphaDither(
val):void
Defined in: libs/scene/src/material/meshmaterial.ts:550
Parameters
val
boolean
Returns
void
Inherited from
ToonMaterialBase.alphaDither
TAADisabled
Get Signature
get TAADisabled():
boolean
Defined in: libs/scene/src/material/meshmaterial.ts:561
Whether TAA is disabled for this material.
- When true, motion vectors encode a large sentinel to skip TAA accumulation.
- Managed via an internal feature toggle.
Returns
boolean
Set Signature
set TAADisabled(
val):void
Defined in: libs/scene/src/material/meshmaterial.ts:564
Parameters
val
boolean
Returns
void
Inherited from
ToonMaterialBase.TAADisabled
transparentMotionVector
Get Signature
get transparentMotionVector():
boolean
Defined in: libs/scene/src/material/meshmaterial.ts:581
Whether a blended material contributes motion vectors.
Remarks
Off by default, and only meaningful with blendMode !== 'none': blended geometry is normally absent from the prepass, so it writes no velocity and a temporal filter reprojects it with whatever is behind it. Turning this on adds it to a motion-vector-only pass over the transparent queue.
Right for geometry that is dense enough to own its pixels - hair, foliage cards - where one velocity per pixel is a fair summary. Wrong for genuinely see-through surfaces such as glass, where the background's own velocity is the one that should survive, which is why this is opt-in.
Returns
boolean
Set Signature
set transparentMotionVector(
val):void
Defined in: libs/scene/src/material/meshmaterial.ts:584
Parameters
val
boolean
Returns
void
Inherited from
ToonMaterialBase.transparentMotionVector
TAAStrength
Get Signature
get TAAStrength():
number
Defined in: libs/scene/src/material/meshmaterial.ts:592
TAA strength in [0, 1].
- Higher values generally imply stronger accumulation.
- The value is mapped when writing motion-vector outputs during depth pass.
Returns
number
Set Signature
set TAAStrength(
val):void
Defined in: libs/scene/src/material/meshmaterial.ts:595
Parameters
val
number
Returns
void
Inherited from
ToonMaterialBase.TAAStrength
alphaToCoverage
Get Signature
get alphaToCoverage():
boolean
Defined in: libs/scene/src/material/meshmaterial.ts:607
Alpha-to-coverage toggle.
- Useful to approximate transparency for MSAA targets.
- Managed as a shader feature; toggling rebuilds variants.
Returns
boolean
Set Signature
set alphaToCoverage(
val):void
Defined in: libs/scene/src/material/meshmaterial.ts:610
Parameters
val
boolean
Returns
void
Inherited from
ToonMaterialBase.alphaToCoverage
blendMode
Get Signature
get blendMode():
BlendMode
Defined in: libs/scene/src/material/meshmaterial.ts:618
Blending mode of this material.
- 'none' for opaque, 'blend' for standard alpha, 'additive' for emissive FX.
- Changing the mode toggles an internal feature and rebuilds variants.
Returns
Set Signature
set blendMode(
val):void
Defined in: libs/scene/src/material/meshmaterial.ts:621
Parameters
val
Returns
void
Inherited from
ToonMaterialBase.blendMode
transparentShadowCaster
Get Signature
get transparentShadowCaster():
boolean
Defined in: libs/scene/src/material/meshmaterial.ts:632
Whether transparent visible materials cast shadow through a masked shadow-only path.
- Visible rendering stays blended.
- Shadow-map rendering is treated like a cutout material using
shadowAlphaCutoff.
Returns
boolean
Set Signature
set transparentShadowCaster(
val):void
Defined in: libs/scene/src/material/meshmaterial.ts:635
Parameters
val
boolean
Returns
void
Inherited from
ToonMaterialBase.transparentShadowCaster
shadowAlphaCutoff
Get Signature
get shadowAlphaCutoff():
number
Defined in: libs/scene/src/material/meshmaterial.ts:644
Alpha cutoff used by the shadow-only masked caster path.
Returns
number
Set Signature
set shadowAlphaCutoff(
val):void
Defined in: libs/scene/src/material/meshmaterial.ts:647
Parameters
val
number
Returns
void
Inherited from
ToonMaterialBase.shadowAlphaCutoff
cullMode
Get Signature
get cullMode():
FaceMode
Defined in: libs/scene/src/material/meshmaterial.ts:658
Face culling mode: 'none' | 'front' | 'back'.
- Does not force shader rebuild; affects rasterizer state.
Returns
FaceMode
Set Signature
set cullMode(
val):void
Defined in: libs/scene/src/material/meshmaterial.ts:661
Parameters
val
FaceMode
Returns
void
Inherited from
ToonMaterialBase.cullMode
opacity
Get Signature
get opacity():
number
Defined in: libs/scene/src/material/meshmaterial.ts:671
Material opacity in [0, 1].
- Used in transparent passes. Changing marks uniforms dirty only.
Returns
number
Set Signature
set opacity(
val):void
Defined in: libs/scene/src/material/meshmaterial.ts:674
Parameters
val
number
Returns
void
Inherited from
ToonMaterialBase.opacity
objectColor
Get Signature
get objectColor():
Immutable<Vector4>
Defined in: libs/scene/src/material/meshmaterial.ts:685
Per-object color used for GPU picking/object-ID pass.
- Changing marks uniforms dirty only.
Returns
Immutable<Vector4>
Set Signature
set objectColor(
val):void
Defined in: libs/scene/src/material/meshmaterial.ts:688
Parameters
val
Immutable<Vector4>
Returns
void
Inherited from
ToonMaterialBase.objectColor
shadeColorFactor
Get Signature
get shadeColorFactor():
Immutable<Vector3>
Defined in: libs/scene/src/material/mtoon.ts:94
Returns
Immutable<Vector3>
Set Signature
set shadeColorFactor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:97
Parameters
val
Immutable<Vector3>
Returns
void
shadingShiftFactor
Get Signature
get shadingShiftFactor():
number
Defined in: libs/scene/src/material/mtoon.ts:101
Returns
number
Set Signature
set shadingShiftFactor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:104
Parameters
val
number
Returns
void
shadingShiftTextureScale
Get Signature
get shadingShiftTextureScale():
number
Defined in: libs/scene/src/material/mtoon.ts:110
Returns
number
Set Signature
set shadingShiftTextureScale(
val):void
Defined in: libs/scene/src/material/mtoon.ts:113
Parameters
val
number
Returns
void
shadingToonyFactor
Get Signature
get shadingToonyFactor():
number
Defined in: libs/scene/src/material/mtoon.ts:119
Returns
number
Set Signature
set shadingToonyFactor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:122
Parameters
val
number
Returns
void
giEqualizationFactor
Get Signature
get giEqualizationFactor():
number
Defined in: libs/scene/src/material/mtoon.ts:129
Returns
number
Set Signature
set giEqualizationFactor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:132
Parameters
val
number
Returns
void
matcapFactor
Get Signature
get matcapFactor():
Immutable<Vector3>
Defined in: libs/scene/src/material/mtoon.ts:139
Returns
Immutable<Vector3>
Set Signature
set matcapFactor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:142
Parameters
val
Immutable<Vector3>
Returns
void
parametricRimColorFactor
Get Signature
get parametricRimColorFactor():
Immutable<Vector3>
Defined in: libs/scene/src/material/mtoon.ts:146
Returns
Immutable<Vector3>
Set Signature
set parametricRimColorFactor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:149
Parameters
val
Immutable<Vector3>
Returns
void
parametricRimFresnelPowerFactor
Get Signature
get parametricRimFresnelPowerFactor():
number
Defined in: libs/scene/src/material/mtoon.ts:153
Returns
number
Set Signature
set parametricRimFresnelPowerFactor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:156
Parameters
val
number
Returns
void
parametricRimLiftFactor
Get Signature
get parametricRimLiftFactor():
number
Defined in: libs/scene/src/material/mtoon.ts:162
Returns
number
Set Signature
set parametricRimLiftFactor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:165
Parameters
val
number
Returns
void
rimLightingMixFactor
Get Signature
get rimLightingMixFactor():
number
Defined in: libs/scene/src/material/mtoon.ts:171
Returns
number
Set Signature
set rimLightingMixFactor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:174
Parameters
val
number
Returns
void
outlineWidthMode
Get Signature
get outlineWidthMode():
MToonOutlineWidthMode
Defined in: libs/scene/src/material/mtoon.ts:181
Returns
Set Signature
set outlineWidthMode(
val):void
Defined in: libs/scene/src/material/mtoon.ts:184
Parameters
val
Returns
void
outlineWidthFactor
Get Signature
get outlineWidthFactor():
number
Defined in: libs/scene/src/material/mtoon.ts:191
Returns
number
Set Signature
set outlineWidthFactor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:194
Parameters
val
number
Returns
void
outlineColorFactor
Get Signature
get outlineColorFactor():
Immutable<Vector3>
Defined in: libs/scene/src/material/mtoon.ts:201
Returns
Immutable<Vector3>
Set Signature
set outlineColorFactor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:204
Parameters
val
Immutable<Vector3>
Returns
void
outlineLightingMixFactor
Get Signature
get outlineLightingMixFactor():
number
Defined in: libs/scene/src/material/mtoon.ts:208
Returns
number
Set Signature
set outlineLightingMixFactor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:211
Parameters
val
number
Returns
void
outlineUsesTangentNormals
Get Signature
get outlineUsesTangentNormals():
boolean
Defined in: libs/scene/src/material/mtoon.ts:218
Returns
boolean
Set Signature
set outlineUsesTangentNormals(
val):void
Defined in: libs/scene/src/material/mtoon.ts:221
Parameters
val
boolean
Returns
void
transparentWithZWrite
Get Signature
get transparentWithZWrite():
boolean
Defined in: libs/scene/src/material/mtoon.ts:224
Returns
boolean
Set Signature
set transparentWithZWrite(
val):void
Defined in: libs/scene/src/material/mtoon.ts:227
Parameters
val
boolean
Returns
void
renderQueueOffsetNumber
Get Signature
get renderQueueOffsetNumber():
number
Defined in: libs/scene/src/material/mtoon.ts:233
Returns
number
Set Signature
set renderQueueOffsetNumber(
val):void
Defined in: libs/scene/src/material/mtoon.ts:236
Parameters
val
number
Returns
void
uvAnimationScrollXSpeedFactor
Get Signature
get uvAnimationScrollXSpeedFactor():
number
Defined in: libs/scene/src/material/mtoon.ts:243
Returns
number
Set Signature
set uvAnimationScrollXSpeedFactor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:246
Parameters
val
number
Returns
void
uvAnimationScrollYSpeedFactor
Get Signature
get uvAnimationScrollYSpeedFactor():
number
Defined in: libs/scene/src/material/mtoon.ts:252
Returns
number
Set Signature
set uvAnimationScrollYSpeedFactor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:255
Parameters
val
number
Returns
void
uvAnimationRotationSpeedFactor
Get Signature
get uvAnimationRotationSpeedFactor():
number
Defined in: libs/scene/src/material/mtoon.ts:261
Returns
number
Set Signature
set uvAnimationRotationSpeedFactor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:264
Parameters
val
number
Returns
void
emissiveColor
Get Signature
get emissiveColor():
Immutable<Vector3>
Defined in: libs/scene/src/material/mtoon.ts:270
Returns
Immutable<Vector3>
Set Signature
set emissiveColor(
val):void
Defined in: libs/scene/src/material/mtoon.ts:273
Parameters
val
Immutable<Vector3>
Returns
void
emissiveStrength
Get Signature
get emissiveStrength():
number
Defined in: libs/scene/src/material/mtoon.ts:277
Returns
number
Set Signature
set emissiveStrength(
val):void
Defined in: libs/scene/src/material/mtoon.ts:280
Parameters
val
number
Returns
void
Methods
on()
on<
K>(type,listener,context?):void
Defined in: libs/base/dist/index.d.ts:630
IEventTarget.on
Type Parameters
K
K extends "dispose"
Parameters
type
K
listener
EventListener<{ dispose: []; }, K>
context?
unknown
Returns
void
Inherited from
ToonMaterialBase.on
once()
once<
K>(type,listener,context?):void
Defined in: libs/base/dist/index.d.ts:634
IEventTarget.once
Type Parameters
K
K extends "dispose"
Parameters
type
K
listener
EventListener<{ dispose: []; }, K>
context?
unknown
Returns
void
Inherited from
ToonMaterialBase.once
off()
off<
K>(type,listener?,context?):void
Defined in: libs/base/dist/index.d.ts:638
IEventTarget.off
Type Parameters
K
K extends "dispose"
Parameters
type
K
listener?
EventListener<{ dispose: []; }>
context?
unknown
Returns
void
Inherited from
ToonMaterialBase.off
dispatchEvent()
dispatchEvent<
K>(type, ...args):void
Defined in: libs/base/dist/index.d.ts:642
IEventTarget.dispatchEvent
Type Parameters
K
K extends "dispose"
Parameters
type
K
args
...object[K]
Returns
void
Inherited from
ToonMaterialBase.dispatchEvent
dispose()
dispose():
void
Defined in: libs/base/dist/index.d.ts:6108
Returns
void
Inherited from
ToonMaterialBase.dispose
getNumPassesForRender()
protectedgetNumPassesForRender(_ctx):number
Defined in: libs/scene/src/material/material.ts:205
Get the number of passes this material will render for the given draw context.
Default returns numPasses. Subclasses may override to skip passes based on context flags.
Parameters
_ctx
Draw context (device, flags, pass hash, instance data, etc.).
Returns
number
Number of passes to render for this context.
Inherited from
ToonMaterialBase.getNumPassesForRender
supportInstancing()
supportInstancing():
boolean
Defined in: libs/scene/src/material/material.ts:249
Whether this material supports hardware instancing.
Override and return false if per-instance data is not supported in the shader.
Returns
boolean
Inherited from
ToonMaterialBase.supportInstancing
isBatchable()
isBatchable():
boolean
Defined in: libs/scene/src/material/material.ts:253
Returns true if this is a instance of material
Returns
boolean
Inherited from
ToonMaterialBase.isBatchable
needSceneColor()
needSceneColor():
boolean
Defined in: libs/scene/src/material/material.ts:260
Whether this material requires the scene color texture (e.g., for refraction).
Returns
boolean
Inherited from
ToonMaterialBase.needSceneColor
needSceneDepth()
needSceneDepth():
boolean
Defined in: libs/scene/src/material/material.ts:266
Whether this material requires the linear scene depth texture (e.g., for depth-aware effects).
Returns
boolean
Inherited from
ToonMaterialBase.needSceneDepth
applyUniforms()
applyUniforms(
bindGroup,ctx,needUpdate,pass):void
Defined in: libs/scene/src/material/material.ts:450
Conditionally update uniforms/resources into the material bind group.
Delegates to _applyUniforms() when needUpdate is true (based on _optionTag check).
Parameters
bindGroup
BindGroup
Material bind group at index 2 (may be null if program has no layout).
ctx
Draw context.
needUpdate
boolean
Whether uniforms need to be refreshed.
pass
number
Pass index.
Returns
void
Inherited from
ToonMaterialBase.applyUniforms
clearCache()
clearCache():
void
Defined in: libs/scene/src/material/material.ts:475
Returns
void
Inherited from
ToonMaterialBase.clearCache
onDispose()
protectedonDispose():void
Defined in: libs/scene/src/material/material.ts:546
Dispose the material and release GPU-side resource references.
- Unregisters from the global registry.
- Disposes the per-material bind groups kept in
_states.
Returns
void
Inherited from
ToonMaterialBase.onDispose
apply()
apply(
ctx):boolean
Defined in: libs/scene/src/material/meshmaterial.ts:243
Capture the active draw context for both cached and freshly-built program paths.
The shader-building hooks access this.drawContext, but uniform application may also consult it on subsequent frames when the GPU program is reused from cache. Updating it here keeps material mixins in sync even when createProgram() is skipped.
Parameters
ctx
Current draw context.
Returns
boolean
Whether material preparation succeeded.
Inherited from
ToonMaterialBase.apply
uniformChanged()
uniformChanged():
void
Defined in: libs/scene/src/material/meshmaterial.ts:252
Mark uniform-only changes so uniforms are re-uploaded on next apply, without rebuilding shader programs.
Returns
void
Inherited from
ToonMaterialBase.uniformChanged
defineFeature()
staticdefineFeature():number
Defined in: libs/scene/src/material/meshmaterial.ts:259
Define a new feature bit/index for shader variants. Subclasses may use this to add their own switches.
Returns
number
Inherited from
ToonMaterialBase.defineFeature
defineInstanceUniform()
staticdefineInstanceUniform(prop,type,name?):number
Defined in: libs/scene/src/material/meshmaterial.ts:292
Define a per-instance uniform for this class.
Returns a compact index encoding the vector index and component offset, which can be used in shader code via getInstancedUniform(...).
Parameters
prop
string
Property name exposed on instances.
type
Uniform data type.
name?
string = ''
Returns
number
Encoded index for use in getInstancedUniform.
Throws
If the property is already defined or type is invalid.
Inherited from
ToonMaterialBase.defineInstanceUniform
getInstancedUniform()
getInstancedUniform(
scope,uniformIndex):PBShaderExp
Defined in: libs/scene/src/material/meshmaterial.ts:333
Read an encoded per-instance uniform in shader code.
Encoded index packs: vector index, component offset, and component count.
Parameters
scope
PBInsideFunctionScope
Inside-function shader scope.
uniformIndex
number
Encoded index from defineInstanceUniform.
Returns
PBShaderExp
The shader expression reading the selected components.
Inherited from
ToonMaterialBase.getInstancedUniform
getInstancedUniforms()
getInstancedUniforms():
object[]
Defined in: libs/scene/src/material/meshmaterial.ts:355
Get the list of per-instance uniforms for this material class.
Returns
object[]
Inherited from
ToonMaterialBase.getInstancedUniforms
createInstance()
createInstance():
this
Defined in: libs/scene/src/material/meshmaterial.ts:370
Create a material instance (preferred for GPU instancing).
- On WebGL1 (or when instancing unsupported), falls back to cloning.
- Otherwise, returns a proxy instance that shares GPU programs and stores per-instance uniforms in a compact Float32Array.
The returned instance:
- Exposes properties defined by
defineInstanceUniformwith getter/setter that read/write the packed buffer and notifyRenderBundleWrapper. - Delegates methods to the core material via prototype chain.
Returns
this
Inherited from
ToonMaterialBase.createInstance
supportLighting()
supportLighting():
boolean
Defined in: libs/scene/src/material/meshmaterial.ts:700
Whether this material responds to scene lighting. Override to return false for unlit materials.
Returns
boolean
True if lighting affects this material; otherwise false.
Inherited from
ToonMaterialBase.supportLighting
getEffectiveBlendMode()
protectedgetEffectiveBlendMode(pass,ctx?):BlendMode
Defined in: libs/scene/src/material/meshmaterial.ts:707
Returns the effective blend mode for the current pass. Transparent-shadow-caster materials stay blended in visible passes, but become masked in shadow passes.
Parameters
pass
number
ctx?
Returns
Inherited from
ToonMaterialBase.getEffectiveBlendMode
getActiveAlphaCutoff()
protectedgetActiveAlphaCutoff(ctx?,pass?):number
Defined in: libs/scene/src/material/meshmaterial.ts:736
Returns the alpha cutoff that should be used for the current pass.
Parameters
ctx?
pass?
number = ...
Returns
number
Inherited from
ToonMaterialBase.getActiveAlphaCutoff
useTransparentShadowCaster()
useTransparentShadowCaster(
ctx?,_pass?):boolean
Defined in: libs/scene/src/material/meshmaterial.ts:742
Whether the current pass should use the shadow-only masked caster path.
Parameters
ctx?
_pass?
number = ...
Returns
boolean
Inherited from
ToonMaterialBase.useTransparentShadowCaster
useTransparentShadowCasterForPass()
useTransparentShadowCasterForPass(
renderPassType?):boolean
Defined in: libs/scene/src/material/meshmaterial.ts:748
Whether the specified render pass type should reinterpret this transparent material as a masked shadow caster.
Parameters
renderPassType?
number
Returns
boolean
Inherited from
ToonMaterialBase.useTransparentShadowCasterForPass
usesAlphaCutoff()
protectedusesAlphaCutoff(ctx,pass):boolean
Defined in: libs/scene/src/material/meshmaterial.ts:758
Whether this pass needs an alpha-cutoff uniform bound.
Parameters
ctx
pass
number
Returns
boolean
Inherited from
ToonMaterialBase.usesAlphaCutoff
needFragmentColorInput()
needFragmentColorInput(
ctx?):boolean
Defined in: libs/scene/src/material/meshmaterial.ts:766
Whether this pass needs fragment color inputs. This stays aligned with the historical meaning of needFragmentColor, but also allows shadow-only transparent casters to fetch alpha sources.
Parameters
ctx?
Returns
boolean
Inherited from
ToonMaterialBase.needFragmentColorInput
featureUsed()
featureUsed<
T>(feature):T
Defined in: libs/scene/src/material/meshmaterial.ts:930
Query a feature flag’s current value.
Type Parameters
T
T = unknown
Expected value type.
Parameters
feature
number
The feature index.
Returns
T
The current value for the feature, typed as T.
Inherited from
ToonMaterialBase.featureUsed
useFeature()
useFeature(
feature,use):void
Defined in: libs/scene/src/material/meshmaterial.ts:941
Enable or disable a feature and trigger variant rebuild when changed. Calls optionChanged(true) internally on change.
Parameters
feature
number
The feature index to set.
use
unknown
The new feature value (typed by convention).
Returns
void
void
Inherited from
ToonMaterialBase.useFeature
isMaterialTextureEnabled()
protectedisMaterialTextureEnabled(_name):boolean
Defined in: libs/scene/src/material/meshmaterial.ts:972
Parameters
_name
string
Returns
boolean
Inherited from
ToonMaterialBase.isMaterialTextureEnabled
needFragmentColor()
needFragmentColor(
ctx?):boolean
Defined in: libs/scene/src/material/meshmaterial.ts:983
Whether the fragment shader needs to compute color. Returns true for LIGHT pass, or when alpha test or alpha-to-coverage is enabled. Override if the material writes color in other passes.
Parameters
ctx?
Optional draw context; defaults to the last captured drawContext.
Returns
boolean
True if fragment color computation is needed; otherwise false.
Inherited from
ToonMaterialBase.needFragmentColor
outputFragmentColor()
outputFragmentColor(
scope,worldPos,color,ssrRoughness?,ssrNormal?,sssProfile?,sssParams?,sssDiffuse?,sssTransmission?,sssProfileEnabled?,skinSSS?):void
Defined in: libs/scene/src/material/meshmaterial.ts:1139
Centralized final color write and per-pass output composition.
Behavior by pass:
- LIGHT: clipping, alpha handling, optional OIT integration, fog application, color output encoding.
- DEPTH: encoded depth; optional motion vectors (TAA enabled/disabled handling).
- OBJECT_COLOR: object color and distance output (linear depth or world-pos + distance).
- SHADOWMAP: writes shadow depth via light’s shadow implementation.
Also writes SSR roughness/normal buffers when requested via material flags.
Parameters
scope
PBInsideFunctionScope
Inside-function shader scope.
worldPos
PBShaderExp
Fragment world-space position expression.
color
PBShaderExp
Lit fragment color expression; may be undefined for depth-only paths.
ssrRoughness?
PBShaderExp
Optional SSR roughness output expression.
ssrNormal?
PBShaderExp
Optional SSR normal output expression.
sssProfile?
PBShaderExp
Optional SSS profile output expression.
sssParams?
PBShaderExp
Optional SSS packed params output expression.
sssDiffuse?
PBShaderExp
Optional diffuse-only lighting color for SSS composition.
sssTransmission?
PBShaderExp
Optional thin-shell transmission lighting color for SSS composition.
sssProfileEnabled?
boolean = false
True only when this material should write SSS profile data.
skinSSS?
PBShaderExp
Returns
void
void
Inherited from
ToonMaterialBase.outputFragmentColor
calculateAlbedoColor()
calculateAlbedoColor(
scope,uv?):PBShaderExp
Defined in: libs/scene/src/material/mixins/albedocolor.ts:17
Parameters
scope
PBInsideFunctionScope
uv?
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.calculateAlbedoColor
lambertLight()
lambertLight(
scope,worldPos,normal,albedo,geometricNormal?):PBShaderExp
Defined in: libs/scene/src/material/mixins/lightmodel/lambert.ts:19
Parameters
scope
PBInsideFunctionScope
worldPos
PBShaderExp
normal
PBShaderExp
albedo
PBShaderExp
geometricNormal?
PBShaderExp
Interpolated vertex normal, used for shadow normal offset bias. Defaults to normal; pass the pre-normal-map normal (such as TBN[2]) when the material has one, so the shadow lookup is not displaced along normal map detail.
Returns
PBShaderExp
Inherited from
ToonMaterialBase.lambertLight
receivesWaterCaustics()
receivesWaterCaustics():
boolean
Defined in: libs/scene/src/material/mixins/lit.ts:27
Returns
boolean
Inherited from
ToonMaterialBase.receivesWaterCaustics
needCalculateEnvLight()
needCalculateEnvLight():
boolean
Defined in: libs/scene/src/material/mixins/lit.ts:28
Returns
boolean
Inherited from
ToonMaterialBase.needCalculateEnvLight
getUniformNormalScale()
getUniformNormalScale(
scope):PBShaderExp
Defined in: libs/scene/src/material/mixins/lit.ts:29
Parameters
scope
PBInsideFunctionScope
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getUniformNormalScale
getEnvLightIrradiance()
getEnvLightIrradiance(
scope,normal):PBShaderExp
Defined in: libs/scene/src/material/mixins/lit.ts:30
Parameters
scope
PBInsideFunctionScope
normal
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getEnvLightIrradiance
getEnvLightRadiance()
getEnvLightRadiance(
scope,reflectVec,roughness):PBShaderExp
Defined in: libs/scene/src/material/mixins/lit.ts:31
Parameters
scope
PBInsideFunctionScope
reflectVec
PBShaderExp
roughness
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.getEnvLightRadiance
calculateViewVector()
calculateViewVector(
scope,worldPos):PBShaderExp
Defined in: libs/scene/src/material/mixins/lit.ts:36
Parameters
scope
PBInsideFunctionScope
worldPos
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.calculateViewVector
calculateReflectionVector()
calculateReflectionVector(
scope,normal,viewVec):PBShaderExp
Defined in: libs/scene/src/material/mixins/lit.ts:37
Parameters
scope
PBInsideFunctionScope
normal
PBShaderExp
viewVec
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.calculateReflectionVector
calculateTBN()
calculateTBN(
scope,worldPos,worldNormal?,worldTangent?,worldBinormal?):PBShaderExp
Defined in: libs/scene/src/material/mixins/lit.ts:42
Parameters
scope
PBInsideFunctionScope
worldPos
PBShaderExp
worldNormal?
PBShaderExp
worldTangent?
PBShaderExp
worldBinormal?
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.calculateTBN
calculateNormal()
calculateNormal(
scope,worldPos,worldNormal?,worldTangent?,worldBinormal?):PBShaderExp
Defined in: libs/scene/src/material/mixins/lit.ts:49
Parameters
scope
PBInsideFunctionScope
worldPos
PBShaderExp
worldNormal?
PBShaderExp
worldTangent?
PBShaderExp
worldBinormal?
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.calculateNormal
calculateNormalAndTBN()
calculateNormalAndTBN(
scope,worldPos,worldNormal?,worldTangent?,worldBinormal?):PBShaderExp
Defined in: libs/scene/src/material/mixins/lit.ts:56
Parameters
scope
PBInsideFunctionScope
worldPos
PBShaderExp
worldNormal?
PBShaderExp
worldTangent?
PBShaderExp
worldBinormal?
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.calculateNormalAndTBN
calculateLightAttenuation()
calculateLightAttenuation(
scope,type,worldPos,posRange,dirCutoff,extra?):PBShaderExp
Defined in: libs/scene/src/material/mixins/lit.ts:63
Parameters
scope
PBInsideFunctionScope
type
PBShaderExp
worldPos
PBShaderExp
posRange
PBShaderExp
dirCutoff
PBShaderExp
extra?
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.calculateLightAttenuation
calculateLightDirection()
calculateLightDirection(
scope,type,worldPos,posRange,dirCutoff):PBShaderExp
Defined in: libs/scene/src/material/mixins/lit.ts:71
Parameters
scope
PBInsideFunctionScope
type
PBShaderExp
worldPos
PBShaderExp
posRange
PBShaderExp
dirCutoff
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.calculateLightDirection
calculateShadow()
calculateShadow(
scope,worldPos,worldNormal,NoL):PBShaderExp
Defined in: libs/scene/src/material/mixins/lit.ts:78
Parameters
scope
PBInsideFunctionScope
worldPos
PBShaderExp
worldNormal
PBShaderExp
NoL
PBShaderExp
Returns
PBShaderExp
Inherited from
ToonMaterialBase.calculateShadow
forEachLight()
forEachLight(
scope,callback):void
Defined in: libs/scene/src/material/mixins/lit.ts:84
Parameters
scope
PBInsideFunctionScope
callback
(this, type, posRange, dirCutoff, colorIntensity, extra, shadow) => void
Returns
void
Inherited from
ToonMaterialBase.forEachLight
clone()
clone():
MToonMaterial
Defined in: libs/scene/src/material/mtoon.ts:286
Create a shallow clone of this material. Subclasses should override to copy custom fields.
Returns
MToonMaterial
Overrides
ToonMaterialBase.clone
copyFrom()
copyFrom(
other):void
Defined in: libs/scene/src/material/mtoon.ts:291
Copy common MeshMaterial properties from another material. Call super.copyFrom(other) first when overriding in subclasses.
Parameters
other
this
Source material.
Returns
void
Overrides
ToonMaterialBase.copyFrom
getQueueType()
getQueueType():
1|2
Defined in: libs/scene/src/material/mtoon.ts:316
Determine the render queue for this material. Transparent materials are queued as QUEUE_TRANSPARENT, otherwise QUEUE_OPAQUE.
Returns
1 | 2
The queue type constant.
Overrides
ToonMaterialBase.getQueueType
passToHash()
passToHash(
pass):string
Defined in: libs/scene/src/material/mtoon.ts:319
Convert a pass index to a hash seed string.
Subclasses may override to encode per-pass role (e.g., "depth", "forward", "shadow").
Parameters
pass
number
Pass number.
Returns
string
String used when building full hash.
Overrides
ToonMaterialBase.passToHash
isTransparentPass()
isTransparentPass(
pass,ctx?):boolean
Defined in: libs/scene/src/material/mtoon.ts:322
Whether the given pass is transparent. Default returns true when blendMode !== 'none'.
Parameters
pass
number
Material pass index.
ctx?
Returns
boolean
True if the pass is transparent; otherwise false.
Overrides
ToonMaterialBase.isTransparentPass
updateRenderStates()
protectedupdateRenderStates(pass,stateSet,ctx):void
Defined in: libs/scene/src/material/mtoon.ts:325
Update render states per pass and draw context. Sets blending, alpha-to-coverage, depth test/write, cull mode, color mask, and cooperates with OIT.
Parameters
pass
number
Current material pass index.
stateSet
RenderStateSet
Render state set to update.
ctx
Current draw context.
Returns
void
void
Overrides
ToonMaterialBase.updateRenderStates
drawPrimitive()
drawPrimitive(
pass,primitive,ctx,numInstances):void
Defined in: libs/scene/src/material/mtoon.ts:352
Issue the actual draw call for a pass.
Override for custom per-pass draw behavior if necessary. The default implementation:
- Draws instanced if
numInstances > 0. - Else uses
ctx.instanceData.numInstancesif available. - Else issues a non-instanced draw.
Parameters
pass
number
Pass number.
primitive
Primitive to draw.
ctx
Draw context.
numInstances
number
Explicit instance count (0 = auto).
Returns
void
Overrides
ToonMaterialBase.drawPrimitive
applyUniformValues()
applyUniformValues(
bindGroup,ctx,pass):void
Defined in: libs/scene/src/material/mtoon.ts:358
Submit material uniforms/resources to the material bind group (set 2). Handles alpha cutoff, opacity (non-instanced transparent), OIT, object color, and TAA strength.
Parameters
bindGroup
BindGroup
The material bind group to write into.
ctx
Current draw context.
pass
number
Current material pass index.
Returns
void
void
Overrides
ToonMaterialBase.applyUniformValues
vertexShader()
vertexShader(
scope):void
Defined in: libs/scene/src/material/mtoon.ts:617
Vertex shader hook. Prepares common inputs (skin/morph/instancing), varyings, and pass-dependent outputs. Override to implement per-vertex logic; use ShaderHelper as needed.
Parameters
scope
PBFunctionScope
Vertex shader function scope.
Returns
void
void
Overrides
ToonMaterialBase.vertexShader
fragmentShader()
fragmentShader(
scope):void
Defined in: libs/scene/src/material/mtoon.ts:722
Fragment shader hook. Declares pass-dependent uniforms (e.g., opacity, objectColor, alphaCutoff). Override to implement per-fragment logic, and call outputFragmentColor to finalize writes.
Parameters
scope
PBFunctionScope
Fragment shader function scope.
Returns
void
void
Overrides
ToonMaterialBase.fragmentShader