Skip to content

@orillusion/particle


Class: ParticleMaterial ​

Defined in: packages/particle/material/ParticleMaterial.ts:8

material of particle renderer

Extends ​

  • Material

Constructors ​

Constructor ​

new ParticleMaterial(ctx?): ParticleMaterial

Defined in: packages/particle/material/ParticleMaterial.ts:9

Parameters ​

ctx? ​

Context3D

Returns ​

ParticleMaterial

Overrides ​

Material.constructor

Properties ​

instanceID ​

instanceID: string

Defined in: src/materials/Material.ts:26

Material Unique Identifier

Inherited from ​

Material.instanceID


name ​

name: string

Defined in: src/materials/Material.ts:32

name of this material

Inherited from ​

Material.name


enable ​

enable: boolean = true

Defined in: src/materials/Material.ts:35

Whether this material is enabled for rendering.

Inherited from ​

Material.enable

Accessors ​

oitMode ​

Get Signature ​

get oitMode(): "sorted" | "weighted" | "depth-peel"

Defined in: src/materials/Material.ts:69

Order-independent transparency mode opt-in.

  • 'sorted' (default): back-to-front sorted alpha-blend. Cheap, correct between meshes, but in-mesh triangle order is geometry- based not depth-based so self-overlapping meshes (spheres, torus) show banding.
  • 'weighted': McGuire-Bavoil 2013 Weighted-Blended OIT. Single- pass, order-independent, no in-mesh banding. Approximate — accum.rgb/accum.a degenerates to a depth-weighted average so α=1 looks averaged-milky at small scene scales (the front-vs- back depth-weight ratio saturates the paper's z/200 norm). Use for unbounded transparent layer counts: particles, smoke, foliage, hair cards.
  • 'depth-peel': Dual depth peeling. Multi-pass (passCount × 2 layers), order-correct over operator. α=1 is cleanly opaque — front fragment dominates because subsequent layers get multiplied by (1 - frontColor.a) = 0. Hard layer count limit (default 10). Use for hero glass, scientific visualization, layered architectural geometry.

All three only take effect when engine.setting.render.useOIT is true (otherwise everything falls through the sorted path).

Setter notifies attached renderers so the corresponding derived pass(es) get lazily generated when flipping mode at runtime. Without this, callers had to follow up with an alphaMode setter call to provoke refreshRenderClassification → castNeedPass.

Documented at Material-level (not LitMaterial) so any future material subclass (particle, decal) can opt in.

Returns ​

"sorted" | "weighted" | "depth-peel"

Set Signature ​

set oitMode(value): void

Defined in: src/materials/Material.ts:74

Set the order-independent transparency mode, notifying renderers to re-classify the affected passes.

Parameters ​
value ​

"sorted" | "weighted" | "depth-peel"

Returns ​

void

Inherited from ​

Material.oitMode


shader ​

Get Signature ​

get shader(): Shader

Defined in: src/materials/Material.ts:96

Get the shader bound to this material.

Returns ​

Shader

Set Signature ​

set shader(shader): void

Defined in: src/materials/Material.ts:90

Set the shader for this material and cache its default sub-shader.

Parameters ​
shader ​

Shader

Returns ​

void

Inherited from ​

Material.shader


doubleSide ​

Get Signature ​

get doubleSide(): boolean

Defined in: src/materials/Material.ts:101

Whether the default sub-shader renders both faces (no back-face culling).

Returns ​

boolean

Set Signature ​

set doubleSide(value): void

Defined in: src/materials/Material.ts:106

Enable or disable double-sided rendering on the default sub-shader.

Parameters ​
value ​

boolean

Returns ​

void

Inherited from ​

Material.doubleSide


castShadow ​

Get Signature ​

get castShadow(): boolean

Defined in: src/materials/Material.ts:111

Whether this material casts shadows.

Returns ​

boolean

Set Signature ​

set castShadow(value): void

Defined in: src/materials/Material.ts:116

Enable or disable shadow casting for this material.

Parameters ​
value ​

boolean

Returns ​

void

Inherited from ​

Material.castShadow


acceptShadow ​

Get Signature ​

get acceptShadow(): boolean

Defined in: src/materials/Material.ts:124

Whether this material receives shadows from other casters.

Returns ​

boolean

Set Signature ​

set acceptShadow(value): void

Defined in: src/materials/Material.ts:129

Enable or disable shadow receiving for this material.

Parameters ​
value ​

boolean

Returns ​

void

Inherited from ​

Material.acceptShadow


castReflection ​

Get Signature ​

get castReflection(): boolean

Defined in: src/materials/Material.ts:139

Whether this material contributes to reflection probes.

Returns ​

boolean

Set Signature ​

set castReflection(value): void

Defined in: src/materials/Material.ts:144

Enable or disable reflection casting for this material.

Parameters ​
value ​

boolean

Returns ​

void

Inherited from ​

Material.castReflection


blendMode ​

Get Signature ​

get blendMode(): BlendMode

Defined in: src/materials/Material.ts:149

The blend mode of the default sub-shader.

Returns ​

BlendMode

Set Signature ​

set blendMode(value): void

Defined in: src/materials/Material.ts:154

Set the blend mode of the default sub-shader.

Parameters ​
value ​

BlendMode

Returns ​

void

Inherited from ​

Material.blendMode


depthCompare ​

Get Signature ​

get depthCompare(): GPUCompareFunction

Defined in: src/materials/Material.ts:159

The depth comparison function of the default sub-shader.

Returns ​

GPUCompareFunction

Set Signature ​

set depthCompare(value): void

Defined in: src/materials/Material.ts:164

Set the depth comparison function across all passes of this material.

Parameters ​
value ​

GPUCompareFunction

Returns ​

void

Inherited from ​

Material.depthCompare


transparent ​

Get Signature ​

get transparent(): boolean

Defined in: src/materials/Material.ts:175

Whether this material is rendered as transparent.

Returns ​

boolean

Set Signature ​

set transparent(value): void

Defined in: src/materials/Material.ts:180

Enable or disable transparency, moving the pass to the transparent queue when enabled.

Parameters ​
value ​

boolean

Returns ​

void

Inherited from ​

Material.transparent


cullMode ​

Get Signature ​

get cullMode(): GPUCullMode

Defined in: src/materials/Material.ts:188

The face culling mode of the default sub-shader.

Returns ​

GPUCullMode

Set Signature ​

set cullMode(value): void

Defined in: src/materials/Material.ts:193

Set the face culling mode across all passes of this material.

Parameters ​
value ​

GPUCullMode

Returns ​

void

Inherited from ​

Material.cullMode


depthWriteEnabled ​

Get Signature ​

get depthWriteEnabled(): boolean

Defined in: src/materials/Material.ts:205

Whether depth writing is enabled for the default sub-shader.

Returns ​

boolean

Set Signature ​

set depthWriteEnabled(value): void

Defined in: src/materials/Material.ts:210

Enable or disable depth writing for the default sub-shader.

Parameters ​
value ​

boolean

Returns ​

void

Inherited from ​

Material.depthWriteEnabled


stencilFront ​

Get Signature ​

get stencilFront(): GPUStencilFaceState

Defined in: src/materials/Material.ts:217

Stencil front face state

Returns ​

GPUStencilFaceState

Set Signature ​

set stencilFront(value): void

Defined in: src/materials/Material.ts:222

Set the stencil front face state.

Parameters ​
value ​

GPUStencilFaceState

Returns ​

void

Inherited from ​

Material.stencilFront


stencilBack ​

Get Signature ​

get stencilBack(): GPUStencilFaceState

Defined in: src/materials/Material.ts:229

Stencil back face state

Returns ​

GPUStencilFaceState

Set Signature ​

set stencilBack(value): void

Defined in: src/materials/Material.ts:234

Set the stencil back face state.

Parameters ​
value ​

GPUStencilFaceState

Returns ​

void

Inherited from ​

Material.stencilBack


stencilReadMask ​

Get Signature ​

get stencilReadMask(): number

Defined in: src/materials/Material.ts:241

Stencil read mask

Returns ​

number

Set Signature ​

set stencilReadMask(value): void

Defined in: src/materials/Material.ts:246

Set the stencil read mask.

Parameters ​
value ​

number

Returns ​

void

Inherited from ​

Material.stencilReadMask


stencilWriteMask ​

Get Signature ​

get stencilWriteMask(): number

Defined in: src/materials/Material.ts:253

Stencil write mask

Returns ​

number

Set Signature ​

set stencilWriteMask(value): void

Defined in: src/materials/Material.ts:258

Set the stencil write mask.

Parameters ​
value ​

number

Returns ​

void

Inherited from ​

Material.stencilWriteMask


stencilRef ​

Get Signature ​

get stencilRef(): number

Defined in: src/materials/Material.ts:265

Stencil reference value

Returns ​

number

Set Signature ​

set stencilRef(value): void

Defined in: src/materials/Material.ts:270

Set the stencil reference value.

Parameters ​
value ​

number

Returns ​

void

Inherited from ​

Material.stencilRef


useBillboard ​

Set Signature ​

set useBillboard(value): void

Defined in: src/materials/Material.ts:275

Enable or disable billboard orientation via the USE_BILLBOARD shader define.

Parameters ​
value ​

boolean

Returns ​

void

Inherited from ​

Material.useBillboard


topology ​

Get Signature ​

get topology(): GPUPrimitiveTopology

Defined in: src/materials/Material.ts:280

The primitive topology of the default sub-shader.

Returns ​

GPUPrimitiveTopology

Set Signature ​

set topology(value): void

Defined in: src/materials/Material.ts:285

Set the primitive topology of the default sub-shader.

Parameters ​
value ​

GPUPrimitiveTopology

Returns ​

void

Inherited from ​

Material.topology


baseColor ​

Get Signature ​

get baseColor(): Color

Defined in: src/materials/Material.ts:295

Get the base color uniform.

Returns ​

Color

Set Signature ​

set baseColor(color): void

Defined in: src/materials/Material.ts:290

Set the base color uniform.

Parameters ​
color ​

Color

Returns ​

void

Inherited from ​

Material.baseColor


baseMap ​

Get Signature ​

get baseMap(): Texture

Defined in: packages/particle/material/ParticleMaterial.ts:46

Returns ​

Texture

Set Signature ​

set baseMap(texture): void

Defined in: packages/particle/material/ParticleMaterial.ts:41

Parameters ​
texture ​

Texture

Returns ​

void


envMap ​

Set Signature ​

set envMap(texture): void

Defined in: packages/particle/material/ParticleMaterial.ts:50

Parameters ​
texture ​

Texture

Returns ​

void


shadowMap ​

Set Signature ​

set shadowMap(texture): void

Defined in: packages/particle/material/ParticleMaterial.ts:54

Parameters ​
texture ​

Texture

Returns ​

void

Methods ​

getPass() ​

getPass(passType): RenderShaderPass[]

Defined in: src/materials/Material.ts:304

get render pass by renderType

Parameters ​

passType ​

PassType

Returns ​

RenderShaderPass[]

Inherited from ​

Material.getPass


getAllPass() ​

getAllPass(): RenderShaderPass[]

Defined in: src/materials/Material.ts:312

get all color render pass

Returns ​

RenderShaderPass[]

Inherited from ​

Material.getAllPass


clone() ​

clone(): Material

Defined in: src/materials/Material.ts:320

clone one material

Returns ​

Material

Material

Inherited from ​

Material.clone


destroy() ​

destroy(force): void

Defined in: src/materials/Material.ts:328

Release this material's shader and clear its identifying fields.

Parameters ​

force ​

boolean

Returns ​

void

Inherited from ​

Material.destroy


setDefine() ​

setDefine(define, value): void

Defined in: src/materials/Material.ts:337

Set a shader define flag on this material's shader.

Parameters ​

define ​

string

value ​

boolean

Returns ​

void

Inherited from ​

Material.setDefine


getDefine() ​

getDefine(define): boolean

Defined in: src/materials/Material.ts:342

Get the value of a shader define flag.

Parameters ​

define ​

string

Returns ​

boolean

Inherited from ​

Material.getDefine


setTexture() ​

setTexture(propertyName, texture): void

Defined in: src/materials/Material.ts:347

Bind a texture to the named shader property.

Parameters ​

propertyName ​

string

texture ​

Texture

Returns ​

void

Inherited from ​

Material.setTexture


setStorageBuffer() ​

setStorageBuffer(propertyName, buffer): void

Defined in: src/materials/Material.ts:352

Bind a storage GPU buffer to the named shader property.

Parameters ​

propertyName ​

string

buffer ​

StorageGPUBuffer

Returns ​

void

Inherited from ​

Material.setStorageBuffer


setUniformBuffer() ​

setUniformBuffer(propertyName, buffer): void

Defined in: src/materials/Material.ts:357

Bind a uniform GPU buffer to the named shader property.

Parameters ​

propertyName ​

string

buffer ​

UniformGPUBuffer

Returns ​

void

Inherited from ​

Material.setUniformBuffer


setUniformFloat() ​

setUniformFloat(propertyName, value): void

Defined in: src/materials/Material.ts:363

Set a float uniform on the named shader property.

Parameters ​

propertyName ​

string

value ​

number

Returns ​

void

Inherited from ​

Material.setUniformFloat


setUniformInt32() ​

setUniformInt32(propertyName, value): void

Defined in: src/materials/Material.ts:368

Set a 32-bit integer uniform on the named shader property.

Parameters ​

propertyName ​

string

value ​

number

Returns ​

void

Inherited from ​

Material.setUniformInt32


setUniformVector2() ​

setUniformVector2(propertyName, value): void

Defined in: src/materials/Material.ts:373

Set a Vector2 uniform on the named shader property.

Parameters ​

propertyName ​

string

value ​

Vector2

Returns ​

void

Inherited from ​

Material.setUniformVector2


setUniformVector3() ​

setUniformVector3(propertyName, value): void

Defined in: src/materials/Material.ts:378

Set a Vector3 uniform on the named shader property.

Parameters ​

propertyName ​

string

value ​

Vector3

Returns ​

void

Inherited from ​

Material.setUniformVector3


setUniformVector4() ​

setUniformVector4(propertyName, value): void

Defined in: src/materials/Material.ts:383

Set a Vector4 uniform on the named shader property.

Parameters ​

propertyName ​

string

value ​

Vector4

Returns ​

void

Inherited from ​

Material.setUniformVector4


setUniformColor() ​

setUniformColor(propertyName, value): void

Defined in: src/materials/Material.ts:388

Set a color uniform on the named shader property.

Parameters ​

propertyName ​

string

value ​

Color

Returns ​

void

Inherited from ​

Material.setUniformColor


getUniformFloat() ​

getUniformFloat(str): any

Defined in: src/materials/Material.ts:393

Get the float value of the named uniform.

Parameters ​

str ​

string

Returns ​

any

Inherited from ​

Material.getUniformFloat


getUniformInt32() ​

getUniformInt32(str): any

Defined in: src/materials/Material.ts:398

Get the 32-bit integer value of the named uniform.

Parameters ​

str ​

string

Returns ​

any

Inherited from ​

Material.getUniformInt32


getUniformV2() ​

getUniformV2(str): Vector2

Defined in: src/materials/Material.ts:403

Get the Vector2 value of the named uniform.

Parameters ​

str ​

string

Returns ​

Vector2

Inherited from ​

Material.getUniformV2


getUniformV3() ​

getUniformV3(str): Vector3

Defined in: src/materials/Material.ts:408

Get the Vector3 value of the named uniform.

Parameters ​

str ​

string

Returns ​

Vector3

Inherited from ​

Material.getUniformV3


getUniformV4() ​

getUniformV4(str): Vector4

Defined in: src/materials/Material.ts:413

Get the Vector4 value of the named uniform.

Parameters ​

str ​

string

Returns ​

Vector4

Inherited from ​

Material.getUniformV4


getUniformColor() ​

getUniformColor(str): Color

Defined in: src/materials/Material.ts:418

Get the color value of the named uniform.

Parameters ​

str ​

string

Returns ​

Color

Inherited from ​

Material.getUniformColor


getTexture() ​

getTexture(str): Texture

Defined in: src/materials/Material.ts:423

Get the texture bound to the named shader property.

Parameters ​

str ​

string

Returns ​

Texture

Inherited from ​

Material.getTexture


getStorageBuffer() ​

getStorageBuffer(str): StorageGPUBuffer

Defined in: src/materials/Material.ts:428

Get the storage buffer bound to the named shader property.

Parameters ​

str ​

string

Returns ​

StorageGPUBuffer

Inherited from ​

Material.getStorageBuffer


getStructStorageBuffer() ​

getStructStorageBuffer(str): GPUBufferBase

Defined in: src/materials/Material.ts:433

Get the struct storage buffer bound to the named shader property.

Parameters ​

str ​

string

Returns ​

GPUBufferBase

Inherited from ​

Material.getStructStorageBuffer


getUniformBuffer() ​

getUniformBuffer(str): GPUBufferBase

Defined in: src/materials/Material.ts:438

Get the uniform buffer bound to the named shader property.

Parameters ​

str ​

string

Returns ​

GPUBufferBase

Inherited from ​

Material.getUniformBuffer


applyUniform() ​

applyUniform(): void

Defined in: src/materials/Material.ts:443

Upload pending uniform changes to the GPU.

Returns ​

void

Inherited from ​

Material.applyUniform

Released under the MIT License