Skip to content

@orillusion/core


Class: SpriteBatch ​

Defined in: src/components/renderer/SpriteBatch.ts:67

High-volume sprite batch — renders thousands to hundreds of thousands of sprite quads in a single drawIndexed call. Intended for 3D-scene decoration at scale: particle clouds, star fields, mass map markers, debug visualizations, bullet hell, crowd icons.

Complements SpriteRenderer (per-entity, one draw per sprite) — use this when you need thousands sharing one texture, and don't need per- sprite Interactive / PickFire / BillboardComponent on each entry.

Per-entry (tunable live via batch.update): position, size, pivot, uvRect.

Per-batch (tunable via the component): texture, color (global tint).

Not supported (use SpriteRenderer for these): per-entry color / cornerRadius / distanceInvariantSize / billboard / per-entry picking. If you need those on a specific sprite, mount a separate SpriteRenderer next to the batch.

The batch's Object3D can still be moved / rotated — parent transform applies to the whole group via the standard model matrix.

Constructors ​

Constructor ​

new SpriteBatch(): SpriteBatch

Returns ​

SpriteBatch

Inherited from ​

RenderNode.constructor

Properties ​

object3D ​

object3D: Object3D = null

Defined in: src/components/ComponentBase.ts:29

owner object3D

Inherited from ​

RenderNode.object3D


isDestroyed ​

isDestroyed: boolean = false

Defined in: src/components/ComponentBase.ts:77

Inherited from ​

RenderNode.isDestroyed


instanceCount ​

instanceCount: number = 0

Defined in: src/components/renderer/RenderNode.ts:35

Inherited from ​

RenderNode.instanceCount


lodLevel ​

lodLevel: number = 0

Defined in: src/components/renderer/RenderNode.ts:36

Inherited from ​

RenderNode.lodLevel


alwaysRender ​

alwaysRender: boolean = false

Defined in: src/components/renderer/RenderNode.ts:37

Inherited from ​

RenderNode.alwaysRender


instanceID ​

instanceID: string

Defined in: src/components/renderer/RenderNode.ts:38

Inherited from ​

RenderNode.instanceID


drawType ​

drawType: number = 0

Defined in: src/components/renderer/RenderNode.ts:39

Inherited from ​

RenderNode.drawType


isRenderOrderChange? ​

optional isRenderOrderChange?: boolean

Defined in: src/components/renderer/RenderNode.ts:55

Inherited from ​

RenderNode.isRenderOrderChange


needSortOnCameraZ? ​

optional needSortOnCameraZ?: boolean

Defined in: src/components/renderer/RenderNode.ts:56

Inherited from ​

RenderNode.needSortOnCameraZ


shadowCacheMode ​

shadowCacheMode: "auto" | "static" | "dynamic" = 'auto'

Defined in: src/components/renderer/RenderNode.ts:437

Shadow cache classification.

  • 'auto' (default): renderer is drawn to the shadow map every frame as part of the single-pass render — matches historical behaviour.
  • 'static': renderer is drawn only to the cached static depth layer, rebuilt lazily when the light moves or the scene explicitly marks the static cache dirty. Use for buildings, terrain, prop meshes that don't move.
  • 'dynamic': renderer is drawn every frame on top of the copied-in static layer. Use for characters, physics objects, anything that moves.

Only consulted when engine.setting.shadow.enableStaticCache === true; otherwise all renderers behave as 'auto'.

Inherited from ​

RenderNode.shadowCacheMode

Accessors ​

visibleLayer ​

Get Signature ​

get visibleLayer(): number

Defined in: src/components/ComponentBase.ts:46

Composition-layer membership bitmask. The pass / camera / collector filters via

(component.visibleLayer & pass.layerMask & camera.cullingMask) !== 0

Defaults to VisibleLayer.Default (bit 0) so a fresh subclass is visible to passes whose layerMask is VisibleLayer.All (which includes bit 0). Application code can assign project-specific bits (1..31) to organise the scene into composition layers.

Returns ​

number

Set Signature ​

set visibleLayer(value): void

Defined in: src/components/ComponentBase.ts:50

Parameters ​
value ​

number

Returns ​

void

Inherited from ​

RenderNode.visibleLayer


eventDispatcher ​

Get Signature ​

get eventDispatcher(): CEventDispatcher

Defined in: src/components/ComponentBase.ts:63

Returns ​

CEventDispatcher

Set Signature ​

set eventDispatcher(value): void

Defined in: src/components/ComponentBase.ts:68

Parameters ​
value ​

CEventDispatcher

Returns ​

void

Inherited from ​

RenderNode.eventDispatcher


isStart ​

Get Signature ​

get isStart(): boolean

Defined in: src/components/ComponentBase.ts:79

