Interface Sprite2DLayerOptions
blendMode?: SpriteBlendDescriptor;
capacity?: number;
customShader?: Sprite2DCustomShader;
depth?: Sprite2DDepthMode;
layerZ?: number;
opacity?: number;
order?: number;
pivot?: [number, number];
view?: Partial<Sprite2DView>;
visible?: boolean;
}
Properties
Optionalblend Mode
Optionalcapacity
Optionalcustom Shader
Opt-in per-layer custom fragment shader (see createSprite2DCustomShader). Works on both
pure-2D (depth: "none") layers drawn by a SpriteRenderer and depth-hosted
(depth: "test" | "test-write") layers. Drives procedural effects (animated sky, clouds,
water / heat shimmer, twinkle, vignette) from a built-in fx.time clock plus an optional
fx.params vec4 set via setSprite2DShaderParams.
Optionaldepth
Optionallayer Z
Default NDC depth (0 = near, 1 = far) for sprites added to this layer when their
Sprite2DProps.z is omitted. Only meaningful for depth: "test" | "test-write" layers
(depth-hosted sprites added to a SceneContext via addDepthHostedSpriteLayer).
Depth-hosted layers store one Z per sprite (slot [13] of their 14-float instance buffer),
so a single layer can mix sprites at different depths — e.g. one in front of a box, one
behind it. Pure-2D layers (depth: "none") use the 13-float HUD layout and carry no Z slot.
Defaults to 0.5. Mutating layer.layerZ after sprites have been added does not
retroactively change them; it only affects sprites added afterwards. To move an existing
depth-hosted sprite, call updateSprite2DIndex(layer, idx, { z: … }).
Optionalopacity
Optionalorder
Optionalpivot
Layer-wide rotation / scaling pivot in normalised sprite-local space
([0,0] = top-left, [0.5, 0.5] = center, [1,1] = bottom-right).
The pivot point of every sprite in the layer lands at its positionPx
and is the center of rotation. Defaults to [0.5, 0.5] (center) to
match Babylon.js sprite behavior. Per-sprite / per-frame pivot is a
future PR — most 2D HUD layers want one uniform pivot anyway.
Options accepted by
createSprite2DLayer.