UE4使用nDisplay渲染到多个显示设备(一)

24 篇文章 2 订阅
7 篇文章 0 订阅

UE4使用nDisplay渲染到多个显示设备(一)

文档链接

交互式内容不局限于显示在一个屏幕上,甚至不局限于一个像VR头盔一样的双屏幕设备。越来越多的可视化系统旨在通过多个同时显示的实时内容来更有效地让观众沉浸在游戏环境中。这些系统可能由多个相邻的物理屏幕组成,例如Powerwall显示器;或者他们可能使用多个投影仪将3D环境投射到物理表面,如穹顶、倾斜的墙壁或弯曲的屏幕,如在洞穴虚拟环境中。

虚幻引擎通过一个名为nDisplay的系统支持这些使用场景。该系统解决了同时将3D内容呈现给多个显示器的一些最重要的挑战:

  • 它简化了跨网络中的不同计算机部署和启动项目的多个实例的过程,每个实例都呈现给一个或多个显示设备。
  • 它根据显示硬件的空间布局,管理在每一帧中为每个屏幕计算查看截锥体所涉及的所有计算。
  • 它确保在各种屏幕上显示的内容保持完全同步,在引擎的所有实例中都具有确定性的内容。
  • 它提供了被动和主动的立体渲染。
  • 它可以由VR跟踪系统的输入驱动,这样显示器中的视点就可以准确地跟随真实生活中移动的观众的视点。
  • 它足够灵活,可以支持任何相对方向的任意数量的屏幕,并且可以跨任意数量的项目轻松地重用它。

nDisplay 概览

描述在nDisplay渲染网络中多台计算机如何一起工作。

每个nDisplay设置都有一个主计算机,以及任意数量的其他计算机。

  • 网络中的每台计算机运行一个或多个项目打包的可执行文件实例。
  • 每个虚幻引擎实例处理渲染到一个或多个显示设备,如屏幕或投影仪。
  • 对于每个设备,一个虚幻引擎的实例处理,它呈现一个单一的观点在同一3D场景。通过设置这些视点,使它们在3D世界中的位置与真实世界中屏幕或投影表面的物理位置相匹配,您可以给观众一种在虚拟世界中存在的错觉。
  • 主节点还负责通过与虚拟现实外围网络(vrpn)的连接接收来自空间跟踪器和控制器的输入,并将这些输入复制到所有其他连接的计算机。

在这里插入图片描述

上图显示了一个可能的nDisplay网络。像所有的nDisplay网络一样,它的一台pc充当主节点。此主节点接受来自VRPN服务器的系统输入,VRPN服务器中继来自空间跟踪设备和其他控制器设备的信号。该网络还包含其他几台pc,它们运行虚幻引擎项目的其他实例。每个集群节点驱动一个或多个显示投影仪。


一个应用程序实例,呈现给一个显示设备
这是为nDisplay设置主机的最直接的方法。对于您需要的每个投影仪或显示设备,您需要设置一台计算机来处理该设备的呈现。在那台计算机上,运行虚幻引擎的一个实例。通常,在此场景中,您将设置该应用程序实例,以将单个3D空间矩形呈现到单个视图中。


多个应用程序实例,每个实例呈现给一个显示设备
如果您的网络中有多台计算机,它们有多个显卡,可以驱动多个显示设备,那么您可以在这些计算机上运行虚幻引擎的多个实例。您将指导虚幻引擎的每个实例呈现不同的3D空间矩形,并将每个实例分派到不同的图形卡。
如果项目的CPU和内存需求足够小,可以在同一台计算机上运行多个实例,则此方法可以很好地工作。


一个应用程序实例渲染到多个显示设备
使用此选项,您可以在计算机上运行虚幻引擎应用程序的单个实例,但是您可以将其设置为在一个大窗口内将场景3D空间的多个独立矩形呈现到不同的区域。然后使用NVIDIA Mosaic或NVIDIA Surround等技术来分割单个大窗口,并在不同的显示设备上呈现每个单独的区域。
在这种情况下,将nDisplay与Mosaic或Surround一起使用的好处是,您可以呈现与不同监视器的物理布局精确匹配的视图,即使这些监视器不在同一平面上。但是,所有的视图都是由同一个虚幻引擎实例渲染的,所以你不能在同一台电脑上安装多个显卡。


nDisplay 组件

nDisplay为通常的虚幻系统架构添加了几个组件:

  • 在虚幻引擎内部工作的插件。它在组成集群的所有应用程序实例之间通信和同步信息,确保所有实例同时呈现相同的帧,确保每个显示设备呈现正确的游戏世界截屏,等等。
  • 一个网络供应和管理应用程序,叫做nDisplayLauncher。您在网络中的一台计算机上运行这个应用程序,以便在网络中的所有计算机上自动启动和退出打包的虚幻引擎应用程序。
  • 一个独立的监听程序,叫做nDisplayListener,在每台计算机上运行。此应用程序侦听来自nDisplayLauncher的传入请求,并在本地计算机上处理这些请求。
  • 一个包含nDisplay所需的所有设置的共享配置文件,在正确的计算机上启动正确数量的实例,每个实例在游戏的3D世界中呈现正确的视图,从而在所有的屏幕或投影仪上产生无缝呈现的假象。参见nDisplay配置文件参考。

