Interactive content isn’t limited to being displayed on a single screen, or even a single dual-screen device like a VR headset. An increasing number of visualization systems aim to immerse the viewer more effectively in the game environment by rendering real-time content through multiple simultaneous displays. These systems may be made up of multiple adjacent physical screens, such as a Powerwall display; or they may use multiple projectors to project the 3D environment onto physical surfaces like domes, tilted walls, or curved screens, such as in a Cave virtual environment.
The Unreal Engine supports these usage scenarios through a system called nDisplay. This system addresses some of the most important challenges in rendering 3D content simultaneously to multiple displays:
- It eases the process of deploying and launching multiple instances of your Project across different computers in the network, each rendering to one or more display devices.
- It manages all the calculations involved in computing the viewing frustum for each screen in real time, based on the spatial layout of your display hardware.
- It ensures that the content being shown on the various screens remains exactly in sync, with deterministic content across all instances of the Engine.
- It offers passive and active stereoscopic rendering.
- It can be driven by input from VR tracking systems, so that the viewpoint in the displays accurately follows the point of view of a moving viewer in real life.
- It is flexible enough to support any number of screens in any relative orientation, and can be easily reused across any number of Projects.
nDisplay System Overview
Every nDisplay setup has a single master computer, and any number of additional computers.
Each computer in the network runs one or more instances of your Project’s packaged executable file. Each of those Unreal Engine instances is responsible for rendering a single segment of the same 3D scene to a single screen or display.
The master node is also responsible for accepting input from a VRPN device, and replicating that input to all other connected computers.
To make this possible, nDisplay adds several components to the usual Unreal system architecture:
A network provisioning and management application, called nDisplayLauncher. You run this application on a single computer in your network to automatically deploy and launch your Project on all the computers in your network.
A separate listener application, called nDisplayListener, that runs on each computer. This application listens for incoming requests from the nDisplayLauncher, and processes those requests on the local computer.
A shared configuration file that contains all the settings nDisplay needs to start up the right number of instances on the right computers, each rendering the right point of view on the game’s 3D world to produce the illusion of a seamless rendering across all display screens or projectors. See About the nDisplay Configuration File below.
For more information, please see the documentation.