Unreal Engine: Multi-Display Rendeirng with nDisplay Plugin
Published:
(work in progress…)
When it comes to multi-GPU and multi-display rendering (e.g., rendering a display wall), the Unreal Engine’s nDisplay plugin could be very useful. In my earlier rendering career, I had handful experience on real-time multi-machine rendering. I am writing this blog from my experience of 2020-2021. Meanwhile many things may change or updated. I will cross-check at my convenient time. The alternatives of nDisplay could be SAGE Web Application and NVidia Mosaic. However, the NVidia Mosaic comes default with the high-end GPUs, e.g., NVIDIA Quadro M4000 and higher. It allows warping (geometry corrections) and blending (intensity adjustments). Moreover, the software spans any application across up to 16 high-resolution panels or, projectors from a single system.
Now, back to the nDisplay plugin. The nDisplay runs in three ways: (i) from the project template (.uproject), (ii) as an executable (File >> Package Project >> Windows), and (iii) enabling nDisplay in existing project with nDisplay plugin. I will follow the first approach, running from project template.
Running from Project Template
nDisplayLauncher.exe (\Engine\Binaries\DotNET), nDisplayListener.exe (\Engine\Binaries\DotNET), configuration file (.cfg), and VRPN (virtual reality peripheral network) are four important attributes for working with nDisplay.
- Find the
nDisplayLauncher.exeandnDisplayListener.exeunderUE_version >> Engine >> Binaries >> DotNETfolder. I used Unreal 4.24 version. - Run
nDisplayLauncher.exe,Addthe configuration file and hitRun

- It is also possible adding
nDisplayafter packaging the project asproject_name.exe. For that,- find the
UE4Editor.exeunderUE_version>> Engine>> Binaries >> Win64 - add nDisplay in existing project, See More

Figure 2. nDisplay layout. - find the
Virtual Reality Peripheral Network (VRPN)
VRPN converts data from most devices to mostly three types: Tracker, Analog and Button. The Tracker type holds a position and an orientation. The Analog type is used for any type of axis: joystick axis, mouse axis. The Button type is used for any type of binary button: joystick button, mouse button (See more).
- We need
vrpn_server.exeandvrpn.cfgfile. The version should be 7.33. - A complete list of VRPN supported trackers can be found here. The devices currently do not support VRPN, need to manually add in the source code. Instructions can be found in Client side VRPN Devices and Creating a new device class.
nDisplay Sync Option
Synchronization is not compulsory for large number of displays, but optional for better performance. The Synchronization supports NVIDIA Quadro Sync for frame consistency, flexibility, and scalability. Some of the high-end compatible GPUs are (2021 list):
- NVIDIA RTX™ A6000
- NVIDIA RTX™ A5000
- NVIDIA RTX™ A4000
- NVIDIA A40
- Quadro RTX™ 8000
- Quadro RTX 6000
- Quadro RTX 5000
- Quadro RTX 4000
- Quadro GV100
For more about Quadro Synch II, Check.
Trouble Shooting
- The project need to be in a
common folderfor all the nodes. Agoogle drivecan also work for this purpose. - I previously saved the project in
master machineand shared withslave machine. But it did not work until I save the project in theslave machine. - Address will be the IP address of the computer running this Unreal Engine instance. Must be an
IPv4address,IPv6is not supported.
