LightAct allows you to grab textures (TOP) and data (CHOP) from TouchDesigner using shared memory. On TD’s side, this is done with Shared Mem Out TOPs & CHOPs and on LightAct side it’s done using TouchDesigner TOP & CHOP Reader nodes.
TouchDesigner TOP Reader node
The most efficient way of sharing textures between TouchDesigner and LightAct is using Spout or, if you are on multiple servers, NDI. However in certain cases using Spout is not possible. One such case is when you are using a multi-GPU system and TD is running on a different GPU than LightAct. In this case using shared memory texture transfer is the only option.
In order to set this up, all you need to do on LightAct side is to insert a TouchDesigner TOP Reader node in Devices window. Please note the Handle name you type in as it will have to match what you type in on TD’s side.
On TD’s side you should insert a SharedMemOut TOP. In the Shared Mem Name type in the same name as what you typed in on LightAct’s side.
Pixel formats
Texture transfer has been tested with 8, 16 and 32-bit RGBA texture formats. Please note you might get unexpected results if you use other pixel formats.
If the setup is correct, you’ll see the texture in the node’s properties once you check Listening checkbox.
In order to get the texture to your layouts, just use TD TOP Listener node and select your TOP Reader node as its parent.
TouchDesigner CHOP Reader node
With TouchDesigner CHOP Reader nodes you can get channel data from TouchDesigner.
In order to set this up, all you need to do on LightAct side is to insert a TouchDesigner CHOP Reader node. Please note the Handle name you type in as it will have to match what you type in on TD’s side.
On TD’s side you should insert a SharedMemOut CHOP. In the Shared Mem Name type in the same name as what you typed in on LightAct’s side.
Please note, channel names are not read on LightAct’s side.
If the channels were read correctly, you’ll see them on the right side once you’ve selected the Listening checkbox.
To get the channel data into your layouts, just insert a TD CHOP Listener node and select your CHOP Reader node as its parent.