Returns ​

boolean

Inherited from ​

RenderNode.isStart


transform ​

Get Signature ​

get transform(): Transform

Defined in: src/components/ComponentBase.ts:89

Return the Transform component attached to the Object3D. Null before the component is attached — addComponent assigns object3D only after construction — so constructor-time callers can probe safely via this.transform?..

Returns ​

Transform

Inherited from ​

RenderNode.transform


enable ​

Get Signature ​

get enable(): boolean

Defined in: src/components/ComponentBase.ts:113

Enable/disable components. The enabled components can be updated, while the disabled components cannot be updated.

Returns ​

boolean

Set Signature ​

set enable(value): void

Defined in: src/components/ComponentBase.ts:96

Enable/disable components. The enabled components can be updated, while the disabled components cannot be updated.

Parameters ​
value ​

boolean

Returns ​

void

Inherited from ​

RenderNode.enable


batchMode ​

Get Signature ​

get batchMode(): BatchMode

Defined in: src/components/renderer/RenderNode.ts:118

Returns ​

BatchMode

Set Signature ​

set batchMode(value): void

Defined in: src/components/renderer/RenderNode.ts:122

Parameters ​
value ​

BatchMode

Returns ​

void

Inherited from ​

RenderNode.batchMode


geometry ​

Get Signature ​

get geometry(): GeometryBase

Defined in: src/components/renderer/RenderNode.ts:126

Returns ​

GeometryBase

Set Signature ​

set geometry(value): void

Defined in: src/components/renderer/RenderNode.ts:130

Parameters ​
value ​

GeometryBase

Returns ​

void

Inherited from ​

RenderNode.geometry


rendererMask ​

Get Signature ​

get rendererMask(): number

Defined in: src/components/renderer/RenderNode.ts:156

Returns ​

number

Set Signature ​

set rendererMask(value): void

Defined in: src/components/renderer/RenderNode.ts:160

Parameters ​
value ​

number

Returns ​

void

Inherited from ​

RenderNode.rendererMask


renderOrder ​

Get Signature ​

get renderOrder(): number

Defined in: src/components/renderer/RenderNode.ts:164

Returns ​

number

Set Signature ​

set renderOrder(value): void

Defined in: src/components/renderer/RenderNode.ts:168

Parameters ​
value ​

number

Returns ​

void

Inherited from ​

RenderNode.renderOrder


materials ​

Get Signature ​

get materials(): Material[]

Defined in: src/components/renderer/RenderNode.ts:177

Returns ​

Material[]

Set Signature ​

set materials(value): void

Defined in: src/components/renderer/RenderNode.ts:181

Parameters ​
value ​

Material[]

Returns ​

void

Inherited from ​

RenderNode.materials


castShadow ​

Get Signature ​

get castShadow(): boolean

Defined in: src/components/renderer/RenderNode.ts:413

Returns ​

boolean

Set Signature ​

set castShadow(value): void

Defined in: src/components/renderer/RenderNode.ts:417

Parameters ​
value ​

boolean

Returns ​

void

Inherited from ​

RenderNode.castShadow


castGI ​

Get Signature ​

get castGI(): boolean

Defined in: src/components/renderer/RenderNode.ts:440

Returns ​

boolean

Set Signature ​

set castGI(value): void

Defined in: src/components/renderer/RenderNode.ts:444

Parameters ​
value ​

boolean

Returns ​

void

Inherited from ​

RenderNode.castGI


castReflection ​

Get Signature ​

get castReflection(): boolean

Defined in: src/components/renderer/RenderNode.ts:448

Returns ​

boolean

Set Signature ​

set castReflection(value): void

Defined in: src/components/renderer/RenderNode.ts:452

Parameters ​
value ​

boolean

Returns ​

void

Inherited from ​

RenderNode.castReflection


texture ​

Get Signature ​

get texture(): Texture

Defined in: src/components/renderer/SpriteBatch.ts:118

Returns ​

Texture

Set Signature ​

set texture(tex): void

Defined in: src/components/renderer/SpriteBatch.ts:113

Single texture shared by every entry. Use uvRect in each entry to pick a sub-region (atlas).

Parameters ​
tex ​

Texture

Returns ​

void


color ​

Get Signature ​

get color(): Color

Defined in: src/components/renderer/SpriteBatch.ts:128

Returns ​

Color

Set Signature ​

set color(c): void

Defined in: src/components/renderer/SpriteBatch.ts:123

Global tint multiplied onto every sampled pixel.

Parameters ​
c ​

Color

Returns ​

void


entries ​

Get Signature ​

get entries(): readonly SpriteBatchEntry[]

Defined in: src/components/renderer/SpriteBatch.ts:132

Returns ​

