These nodes act as sources for Array data. Arrays are used to instance multiple other nodes on the basis of an array of ‘points’. A ‘point’ holds the following data:
- Position, Scale, Rotation
- A persistent ID
- Age since creation (turned on)
- Age since deletion (turned off)
Arrays differ from clones. Clones simply render a piece of geometry multiple times as identical instances, all processed on the GPU; arrays cause the node sub-tree to be traversed and evaluated multiple times, once for each point. An array could be thought of as a replacement for multiple Nulls, each one parenting the same sub-tree. As such, arrays are able to be used for cases where clones can not – such as within particle systems or fields; but clones are far more efficient for rendering multiple instances of a piece of geometry.
Arrays can be generated by various sources:
|Blacktrax Array||Take a filtered set of Blacktrax trackables and turn them into an array|
|CSV/Table Array||Create points from CSV files|
|Exposable Array||Take Arrays of points from a host media server (only some media servers support this feature)|
|Hokuyo UST Lidar Array||Use Hokuyo LiDAR sensor to detect hands, people etc on walls or floors and more.|
|Mouse Point Array||Takes the position and state of the mouse cursor, and converts it into an array of points.|
|Transform Array||Used to create an Array from various other internal Notch sources such as a set of Nulls, Particle Systems, Blob Tracker|
|TUIO Array||Receive arrays of points via the TUIO network protocol|
|Windows Touch Array||Use Windows touchscreens to create points|
What can you do with Array sources?
You can instance various node types from an Array by making them a child of the Array:
- Objects (Shape 3D, 3D Object)
- Particle Affectors
- Particle Emitters
- Field Affectors
- Field Emitters
- Clone Effectors
These nodes can often make use of the ‘age’ values of points to Ease On and Off (via Scale and Opacity etc.) making thing appear and disappear more smoothly.
To use an Array Source, you would place it within the parent-child hierarchy (like a Null). Children of the Array Source node will be instanced for every point in the Array.
In the below example, a LiDAR sensor is generating an Array of points and we’re using the Array Copy to use those points in two places: Instancing the Shape 3D node (attaching back to the root node) and Instancing multiple Primitive Emitters (parenting back to the Particle Root Node).
Managing Array data
There are numerous Array Operators that allow you to copy, filter Arrays as well as other functions.
Grabbing specific point data
You can grab specific point data using the Array Element Extractor operator.