RenderStream Layer
The RenderStream Layer is used to control third party render engines running externally to Designer.
There are four main sections within the RenderStream Layer:
- Media Thumbnail
- Config
- Default
- Properties
Media Thumbnail
Section titled “Media Thumbnail”This area will display an image of the active stream being received. Note that in a multi-channel environment, this will only show the Camera in UE that has the RS component attached to it.
Config
Section titled “Config”This section is where you will configure properties such as Asset and Cluster Pool, as well as monitor workload and engine health in real time.
Framerate Fraction
Section titled “Framerate Fraction”The framerate of each stream is determined by the global refresh rate set within d3. The Framerate Fraction setting indicates the fraction of the framerate this layer renders at.
The options are 1, 1/2, and 1/3.
Cluster Workload
Section titled “Cluster Workload”The Cluster Workload window contains the elements required for configuring a Cluster.
It contains the following sections:
Configure
The Configure section contains these elements of a Cluster:
- Asset - Cluster Pool - Cluster Assigner - Channel Mapping - Bandwidth Estimate
Control
This is the Render Engine project or Notch block that will be controlled by the layer. In order for the asset to be visible here, it must be present in the RenderStream projects folder.
Right-click on the asset name to open the Asset properties editor:
Asset
Properties include:
- Asset Discovery Name: Name of UE folder/project.
- Target Engine: Name of the Render Engine.
- Engine Settings: Engine version.
- Colour shift: Apply colour correction to entire asset.
- Content Source Machine: The render node that is running the render engine project. This is the machine that the project will be synced from.
- Available: Status indicator displaying if the Asset is available. Not a tick box.
- Channels: displays active channels defined by the CameraActors in your UE project.
Cluster Pool
Section titled “Cluster Pool”The Cluster Pool will automatically detect all available machines on the same network. Once detected, you can assign as many machines to the Cluster Pool as needed and inspect each machine in the pool to see network status, IP address, current Streams and available Assets.
Cluster Pool
Properties include:
- Render Machines: The list of render nodes that the content will be distributed across.
- Understudies: Backup nodes in case of failover.
Cluster Pool Machine Properties
Section titled “Cluster Pool Machine Properties”Right-click on the name of a machine in the Cluster Pool to edit additional properties related to that machine:
Cluster Pool Machine
Properties include:
-
Load Factor: Relative load weight this machine can handle. Weight is relative to other nodes in pool. The workload can be spread evenly across the cluster by the user using a load factor. This allows you to take into account each machine’s spec and assign loads accordingly.
-
Online status
-
Preferred Synchronisation Adapter: This setting allows you to pick a subnet to use for sync. You should pick something fast - preferably capable of 100Gbps or more. Only used to control cluster communication and content syncing; it has no impact on how the streams are communicated to Disguise.
-
Network Adapters and settings: Non-editable list of network adapters available on the node. To configure the system for Cluster Rendering, all machines within a Cluster Pool must be on the same subnet. If a machine is reporting an unexpected IP address (e.g. loopback address), make sure to select the specific network adapter within the ‘Network’ tab of d3manager.
-
Streams: non-editable list of RS output from the node.
-
Assets: non-editable list of assets resident on the node.
Cluster Assigner
Section titled “Cluster Assigner”The Cluster Assigner is where we control the settings for the distribution of the content across all the machines in the Cluster Pool.
Cluster Assigners are used to create definitions as to how channels are delivered from the nodes. You can create as many Cluster Assigners as needed.
Cluster Assigner
Properties include:
- Splitting Strategies
- These are used to generate the sub-regions needed for distributing content across a set of render nodes.
- There are 3 types of splitting strategies:
- Tiles - lets Designer split up the content as it sees fit to the mapped channels. Note: this splitting strategy DOES NOT work with Mesh Policy.
- Full frame - Sends the entire stream to the mapped channel.
- Manual - splits each Viewport according to user specified instructions. When using the ‘Manual’ splitting strategy, the options for specifying how to split frames can be found within the Advanced workload settings.
In Advanced workflow settings, note that region pos. has a range between 0 and 1. The screenshot shows both regions (pos) set to 0.5. Other property values in this editor also range from 0 to 1.
-
Splitting Overlap: The Splitting Overlap option can be used to define a blend region at each split that hides imperfections at the seams.
-
Padding (Pixels):The Padding option enlarges the rendered are at each split, but does not stream the padded area, cutting off edge artifacts.
-
Load Weight:‘Load Weight’ allows you to set a priority for the Cluster Assigner. The higher the weight of the assigner, the more machines will be assigned to render the content and thus more splits will be made.
-
Transport format:The options to pick between ‘Compressed’ and ‘Uncompressed’ , ‘RGB 4:4:4’, ‘YUV 4:2:2’, and ‘YUV 4:2:0’, and 8-bit, 10-bit and 12-bit transport bit-depths are available.
-
Alpha: The option to enable or disable the Alpha channel on the content is available.
-
Scale factor: Scale factor for the resolution.
-
Proxy Streams: A compressed stream at a lower quality or resolution used for providing a preview on ma chines where receiving the full-quality stream is undesirable or impossible.
-
Preferred network: Select the adapter to use for video transport on any channel the assigner is associated with.
Once the cluster has been configured, the stream’s playback is managed via the Cluster Workload controls.
The options for managing the workload are:
-
Instances: there can be only one workload instance running at a time in the same cluster pool.
When started, the Instances table will be populated with the machines that have been sent the start signal.
-
Start: sends signal to all machines in the pool to launch the Asset according to config settings
-
Stop: Sends signal to cease outputting a stream and quit the process sending it.
The workload log can be opened by left clicking on the status within the Instances table
-
Sync: begins the process of content sync. Content is synced from the source machine to all other machines available within the cluster pool; copies only the necessary directories and files needed.
-
Advanced: right-click to open the workload’s advanced options:
Default
Section titled “Default”In the Default section of the RenderStream Layer, there are four Common Layer Properties:
-
Blend Mode: Premult-Alpha is needed for content that contains alpha data.
-
Brightness: Layer intensity.
-
Mode: This is used to determine the timeline’s playback behaviour as the layer is playing.
Properties Section
Section titled “Properties Section”The last section of the RenderStream layer is asset specific and will display all exposed parameters from the asset as well as their keyframe editors
Health Monitoring
Section titled “Health Monitoring”Receive Health
Section titled “Receive Health”The Receive health field in the RenderStream Layer is used to monitor the health of all streams belonging to the workload in this layer. As the name suggests, receive health monitors whether machines that are subscribed to streams receive all the frames that are being sent from the render nodes as part of each stream.
For concers about the health of the workload render instances, check the Workload Health section.
The value displayed in this field is an aggregated status of all streams in the workload.
Possible values are:
- No subscription requested: A stream exist, but the receiver of the stream has not subscribed to it.
- Receiving OK: The stream is being received correctly.
- No frames received in
s : No frames have been received in the specified amount of seconds. - No frames received in > 10s: No frames have been received in over 10 seconds.
- Bad stream (
) : There was an error with the stream, and it includes the specific error message. - Frames dropped recently: A frame was dropped within the last second.
- No frames received yet: No frames have been received yet, and the receiver has not reported any dropped packets.
- No frames received (dropping packets): No frames have been received yet because the incoming frames were dropped. This status signifies a network issue.
- Dropping packets: Incoming frames are reported as dropped by the receiver.
- Subscribe unsuccessful: A stream exists and the receiver tried to subscribe, but failed.
In the aggregated ‘Receive health’ field, the aggregated status reflects the highest priority status of all streams in the workload. The status list above has been sorted from lowest priority to highest priority status.
Receive Health Widget
Section titled “Receive Health Widget”Right-click on Receive health field to open the Receive Health widget.
The Receive Health widget provides a detailed view of the health of each stream in the workload. It includes information such as:
- Receiver: Name of the machine subscribed to the stream.
- Stream: Unique identifier of the stream.
- Status: Current status of the stream. See Receive Health section for possible values.
- Recv: Average receive rate of the stream in frames per second. This is based on how many frames the receiver machine receives.
- Sent: Average send rate of the stream in frames per second. This is based on how many frames the sender machine reports as being sent.
Workload Health
Section titled “Workload Health”Workload health is used to monitor the health of individual render instances (an instance of a render engine running on a machine) in the workload. The status shown in the “Workload” field in the RenderStream Layer is an aggregated status of all render instances running in the workload. For detailed information per render instance, right-click on the “Workload” field to open the Workload widget while the workload is running, and look at the “Instances” section.
Possible values are:
- Unknown: Error getting the status.
- Crashed: Remote engine is not responding.
- Stopping: The engine has acknowledged the request to shut down and is in the process of responding to that request.
- StopRequested: The engine has been asked to shut down.
- Stopped: Remote engine is not expected to be running.
- Error: An error occurred in the remote engine and is in a bad state. The engine is not stopped either since the process is alive.
- Launching: Workload has been requested to start on the remote machine and no response has been received yet.
- Starting: The remote engine is sending status updates but is currently not in a state where it will send frames.
- Offline: The RenderStream plugin in the remote engine is not sending responses, but the process hasn’t crashed.
- Ignoring requests: The remote engine is in a state where it can send frames but is not currently responding to any of the frame requests sent by the workload controller machine.
- Awaiting requests: The remote engine is in a state where it can send frames but it has not yet received any requests from the workload controller machine.
- Warning: Non-critical issue exist and the workload is still running.
- Running OK: The remote engine is processing all incoming requests and sending frames as expected.
- Discarding requests: The remote engine is processing some of the incoming requests, but is not fast enough to keep up with the current frame request rate.
- Dropping input frames: The remote engine did not receive some of the remote textures that it needed.
Workflow
Section titled “Workflow”Set up your environment including installation of the Render Engine and required plugin.
Use the RenderStream Layer to control the third party render engine.
- Notch
- Plugin - included in Designer.
- Documentation
- Touch Designer
- Unity
- Unreal Engine