readonly SpriteBatchEntry[]

Methods ​

start() ​

start(): void

Defined in: src/components/ComponentBase.ts:162

Returns ​

void

Inherited from ​

RenderNode.start


stop() ​

stop(): void

Defined in: src/components/ComponentBase.ts:163

Returns ​

void

Inherited from ​

RenderNode.stop


onLateUpdate()? ​

optional onLateUpdate(view?): any

Defined in: src/components/ComponentBase.ts:167

Parameters ​

view? ​

View3D

Returns ​

any

Inherited from ​

RenderNode.onLateUpdate


onBeforeUpdate()? ​

optional onBeforeUpdate(view?): any

Defined in: src/components/ComponentBase.ts:168

Parameters ​

view? ​

View3D

Returns ​

any

Inherited from ​

RenderNode.onBeforeUpdate


onCompute()? ​

optional onCompute(view?, command?): any

Defined in: src/components/ComponentBase.ts:169

Parameters ​

view? ​

View3D

command? ​

GPUCommandEncoder

Returns ​

any

Inherited from ​

RenderNode.onCompute


onGraphic()? ​

optional onGraphic(view?): any

Defined in: src/components/ComponentBase.ts:170

Parameters ​

view? ​

View3D

Returns ​

any

Inherited from ​

RenderNode.onGraphic


onParentChange()? ​

optional onParentChange(lastParent?, currentParent?): any

Defined in: src/components/ComponentBase.ts:171

Parameters ​

lastParent? ​

Object3D

currentParent? ​

Object3D

Returns ​

any

Inherited from ​

RenderNode.onParentChange


onAddChild()? ​

optional onAddChild(child): any

Defined in: src/components/ComponentBase.ts:172

Parameters ​

child ​

Object3D

Returns ​

any

Inherited from ​

RenderNode.onAddChild


onRemoveChild()? ​

optional onRemoveChild(child): any

Defined in: src/components/ComponentBase.ts:173

Parameters ​

child ​

Object3D

Returns ​

any

Inherited from ​

RenderNode.onRemoveChild


cloneTo() ​

cloneTo(obj): void

Defined in: src/components/ComponentBase.ts:180

clone component data to target object3D

Parameters ​

obj ​

Object3D

target object3D

Returns ​

void

Inherited from ​

RenderNode.cloneTo


attachSceneOctree() ​

attachSceneOctree(octree): void

Defined in: src/components/renderer/RenderNode.ts:87

Parameters ​

octree ​

Octree

Returns ​

void

Inherited from ​

RenderNode.attachSceneOctree


detachSceneOctree() ​

detachSceneOctree(): void

Defined in: src/components/renderer/RenderNode.ts:92

Returns ​

void

Inherited from ​

RenderNode.detachSceneOctree


copyComponent() ​

copyComponent(from): this

Defined in: src/components/renderer/RenderNode.ts:104

Parameters ​

from ​

this

Returns ​

this

Inherited from ​

RenderNode.copyComponent


addMask() ​

addMask(mask): void

Defined in: src/components/renderer/RenderNode.ts:144

Parameters ​

mask ​

RendererMask

Returns ​

void

Inherited from ​

RenderNode.addMask


removeMask() ​

removeMask(mask): void

Defined in: src/components/renderer/RenderNode.ts:148

Parameters ​

mask ​

RendererMask

Returns ​

void

Inherited from ​

RenderNode.removeMask


hasMask() ​

hasMask(mask): boolean

Defined in: src/components/renderer/RenderNode.ts:152

Parameters ​

mask ​

RendererMask

Returns ​

boolean

Inherited from ​

RenderNode.hasMask


addRendererMask() ​

addRendererMask(tag): void

Defined in: src/components/renderer/RenderNode.ts:232

Parameters ​

tag ​

RendererMask

Returns ​

void

Inherited from ​

RenderNode.addRendererMask


removeRendererMask() ​

removeRendererMask(tag): void

Defined in: src/components/renderer/RenderNode.ts:236

Parameters ​

tag ​

RendererMask

Returns ​

void

Inherited from ​

RenderNode.removeRendererMask


onDisable() ​

onDisable(): void

Defined in: src/components/renderer/RenderNode.ts:250

Returns ​

void

Inherited from ​

RenderNode.onDisable


refreshRenderClassification() ​

refreshRenderClassification(): void

Defined in: src/components/renderer/RenderNode.ts:270

Recompute renderOrder from current pass states and re-bucket this renderer in EntityCollect (opaque vs transparent map).

Called when a material's alphaMode flips at runtime — the pass.renderOrder changes (3000 ↔ 0), but EntityCollect classifies once at addRenderNode time. Without this nudge the renderer stays in its old list and gets drawn through the wrong pipeline (e.g. WBOIT continues drawing a HASH-toggled material).