Buleprint API

你可以在你的游戏运行时逻辑中使用蓝图api来控制nDisplay系统的行为。

系统公开了下面的API:

  1. 对于大多数与集群管理、查询输入设备、nDisplay呈现等相关的nDisplay Blueprint功能,在您的Blueprint中创建一个新的N Display > Get DisplayCluster模块API节点。
    对于在VRPN输入设备和虚幻引擎输入事件之间设置绑定和反射的函数,在您的蓝图中创建一个新的N Display > Get DisplayClusterInput模块API节点。请参阅将设备通道绑定到UE4输入

  2. 从节点的Out API pin中拖出,查看显示集群或显示集群输入类别:
    在这里插入图片描述

扩展 nDisplay

nDisplay提供了许多开箱即用的特性,用于跨多台计算机和输出设备控制实时、同步的渲染。然而,有各种各样的投影系统和显示表面,您可能需要扩展nDisplay渲染系统来支持您自己的技术选择。如果您熟悉c++编程,并且了解nDisplay在典型用例中的工作方式,那么可以在可扩展的呈现API之上构建nDisplay,从而扩展nDisplay以支持其他显示和校准技术。

nDisplay API将渲染管道分解成几个主要概念:

  • DisplayClusterRenderingDevice,它本质上是本地IStereoRendering接口的扩展。
  • DisplayClusterPostProcess是一组6个回调,您可以使用它们将后期处理应用到特定的视图端口。
  • DisplayClusterProjectionPolicy负责自定义投影方法,例如支持可伸缩的显示或MPCDI来渲染到曲面,或执行简单的平面投影。
  • DisplayClusterRenderSyncPolicy用于各种同步方法,如nvSwapLock、vSync或用于24hz显示的自定义跳帧同步。

通过上面的描述,你可以创建自己的专用的功能。您可以自定义生成的图像nDisplay系统适合任何或投影显示技术,同时让所有的nDisplay集群系统都受益,而无需修改已发行的虚幻引擎源代码。

有关如何设置这些元素的实现的工作模型,请参阅PicpProjection和PicpMPCDI模块的源代码。你可以在虚幻引擎源代码的Engine/Plugins/Runtime/nDisplay/Source中找到这些模块。

  • 0
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: UE4 NDisplay是一个虚幻引擎4(Unreal Engine 4)的功能,用于创建多屏幕展示和显示墙的解决方案。它可以将多个显示器组合成一个展示区域,实现更大范围、更高分辨率的图像显示。NDisplay具有以下几个主要特点和优势。 首先,UE4 NDisplay提供了无缝的屏幕切换和同步功能。它可以将多个屏幕画面联接成一个整体,并确保画面在多个屏幕之间切换时没有明显的延迟或断裂感。这使得多个屏幕合成的画面可以流畅、连贯地呈现,提供更好的观看体验。 其次,UE4 NDisplay支持实时渲染。它可以实时处理和渲染复杂的图形和场景,确保高质量的图像输出和平滑的动画效果。同时,NDisplay还支持多台计算机的集群渲染,可以通过多台电脑的协同处理,加速渲染速度,保证图像的实时性。 第三,UE4 NDisplay具有可扩展性。它可以根据需求,将多台计算机整合成一个集群,构建更大规模的显示墙或多屏幕系统。这使得可以应用于多种领域,例如艺术创作、工程设计、虚拟现实演示等。 最后,UE4 NDisplay易于配置和使用。它提供了直观的用户界面,使得用户可以轻松地设置和调整不同屏幕的布局、分辨率和显示模式等。同时,NDisplay还提供了丰富的开发工具和文档,方便用户进行二次开发和定制。 总之,UE4 NDisplay是一种强大的多屏幕展示和显示墙解决方案,具有无缝切换、实时渲染、可扩展性和易用性等优势,为用户提供了更广阔的创作和展示空间。 ### 回答2: UE4中的nDisplay是一种用于构建多屏显示系统的工具。通过nDisplay,用户可以将多个计算机和多个显示屏无缝地连接在一起,以创建一个逼真的虚拟现实或仿真环境。 使用nDisplay,用户可以将多个显示屏幕合并成一个大屏幕,同时确保画面在不同屏幕之间完全同步和无缝过渡。这可以用于建筑、汽车、飞机等仿真项目,以便用户可以更好地体验和理解产品或环境。此外,nDisplay还可以用于创建虚拟现实(VR)体验,为用户提供沉浸式的感觉。 nDisplay还可以帮助用户更好地处理多计算机集群的并行运算。通过分布式渲染,nDisplay可以将渲染工作负载分发到多台计算机上,以加快场景的渲染速度。这对于需要处理复杂场景和高负荷的项目来说非常重要。 总的来说,UE4的nDisplay是一个强大的工具,可以帮助用户构建逼真的虚拟现实和仿真环境。它能够连接多个计算机和显示屏,同步画面并加速渲染。这为用户提供了更好的体验,同时也为开发人员提供了更大的灵活性和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值