Documentation / scene / Drawable
Interface: Drawable
Defined in: libs/scene/src/render/drawable.ts:245
Base interface for a drawable (renderable) object.
A drawable encapsulates geometry, material, and GPU-resident data required to be rendered. Implementations integrate with render queues, batching, and instancing.
Extended by
Methods
getName()
getName():
string
Defined in: libs/scene/src/render/drawable.ts:247
Gets the display name of the drawable object (for debugging/UI).
Returns
string
getDrawableId()
getDrawableId():
number
Defined in: libs/scene/src/render/drawable.ts:249
Unique, stable identifier for the drawable, used in caches and picking.
Returns
number
getNode()
getNode():
SceneNode
Defined in: libs/scene/src/render/drawable.ts:251
Returns the owning scene node (transform and hierarchy).
Returns
getPickTarget()
getPickTarget():
PickTarget
Defined in: libs/scene/src/render/drawable.ts:257
Returns the pick target override to be reported when this object is picked.
If not set, a default target derived from the node/material may be used.
Returns
getBoneMatrices()
getBoneMatrices():
Texture2D<unknown>
Defined in: libs/scene/src/render/drawable.ts:259
Returns the texture containing bone matrices for skinned meshes.
Returns
Texture2D<unknown>
getSkinInfluenceData()
getSkinInfluenceData():
SkinInfluenceData
Defined in: libs/scene/src/render/drawable.ts:261
Returns additional per-vertex skinning influences packed in a texture, if needed.
Returns
getObjectColor()
getObjectColor():
Vector4
Defined in: libs/scene/src/render/drawable.ts:263
Returns the unique color used for GPU picking (object ID in color).
Returns
Vector4
getMorphData()
getMorphData():
MorphData
Defined in: libs/scene/src/render/drawable.ts:265
Returns the morph target data texture (if morphing is used).
Returns
getMorphInfo()
getMorphInfo():
MorphInfo
Defined in: libs/scene/src/render/drawable.ts:267
Returns the morph information buffer (weights, ranges, etc.).
Returns
getSortDistance()
getSortDistance(
camera):number
Defined in: libs/scene/src/render/drawable.ts:273
Computes the distance used for sorting (e.g., transparent draw order).
Parameters
camera
Camera from which to compute distance (usually camera -> object).
Returns
number
getQueueType()
getQueueType():
number
Defined in: libs/scene/src/render/drawable.ts:275
Returns the type/category of render queue this object belongs to.
Returns
number
needSceneColor()
needSceneColor():
boolean
Defined in: libs/scene/src/render/drawable.ts:277
Whether the object requires access to the scene color buffer.
Returns
boolean
needSceneDepth()
needSceneDepth():
boolean
Defined in: libs/scene/src/render/drawable.ts:279
Whether the object requires access to the scene depth (linear or non-linear).
Returns
boolean
needHiZNearest()?
optionalneedHiZNearest():boolean
Defined in: libs/scene/src/render/drawable.ts:291
Whether the object queries the Hi-Z pyramid's nearest-depth channel.
Turns that channel on for the frame, which doubles the pyramid's bandwidth, so only a drawable that actually samples it should say yes. Unavailable on WebGL1, where the request is dropped and the drawable has to shade without it.
Optional: almost nothing needs it, and requiring it would break every external Drawable implementation for the sake of a return false.
Returns
boolean
isUnlit()
isUnlit():
boolean
Defined in: libs/scene/src/render/drawable.ts:293
True if shading is unlit (does not depend on scene lighting).
Returns
boolean
getMaterial()
getMaterial():
MeshMaterial
Defined in: libs/scene/src/render/drawable.ts:295
Returns the bound material driving shading for this drawable.
Returns
getPrimitive()
getPrimitive():
Primitive
Defined in: libs/scene/src/render/drawable.ts:297
Returns the geometry primitive to be drawn.
Returns
pushRenderQueueRef()
pushRenderQueueRef(
ref):void
Defined in: libs/scene/src/render/drawable.ts:303
Pushes a reference to the current render queue for cleanup or back-references.
Useful for batching or delayed state application.
Parameters
ref
Returns
void
applyTransformUniforms()
applyTransformUniforms(
renderQueue):void
Defined in: libs/scene/src/render/drawable.ts:309
Applies transform-related uniforms to the active bind group or pipeline.
Parameters
renderQueue
The current render queue issuing this draw.
Returns
void
draw()
draw(
ctx,renderQueue,hash?):void
Defined in: libs/scene/src/render/drawable.ts:317
Issues draw commands for this object.
Parameters
ctx
Full draw context for the current pass.
renderQueue
The current render queue issuing this draw.
hash?
string
Optional hash key for render bundle or pipeline caching.
Returns
void
updateState()
updateState():
void
Defined in: libs/scene/src/render/drawable.ts:321
Updates internal state or GPU resources for this drawable, if needed.
Returns
void
isBatchable()
isBatchable():
this is BatchDrawable
Defined in: libs/scene/src/render/drawable.ts:327
Returns true if the object supports instanced rendering.
When true, the object should also implement the BatchDrawable methods.
Returns
this is BatchDrawable
dispose()
dispose():
void
Defined in: libs/scene/src/render/drawable.ts:329
Releases all GPU resources and detaches from the renderer.
Returns
void