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?
optionalisRenderOrderChange?:boolean
Defined in: src/components/renderer/RenderNode.ts:55
Inherited from
RenderNode.isRenderOrderChange
needSortOnCameraZ?
optionalneedSortOnCameraZ?: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
Set Signature
set eventDispatcher(
value):void
Defined in: src/components/ComponentBase.ts:68
Parameters
value
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
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
Set Signature
set batchMode(
value):void
Defined in: src/components/renderer/RenderNode.ts:122
Parameters
value
Returns
void
Inherited from
RenderNode.batchMode
geometry
Get Signature
get geometry():
GeometryBase
Defined in: src/components/renderer/RenderNode.ts:126
Returns
Set Signature
set geometry(
value):void
Defined in: src/components/renderer/RenderNode.ts:130
Parameters
value
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
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
Returns
void
color
Get Signature
get color():
Color
Defined in: src/components/renderer/SpriteBatch.ts:128
Returns
Set Signature
set color(
c):void
Defined in: src/components/renderer/SpriteBatch.ts:123
Global tint multiplied onto every sampled pixel.
Parameters
c
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()?
optionalonLateUpdate(view?):any
Defined in: src/components/ComponentBase.ts:167
Parameters
view?
Returns
any
Inherited from
RenderNode.onLateUpdate
onBeforeUpdate()?
optionalonBeforeUpdate(view?):any
Defined in: src/components/ComponentBase.ts:168
Parameters
view?
Returns
any
Inherited from
RenderNode.onBeforeUpdate
onCompute()?
optionalonCompute(view?,command?):any
Defined in: src/components/ComponentBase.ts:169
Parameters
view?
command?
GPUCommandEncoder
Returns
any
Inherited from
RenderNode.onCompute
onGraphic()?
optionalonGraphic(view?):any
Defined in: src/components/ComponentBase.ts:170
Parameters
view?
Returns
any
Inherited from
RenderNode.onGraphic
onParentChange()?
optionalonParentChange(lastParent?,currentParent?):any
Defined in: src/components/ComponentBase.ts:171
Parameters
lastParent?
currentParent?
Returns
any
Inherited from
RenderNode.onParentChange
onAddChild()?
optionalonAddChild(child):any
Defined in: src/components/ComponentBase.ts:172
Parameters
child
Returns
any
Inherited from
RenderNode.onAddChild
onRemoveChild()?
optionalonRemoveChild(child):any
Defined in: src/components/ComponentBase.ts:173
Parameters
child
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
target object3D
Returns
void
Inherited from
RenderNode.cloneTo
attachSceneOctree()
attachSceneOctree(
octree):void
Defined in: src/components/renderer/RenderNode.ts:87
Parameters
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
Returns
void
Inherited from
RenderNode.addMask
removeMask()
removeMask(
mask):void
Defined in: src/components/renderer/RenderNode.ts:148
Parameters
mask
Returns
void
Inherited from
RenderNode.removeMask
hasMask()
hasMask(
mask):boolean
Defined in: src/components/renderer/RenderNode.ts:152
Parameters
mask
Returns
boolean
Inherited from
RenderNode.hasMask
addRendererMask()
addRendererMask(
tag):void
Defined in: src/components/renderer/RenderNode.ts:232
Parameters
tag
Returns
void
Inherited from
RenderNode.addRendererMask
removeRendererMask()
removeRendererMask(
tag):void
Defined in: src/components/renderer/RenderNode.ts:236
Parameters
tag
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
passType
PassType
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
passType
PassType
rendererPassState
RendererPassState
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
passType
PassType
rendererPassState
RendererPassState
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
passType
PassType
renderPassState
RendererPassState
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?
Returns
void
Overrides
RenderNode.onUpdate
add()
add(
spec?):SpriteBatchEntry
Defined in: src/components/renderer/SpriteBatch.ts:136
Parameters
spec?
position?
size?
pivot?
uvRect?
Vector4
Returns
remove()
remove(
entry):boolean
Defined in: src/components/renderer/SpriteBatch.ts:152
Parameters
entry
Returns
boolean
update()
update(
entry,patch):void
Defined in: src/components/renderer/SpriteBatch.ts:160
Parameters
entry
patch
position?
size?
pivot?
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

