File: UniformArrayNode.md | Updated: 11/15/2025
Similar to BufferNode this module represents array-like data as uniform buffers. Unlike BufferNode, it can handle more common data types in the array (e.g three.js primitives) and automatically manage buffer padding. It should be the first choice when working with uniforms buffers.
const tintColors = uniformArray( [
new Color( 1, 0, 0 ),
new Color( 0, 1, 0 ),
new Color( 0, 0, 1 )
], 'color' );
const redColor = tintColors.element( 0 );
Constructs a new uniform array node.
value | Array holding the buffer data.
---|---
elementType | The data type of a buffer element. Default is null.
Array holding the buffer data. Unlike BufferNode, the array can hold number primitives as well as three.js objects like vectors, matrices or colors.
The data type of an array element.
This flag can be used for type testing.
Default is true.
The padded type. Uniform buffers must conform to a certain buffer layout so a separate type is computed to ensure correct buffer size.
Overwritten since uniform array nodes are updated per render.
Default is 'render'.
Overrides: BufferNode#updateType
Overwrites the default element() method to provide element access based on UniformArrayNode.
indexNode | The index node.
---|---
The data type of the array elements.
builder | The current node builder.
---|---
Overrides: BufferNode#getElementType
Returns: The element type.
This method is overwritten since the node type is inferred from the UniformArrayNode#paddedType.
builder | The current node builder.
---|---
Overrides: BufferNode#getNodeType
Returns: The node type.
Returns the padded type based on the element type.
Returns: The padded type.
Implement the value buffer creation based on the array data.
builder | A reference to the current node builder.
---|---
Overrides: BufferNode#setup
The update makes sure to correctly transfer the data from the (complex) objects in the array to the internal, correctly padded value buffer.
frame | A reference to the current node frame.
---|---
Overrides: BufferNode#update