Materials hop into this via Reference.getReference(material) to find every renderer holding them; sample code can also call it directly after manual state changes.

Returns ​

void

Inherited from ​

RenderNode.refreshRenderClassification


selfCloneMaterials() ​

selfCloneMaterials(key): this

Defined in: src/components/renderer/RenderNode.ts:295

Parameters ​

key ​

string

Returns ​

this

Inherited from ​

RenderNode.selfCloneMaterials


renderPass() ​

renderPass(view, passType, renderContext): void

Defined in: src/components/renderer/RenderNode.ts:456

Parameters ​

view ​

View3D

passType ​

PassType

renderContext ​

RenderContext

Returns ​

void

Inherited from ​

RenderNode.renderPass


renderPass2() ​

renderPass2(view, passType, rendererPassState, clusterLightingBuffer, encoder, useBundle?): void

Defined in: src/components/renderer/RenderNode.ts:528

render pass at passType

Parameters ​

view ​

View3D

passType ​

PassType

rendererPassState ​

RendererPassState

clusterLightingBuffer ​

ClusterLightingBuffer

encoder ​

GPURenderPassEncoder

useBundle? ​

boolean = false

Returns ​

void

Inherited from ​

RenderNode.renderPass2


recordRenderPass2() ​

recordRenderPass2(view, passType, rendererPassState, clusterLightingBuffer, encoder, useBundle?): void

Defined in: src/components/renderer/RenderNode.ts:586

Parameters ​

view ​

View3D

passType ​

PassType

rendererPassState ​

RendererPassState

clusterLightingBuffer ​

ClusterLightingBuffer

encoder ​

GPURenderPassEncoder

useBundle? ​

boolean = false

Returns ​

void

Inherited from ​

RenderNode.recordRenderPass2


preInit() ​

preInit(_rendererType): boolean

Defined in: src/components/renderer/RenderNode.ts:624

Parameters ​

_rendererType ​

PassType

Returns ​

boolean

Inherited from ​

RenderNode.preInit


nodeUpdate() ​

nodeUpdate(view, passType, renderPassState, clusterLightingBuffer?): void

Defined in: src/components/renderer/RenderNode.ts:628

Parameters ​

view ​

View3D

passType ​

PassType

renderPassState ​

RendererPassState

clusterLightingBuffer? ​

ClusterLightingBuffer

Returns ​

void

Inherited from ​

RenderNode.nodeUpdate


beforeDestroy() ​

beforeDestroy(force?): void

Defined in: src/components/renderer/RenderNode.ts:741

before release this component, object refrences are not be set null now.

Parameters ​

force? ​

boolean

Returns ​

void

Inherited from ​

RenderNode.beforeDestroy


destroy() ​

destroy(force?): void

Defined in: src/components/renderer/RenderNode.ts:762

release this component

Parameters ​

force? ​

boolean

Returns ​

void

Inherited from ​

RenderNode.destroy


init() ​

init(param?): void

Defined in: src/components/renderer/SpriteBatch.ts:83

Parameters ​

param? ​

any

Returns ​

void

Overrides ​

RenderNode.init


onEnable() ​

onEnable(): void

Defined in: src/components/renderer/SpriteBatch.ts:88

Returns ​

void

Overrides ​

RenderNode.onEnable


onUpdate() ​

onUpdate(_view?): void

Defined in: src/components/renderer/SpriteBatch.ts:94

Parameters ​

_view? ​

View3D

Returns ​

void

Overrides ​

RenderNode.onUpdate


add() ​

add(spec?): SpriteBatchEntry

Defined in: src/components/renderer/SpriteBatch.ts:136

Parameters ​

spec? ​
position? ​

Vector3

size? ​

Vector2

pivot? ​

Vector2

uvRect? ​

Vector4

Returns ​

SpriteBatchEntry


remove() ​

remove(entry): boolean

Defined in: src/components/renderer/SpriteBatch.ts:152

Parameters ​

entry ​

SpriteBatchEntry

Returns ​

boolean


update() ​

update(entry, patch): void

Defined in: src/components/renderer/SpriteBatch.ts:160

Parameters ​

entry ​

SpriteBatchEntry

patch ​
position? ​

Vector3

size? ​

Vector2

pivot? ​

Vector2

uvRect? ​

Vector4

Returns ​

void


clear() ​

clear(): void

Defined in: src/components/renderer/SpriteBatch.ts:173

Returns ​

void


markDirty() ​

markDirty(): void

Defined in: src/components/renderer/SpriteBatch.ts:179

Force a geometry rebuild on the next onUpdate. Call after a bulk in-place mutation of existing entries.

Returns ​

void