This documentation demos the Unreal Engine Setup in Pixera within a single Director machine. Although possible, a proper Unreal Engine Setup operates with multiple clients and load distribution.
Please never set up a Virtual Production Environment on a single machine as you will always encounter performance problems. The setup will not work. Always use multiple clients and / or graphic cards to achieve a proper setup.
Virtual Production is a complex topic. It is mandatory to understand the basic setup to be able to advance to the advanced techniques (for example set extension and multi pos war).
Furthermore, it is mandatory to understand all the basic principles of Pixera.
Here is a list of all the VP related documentation in chronological order:
Setting up an Unreal Scene in Pixera
Virtual Production is a complex topic. In a proper VP setup, a high resolution led volume is used. As we are not able to simulate this effectively using a led volume on smaller demo / work setups, we are going to use generic displays.
For demonstration purposes we are going to use a simple setup. Import a display in the workspace:
In screen groups set the perspective mode to 3D:
In case you are running an older image Version the following prerequisites are mandatory to run this setup:
- Nivida Driver minimum 526.47
New Windows Release Version 21H2 (paid upgrade):
please contact AVStumpfl support in case you need more information or / and an upgrade
Import Unreal Scene to Pixera
Before the scene can be imported, the “Engine Editor Path” must be setup in the Pixera settings. Please add the path to the UnrealEditor.exe as shown in the screenshot.
Unreal 4.27 is no longer supported with Pixera 2.0! However Unreal 4.27 projects can be opened and started in Unreal 5.21. A migration can be easily achieved. For more complex projects there is an official migration guide from Epic available:
Unreal Engine 5 Migration Guide | Unreal Engine 5.0 Documentation
Import the Unreal scene via the import button to your compositing ressources:
You can either import a regular Unreal Project file. Furthermore, Unreal packaged exe files can be opened as well. This is only accessible by using the AVStumpfl compiled Unreal Version. The version is only available on request.
After following the steps, the Unreal scene is accessible in the Resource Browser:
Now after selecting the Unreal scene in the Resource Browsers some important settings are accessible in the inspector. Set the correct Unreal Engine Version and Render API. In upcoming releases, the default will be set to 5.2 and DX12. Please control this setting as it is important:
The Launch settings control the launch options. The default for a regular Unreal project is Dash Game mode. Packaged is used for Unreal exe setups and Multiuser is used for Unreal Multiuser Sessions.
Add the resource to the timeline and select the resource in the browser afterwards as we must access the settings in the inspector.
As seen in the screenshot there is a red entry stating that the nDisplay config needs a refresh. Hit the create button. Pixera will now recreate the nDisplay config files.
Furthermore, activate the “Copy RxInterop.dll to Configure Nodes” Button (this has to be done just initially):
When installing Unreal on the regular C root drive this step will fail and the setup will not work.
This is why the installation on, for example, D is important!
Now, click on run in order to start Unreal Editor in the selected mode in background to show up your project.
The unreal scene is now running. On the top right comer, select the Perspectives with the selection mode selector:
Select the “eye”. Now you can move the perspective.
Positioning Unreal Setup
With the world position, the position of the unreal scene inside the “inner compositing” can be moved.
Pixera utilizes two differentiated 3D spaces. The so called “outer compositing" and “inner compositing”. in the “outer compositing” screens, displays and led volumes are places. This is the space where we, a lot of times" mimic the physical world setup.
The “inner compositing” is an additional 3D space. To be more precise, a 3D content space. This is where the unreal scene is being placed and displayed.
Through displays / volumes in the “outer compositing” we can “look” into the 3D workspace of the “inner compositing”.
When moving volumes in the outer compositing we are simultaneously moving the viewport from which we investigate unreal's 3D scene.
Try it for yourself by changing the position of the display in the “outer compositing space”.
When changing the position of volumes in the “outer compositing” it is necessary to kill the unreal scene and recreate the
The “World Rotation” always rotates the world through the root 0/0/0 position in the “inner compositing” 3D space.
To execute the world rotation from the changed world position, use the “Relative Camera Controls” in the inspector:
Custom Command Line Arguments
In the resource inspector it is possible to set up custom command line arguments. This will display fps, a graph or disable all screen messages from unreal.
By default, the static clipping plane for unreal setups is set to five hundred (meters):
By changing this setting, the render distance is going to be increased. As seen in the screenshot the sky is now rendered:
Lots of setup changes demand a kill and recreate for nDisplay. It is advised to kill and recreate the setup as often as possible to avoid problems.
For now, we only worked on the preview. As soon as we change or add an output configuration, we must kill the nDisplay setup and create a new nDisplay config:
By default, the playback on the local system is deactivated. The settings can be changed in the unreal resource inspector in the compositing. tab. By activating local we can display the setup locally:
There is an important reason this setting is deactivated by default. A proper unreal VP setup consists of a director for preview and a render client handles the playout. This is the reason that local is deactivated by default.
Pixera opens individual nDisplay configs for preview and playout. They will never be 100% in sync (but they are not required to).
Opening an output as well as a preview on the same machine demands massive performance. Please be aware of that. Unreal might crash as it will quite fast run out of Vram.
Furthermore, please note that Unreal Engine must be installed on all clients on the same drive and path as on the director. Installation of Pixera Unreal Engine Interop installer on all clients is mandatory as well.
Often the unreal scenes can be very demanding. Especially during preprogramming and planning the setup might be tested on non-production hardware. Or it is not necessary to display the outer frustum in full resolution (example - Virtual Production with tracking. Outer Frustum only responsible for reflections therefore resolution is not important)
In the inspector it is possible to scale down the render resolution.
1: Scaling factor for preview
2: Scaling factor for production overall (global resolution scaling for everything)
3: Outer frustum scaling factor
Adding a Second Display
Add a second display to the Workspace:
Kill the current unreal setup in the inspector and create a new nDisplay config. The scene is now displayed on both screens:
The unreal scene is being rendered within Pixera´s inner compositing. It is placed inside Pixera´s content 3D space. The used displays/volume acts like a “window” into this 3D world.
Managing the Render Load
Now both viewports are being rendered on the same graphics card. Depending on the unreal scene this can lead to performance problems.
The screenshot below was taken on a Pixera 4 server with 2 RTX A6000 graphic cards. As you can see the Usage on the first GPU is at 71% load, the second is currently at 0%:
On multi-GPU systems the load can be distributed to the second GPU in the settings. Select the resource and hit the “Edit” button. In here graphic cards can be assigned to displays / led volumes (viewports). The first GPU Index is always zero.
Viewport one is now rendered on the first GPU. Viewport two is rendered on the second GPU. The load has been distributed:
To be able to distribute the load Maximum GPU Topology must be activated in Nvidia Control Panel.
This can either be done by using SLI/NVLink or by creating a Mosaic.
Curved LED Setup
By default, the content mapping onto a curved LED is flat.
Change setting by selecting the LED (in screen group). Activate “Create Perspective Screen Texture Coordinates”.
Now pixels are mapped correct onto the curved led wall from the eyepoint:
If the eyepoint is below the physical boundary of the used screen you can utilize overscan to help. By using overscan the perspective viewport size can be increased. Therefore, more content can be displayed without changing the setup. Without changing this option on some setups there will be a black rendering shown when moving the eyepoint out of the render viewport.
Changing the overscan increases the viewport to catch more of the unreal scene.
There is no visual representation for the overscan in the preview.
Up until now only single client setups were displayed. To distribute the setup to multiple clients please follow the following steps:
- Create multiclient setup. Refer to Director - Client Setup
- Create nDisplay config as described earlier
- Distribute settings to additional clients:
The root unreal project directory (D:/UnrealProjects/…. -→ refer to screenshot) must exist as well on the client. Pixera will copy the project folder from the director to the clients used. For example, if a D: drive is not available to the client the project will not be copied, and the playout will not work!
For more detailed information on Interop setup please refer to:
Unreal Engine (5.2.1) Setup
Pixera 1.9.143 | 21. September 2023