RenderStream is a proprietary protocol by Disguise for controlling third party realtime render engines from the Disguise software. It allows one to split up a large realtime render task among an arbitrary number of render PCs. Because it is entirely network-based, Renderstream can scale very flexibly, and is not as limited by hardware outputs or routing complexities that can arise with, for example, video standards like HDMI, DP, or SDI.
In TouchDesigner 2022.28040 and later, support for RenderStream r22 and later is found in the RenderStream In CHOP, RenderStream In TOP, and RenderStream Out TOP.
It allows you to send values/images to TouchDesigner, generate content in TouchDesigner using those values/images, and then send the images back to D3, all in sync.
.toe project files are loaded in, animated and driven using the standard RenderStream UI. RenderStream invokes TouchDesigner’s plugin, TouchEngine to load and run the components. Any TouchDesigner component that generates visuals can be augmented to conform to the RenderStream -TouchDesigner API. Images and controls flow from RenderStream into TouchDesigner via the RenderStream In TOP and CHOP, and data flows out to RenderStream via the RenderStream Out TOP.
Some video documentation is available at the Disguise YouTube Channel.
More details (must read) on how to setup your Disguise RenderStream project are available at the following Disguise RenderStream GitHub repository.
To prepare a component for use in the Disguise system, you edit a table DAT on the RenderStream In CHOP in your TouchDesigner component to define a RenderStream Schema, which exposes parameters to Disguise that can be driven through Disguise’s UI. At run-time values are fed back through the RenderStream In CHOP in TouchDesigner.
Every frame that a TouchDesigner component is called by Disguise to generate a frame, it receives a set of parameters, camera transforms, current frame number and other data. TouchDesigner generates one or more images and returns them via RenderStream Out TOPs. At the same time, the TouchDesigner component can be receiving, processing and sending data to devices, protocols or other software tools.