Choose your operating system:
Windows
macOS
Linux
每个nDisplay设置都有一台 主 计算机和数量不定的附加计算机。
-
网络中的各计算机将运行项目已打包可执行文件的一个或多个实例。
-
每个虚幻引擎实例将处理一个或多个如屏幕或投影仪等显示设备的渲染。
-
对于虚幻引擎实例处理的各设备,其在同一3D场景中渲染单个视点。通过设置此类视点,使其在3D场景中的位置与现实世界中屏幕或投影表面的物理位置匹配,可给观众营造身处虚拟世界中的错觉。
-
主节点还负责通过虚拟现实外围网络(VRPN)的连接来接受空间跟踪器及控制器中的输入,然后将该输入复制到其他所有连接的计算机。
上图显示了可能的nDisplay网络。与所有nDisplay网络相同,其PC中的一台将扮演主节点。该主节点接受来自VRPN服务器的系统输入,其会中继空间追踪设备和其他控制器设备中的信号。该网络同时包括运行虚幻引擎项目的其他实例额外几台PC。各群集节点驱动一个或多个显示投影仪。
一个应用程序实例,其渲染到一个显示设备
|
|
多个应用程序实例,各实例均渲染到一个显示设备
|
|
渲染到多个显示设备的一个应用程序实例。
|
nDisplay组件
nDisplay将以下多个组件添加到常用的虚幻系统架构:
-
在虚幻引擎内运作的插件。其会在组成群集的所有应用程序实例间通信和同步信息,确保所有实例同时渲染相同的帧、确保所有显示设备渲染游戏场景的正确视锥等。
-
名为 nDisplayLauncher 的网络供应和管理应用程序。可在网络中的单个计算机上运行此应用程序,以便在网络中的所有计算机上自动启动和退出已打包的虚幻引擎应用程序。
-
在所有计算机上运行单独的监听应用程序 nDisplayListener 。此应用程序聆听nDisplayLauncher中传入的请求,并在本地计算机上处理此类请求。
-
包含nDisplay所需全部设置的共享配置文件,以在正确的计算机上启动正确数量的实例,各实例在游戏的3D场景中渲染正确视点,从而在所有显示屏或投影仪上生成无缝渲染的效果。参阅 nDisplay配置文件参考 。
运行时摄像机控制
在虚拟3D空间中,nDisplay将内部维护配置文件中设置的场景对象的层级。例如,此场景层级通常定义 摄像机 位置,以及3D空间 画面 矩形集的位置,此类位置在虚拟场景中代表真实显示画面或投射表面。相对于虚拟空间中固定位于原点(0,0,0)的单个 根 位置来定义此类nDisplay场景对象的位置。
在运行启用了nDisplay的项目时,此虚拟空间的根基于关卡中附加到摄像机的 DisplayClusterRoot 组件的位置和旋转。nDisplay每帧均会将此根组件的位置和旋转用作配置文件中设置的场景节点的层级起始点。
nDisplay在启动时会默认创建DisplayClusterRoot组件,并将其附加到默认摄像机。从而产生整个nDisplay簇中的所有设备和投影仪,将以活跃摄像机的视角自动渲染场景的效果。
蓝图API
可在游戏运行时逻辑中,使用游戏的蓝图API控制nDisplay系统的行为。
要获取此类API中公开的函数:
-
对于群集管理、查询输入设备、nDisplay渲染等多数相关的nDisplay蓝图函数,在蓝图中新建 N Display > DisplayCluster Module API 节点。
-
从节点的 Out API 引脚拖动,然后在 显示群集 或 显示群集输入 类别下查看:
扩展nDisplay
nDisplay原生提供诸多功能,用于控制跨多个计算机和输出设备的实时同步渲染。由于存在大量投射系统和显示表面,可能需要扩展nDisplay渲染系统来支持您自己选择的技术。若熟悉C++编程,并了解nDisplay在典型用例中的工作方式,则可在nDisplay的可扩展渲染API上进行打造,从而扩展nDisplay来支持其他显示和校准技术。
nDisplay API将渲染通道分解为数个主要概念:
-
DisplayClusterRenderingDevice ,本质上是本地
IStereoRendering
接口的扩展。 -
DisplayClusterPostProcess ,一组六个回调,用于对特定视口应用后期处理效果。
-
DisplayClusterProjectionPolicy ,负责自定义投射方法,如支持可扩展显示或MPCDI,以便渲染至曲面,或执行简单平面投射。
-
DisplayClusterRenderSyncPolicy ,用于各种同步方法,如 nvSwapLock 、vSync或24hz显示的自定义跳帧同步。
创建上述自有专业化元素之后,即可自定义nDisplay系统生成的图像,以适应使用的任何投射或显示技术,同时仍可享受nDisplay群集系统的所有关键优势,无需修改发布的虚幻引擎源代码。
欲知如何设置这些元素实现的工作模型,参阅"PicpProjection"和"PicpMPCDI"模块的源代码。可在虚幻引擎源代码(`Engine/Plugins/Runtime/nDisplay/Source`下)中找到这些模块。