Skip to content

Unity Project Setup

This topic covers how to set up a Unity project for use with RenderStream, including plugin installation, build settings, and Designer configuration.

  • Unity requires a plugin to communicate with Designer. Install the plugin on each render node.

  • Download the pre-packaged RenderStream plugin from the Disguise RenderStream-Unity GitHub. For the latest version, compile from source code under releases.

  • Place the plugin into this folder: PROJECT_ROOT/Assets/DisguiseUnityRenderStream

  • The plugin folder must be named correctly and placed in the exact location shown above, otherwise unexpected errors may occur.

  • The available plugin uses DX11, Direct3D11.

  1. Launch Unity, navigate to Projects and select New.
  2. Create a new 3D project.
  3. Name the project, set the location to: C:\Users\USERNAME\Documents\RenderStream Projects or D:\RenderStream Projects if using a system with a media drive (e.g. RX) and select Create.
  4. Open the project folder and place the plugin inside the Assets folder.
  5. Select File followed by Build Settings:
    • Set Architecture to Intel 64-bit. Unity build
  6. Navigate to Player Settings… > Configuration and set API Compatibility Level to .NET Framework. API Compatibility Level
  1. In Project Settings > Tags and Layers, expand Layers.
  2. Name an empty User Layer.
  3. Select any object from the scene.
  4. In the Inspector panel, add your new layer in the Layer parameter.
  5. Select your Camera(s).
  6. Open the Culling Mask dropdown in the Inspector panel and choose whether each Camera can see the objects in your new Layer.

Scenes in Unity can be composed of any number of GameObjects which are unique to that scene (by default). The Unity plugin offers two forms of multi-scene support:

Manual - this option restricts Designer’s control of scenes and instead merges all Channels and remote parameters into a single scene.

Selection - this option allows scenes to be controlled from inside Designer; Channels are merged into a single list (duplicates removed) and remote parameters are per-scene.

  1. Create a new scene, or open an existing scene.
  2. In the Project window, open the Resources folder and select DisguiseRenderStreamSettings.
  3. Set Scene Control option accordingly.
  4. Ensure all required scenes are selected in the Build settings.
  5. Build the Unity project.
  6. Save and close Unity.
  7. Ensure that the build folder is copied to your RenderStream Projects folder.
  8. Open the RenderStream layer in Designer and start the workload.
  9. Modify the Scene parameter as part of your normal sequencing.

Unity scenes

RenderStream integrates with Unity builds rather than the Unity editor/game mode.

  1. If you have multiple scenes in your project, ensure that the scene you wish to build appears in File > Build Settings.
  2. Build the project.
  3. Save the project and then close Unity.
  4. Ensure that the build folder is copied to your RenderStream Projects folder.

RenderStream Layer configuration in Designer

Section titled “RenderStream Layer configuration in Designer”
  1. Create a new RenderStream Layer in your Designer project.
  2. Select Asset and choose your executable.
  3. Right-click the Asset to open its editor and set Source Machine to the machine with the asset (used for syncing content).
  4. Select Cluster Pool and create a new cluster.
  5. Within the Cluster Pool, add the desired machines.
  6. Select Cluster Assigner and create a new Cluster Assigner.
  7. Within the Cluster Assigner, select the Asset.
  8. Select New Channel Mapping.
  9. Within each Channel’s row, select the relevant mapping type, assigner and load weight.
  10. If the machines in the Cluster Pool do not have the content or the project has changed, press Sync.
  11. Ensure all Sync Tasks are marked completed.
  12. Press Start.
  13. Wait for Workload status to switch to Running.

Unity assets can only be split across multiple nodes when using 3D Mappings (i.e. Camera Plate or Spatial). Attempting to split using a 2D Mapping will not work; all nodes will render the entire frame.