nDisplay配置文件参考

nDisplay配置文件中所有可用设置的参考指南。

Windows
MacOS
Linux

可在单个配置文件中定义nDisplay系统的多数方面。该文件包括组成网络的计算机、虚幻引擎将各计算机上渲染的窗口和视口特性、各视口应渲染的虚拟世界分段、要接受的输入设备类型等内容。

本页将介绍nDisplay配置文件中的所有可用设置。

开始学习并创建nDisplay配置文件的最佳方法便是以nDisplay插件提供的示例配置着手开始。如已使用nDisplay模板创建项目,可在项目文件夹“Content/ConfigExamples”中找到此类文件。如尚未创建,可在虚幻引擎安装目录中的“Templates/TP_nDisplayBP/Content/ConfigExamples”下找到此类文件。

nDisplay配置文件的结构与其用于渲染视觉化的不同类型组件有直接关系。

  • 配置的不同类型组件在文件拥有各自的行,并由指定字符串ID进行辨识。一个配置分段需引用另一配置分段时,将使用此类字符串ID。

  • 该文件中配置的许多组件在虚拟3D空间中拥有定义的位置(通常有旋转)。各对象的位置和旋转均相对于该对象的 父项。所有对象的父项默认为VR空间原点:3D场景空间中的任一点,VR空间作为该3D场景空间的起点。还可配置3D空间中名为scene_node的特定命名变换,其可作用一个或多个组件的父项。此操作有助于简化屏幕、相机和其他组件的空间布局。
    要查看使用scene_node构建在虚拟空间相同点开始的所有3D变换的层级,参阅下文配置文件示例章节。

  • 除非另有说明,则引用虚拟3D空间或真实物理空间中测量值的所有参数需使用以米和度计的值。其中包括屏幕、场景节点、相机等。

  • 在屏幕空间中引用测量值的所有参数应使用以像素计的值。其中包括窗口和视口。

群集节点配置

对于将在nDisplay网络中使用的虚幻引擎应用程序的不同实例,需定义 cluster_node 配置。各cluster_node配置须包含对 窗口 配置分段的引用,该分段定义主应用程序窗口属性。

cluster_node配置还定义将运行该应用程序实例的计算机主机名或IP地址。可设置各cluster_node配置的不同物理计算机,或在同一主机上运行多个cluster_node配置。

示例配置:

本例中配置主节点(每网络一个):

[cluster_node] id=node_front addr=192.168.0.1 window=wnd_LT sound=true port_cs=41001 port_ss=41002 master=true

本例展示了非主群集节点:

[cluster_node] id=node_left addr=192.168.0.2 window=wnd_large sound=false

参数:

参数

说明

id

此群集节点配置的唯一命名。

addr

将运行此虚幻引擎实例的计算机IP地址。这必须是一个IPv4地址。不支持IPv6。

window

窗口 配置的命名,其定义此虚幻引擎应用程序实例的主窗口大小和位置。

sound

决定此虚幻引擎实例是否播放音效。可选;默认值为“false”。

port_cs port_ss port_ce

主节点用于与群集其他节点通信的端口。port_cs 用于群集同步;port_ss 用于交换同步;port_ce 用于群集事件。可选;默认值为“14001”、“14002”、和“14003”。

master

决定此虚幻引擎实例是否为群集主节点。仅有一个 cluster_node 分段可将该参数设置为 true。可选;默认值为 false

eye_swap

决定是否交换左眼和右眼生成的图像。可选;默认值为 false

窗口配置

窗口 配置定义虚幻引擎应用程序实例主窗口的一组属性。nDisplay启动应用程序时,可使用其配置如窗口初始大小和位置等设置,及该窗口是否占据整个屏幕。

此外还提供一个或多个 视口 配置,此类配置辨识主应用程序窗口中的特定区域,nDisplay将使用场景渲染填充此类区域。

示例配置:

本例中配置包含单个视口的应用程序窗口:

[window] id=wnd_one fullscreen=false WinX=0 WinY=0 ResX=640 ResY=480 viewports=vp_LT

本例中配置包含四个不同视口的应用程序窗口:

[window] id=wnd_four fullscreen=false WinX=0 WinY=0 ResX=640 ResY=480 viewports="vp_LT,vp_RB,vp_LB,vp_RT"

参数:

参数

说明

id

此窗口配置的唯一命名。

fullscreen

决定是否在全屏模式下运行此窗口。如将此值设为 false,须提供 WinXWinYResXRexY 的以下设置。

Winx WinY

指定桌面应用程序窗口左上角的位置,以屏幕空间像素计。

ResX ResY

指定应用程序窗口的大小,以屏幕空间像素计。

viewports

引用一个或多个 视口 配置分段,此类配置分段定义主应用程序窗口的区域,nDisplay将使用场景渲染视图填充此类区域。
如指定多个视口,须使用逗号分隔的 视口 配置分段命名列表(以引号包括)。参阅上文 示例配置 章节下的 wnd_four 示例。该列表的顺序不对视口的视觉顺序或位置产生影响。在已命名的 视口 配置中定义父窗口中的视口位置。

确保使用的视口定义不超过窗口的大小。

视口配置

以上所述的各 窗口 配置引用一个或多个 视口 配置,所有视口配置均定义游戏窗口内的矩形区域,nDisplay则使用场景渲染视图填充该游戏窗口。

视口通常以应用程序窗口左上角开始,且宽度和高度已设好,以便填充父窗口。但在某些情况下,可能需在父应用程序窗口中偏移视口。例如,如需设置分段重叠的两个投影仪,或需一个应用程序窗口在不同位置上拥有多个独立视口,则可能需要进行此操作。

示例配置:

[viewport] id=vp_LT X=0 Y=0 width=300 height=220 screen=scr_LT

参数:

参数

说明

id

此视口配置的唯一命名。

X Y

主应用程序窗口屏幕空间中视口左上角的坐标,以像素计。注意,此类值相对于应用程序窗口的左上角,而非屏幕自身左上角。

width height

已渲染框架的宽度和高度,以像素计。其不应大于使用该视口的 窗口 大小 参数所设游戏窗口的大小。

screen

定义由虚幻引擎渲染到此视口中的3D空间视锥 屏幕 配置命名。

屏幕配置

不同输出显示均使用矩形(其大小和位置在3D VR空间中定义)定义的视锥体,在当前相机位置渲染场景。所有矩形均由 屏幕 配置定义。此类投影屏通常在VR空间中的大小与用于渲染该投影屏的物理屏幕大小相同。

屏幕轴心点始终是最中心点。

示例配置:

该定义描述的为3*3米并直接位于其父项前的屏幕。由于屏幕轴心点位于由大小参数定义的矩形中心,因此需在Z轴上添加1.5米的偏移,以将屏幕向上移动半个高度。

[screen] id=screen_front loc="X=1.5.Y=0,Z=1.5" rot="P=0,Y=0,R=0" size="X=3,Y=3" parent=screens

要定义观众左侧的屏幕,将其向左移动(Y轴的负值),并围绕着本地Y轴旋转(yaw)。 

[screen] id=screen_left loc="X=0,y=-1.5,Z=1.5" rot="P=0,Y=-90,R=0" size="X=3,Y=3" parent=screens

参数:

参数

说明

id

此屏幕配置的唯一命名。

loc

该屏幕中心在VR空间中相对于其父项的位置。

rot

屏幕朝向的Pitch(P)、Yaw(Y)和Roll(R)角度,以度计。

size

沿其本地X和Y轴的屏幕矩形的总尺寸,以米计。

parent

要用作该对象父项的 scene_node 配置命名。此为可选参数。如指定父项,在 locrot 参数中设置的值将相对于该父项的位置。如省略父项,在 locrot 参数中设置的值将相对于VR根。

相机配置

nDisplay群集中的所有实例在虚拟世界中的相同位置渲染场景。所有潜在视点均由 相机 配置行定义。

可在运行时切换此类视点。各相机视点也可由跟踪设备驱动。

示例配置:

[camera] id=camera_static loc="X=0.Y=0,Z=1.7" tracker_id=VRPNTracking tracker_ch=0

参数:

参数

说明

id

此相机配置的唯一命名。

loc

该相机在VR空间中相对于其父项的位置。

tracker_id

输入 配置的命名,该配置定义用于随着时间驱动相机位置的VR设备。可选参数。如省略该参数,相机位置将在VR空间中静止。

tracker_ch

提供 tracker_id 时,该参数指定nDisplay将从中读取跟踪数据的设备通道。

parent

要用作该对象父项的 scene_node 配置命名。此为可选参数。如指定父项,loc参数中设置的值将相对于该父项的位置。如指定父项,loc参数中设置的值将相对于VR根。

场景节点配置

在配置文件中,可定义场景节点的层级,各层级表示3D空间中的转换。配置文件中设置且需要3D空间中位置和旋转的项目(例如相机或投影屏),都可使用此类 scene_node 配置作为其父项。此操作可协助定义可视化系统中所有不同组件间的空间关系。

与相机类似,场景节点也可由VR跟踪设备驱动。

示例配置:

以下行定义了由两个节点组成的层级,其中子节点在其父节点前偏移2米。

[scene_node] id=vr_space_root loc="X=0.Y=0,Z=0" rot="P=0,Y=0,R=0"
[scene_node] id=walls_front_group loc="X=2.Y=0,Z=0" rot="P=0,Y=0,R=0" parent= vr_space_root

以下行显示了配置为由VR跟踪设备驱动的场景节点:

[scene_node] id=cave_wand loc="X=0, Y=0,Z=1" tracker_id=CaveTracking tracker_ch=1

参数:

参数

说明

id

此场景节点配置的唯一命名。

loc

该场景节点在VR空间中相对于其父项的位置。

rot

场景节点朝向的Pitch(P)、Yaw(Y)和Roll(R)角度,以度计。

parent

要用作该场景节点父项的另一 scene_node 配置命名。此为可选参数。如指定父项,在 locrot 参数中设置的值将相对于该父项的位置。如省略父项,在 locrot 参数中设置的值将相对于VR根。

tracker_id

输入 配置的命名,该配置定义用于随着时间驱动场景节点位置的VR设备。可选参数。如果省略此参数,相对于父节点,场景节点的位置和旋转将在VR空间中静止。

tracker_ch

提供 tracker_id 时,该参数指定nDisplay将从中读取跟踪数据的设备通道。

输入配置

定义向Display系统提供输入所需设备的 输入 分段。例如,各 相机scene_node 可由VR跟踪设备驱动,可在 输入 分段设置该设备并在 相机scene_node 配置中引用该设备。此外,也可设置跟踪器、控制器和键盘,将通用输入事件发送到虚幻引擎输入系统,或将其事件和输入值绑定到通用nDisplay蓝图节点,可在项目的游戏进程脚本中响应此类节点。

同时可使用 input_setup 分段以控制此类输入设备中的特定通道、按钮或键绑定到虚幻引擎中特定类型输入事件和值的方式。

关于nDisplay输入的使用方法概述,参阅使用VRPN输入

示例配置:

此配置设置nDisplay以在VRPN位置跟踪设备中获取输入。此类设备通常挂载在相机或观众头部,或由观众手持。通过引用 相机scene_node 配置中的此类 输入 配置,可从跟踪器处自动驱动相机或场景节点的位置。也可在项目的蓝图代码中获取此跟踪器的值。

[input] id=CaveTracking type=tracker addr=Tracker0@192.168.0.1 loc="X=-1.5,Y=0,Z=3.4" rot="P-0,Y=0,R=0" front=X right=Y up=-Z

该配置设置nDisplay以在设为VRPN设备的键盘中读取键盘输入,并通过虚幻引擎内置键盘输入路由该输入。

[input] id=ControlKeyboard type=keyboard addr=Keyboard0@192.168.0.1 reflect=ue4

参数:

参数

说明

id

此输入设备配置的唯一命名。

type

此VRPN输入设备的类型:

  • tracker 为跟踪设备。

  • analog 为生成轴数据的设备。

  • button 为生成布尔按钮数据的设备。

  • keyboard 为标准计算机键盘。

addr

处理此特定设备的VRPN服务器地址。数值须匹配以下格式:
DEVICENAME@SERVER_ADDRESS:SERVER_PORT
其中:

  • DEVICENAME 为该设备的VRPN命名。

  • SERVER_ADDRESS 为VRPN服务器的IPv4地址。

  • :SERVER_PORT 为传入连接的端口,VRPN服务器监在其上聆听。
    此为可选。如不提供,nDisplay默认使用 3883 端口。

Type=tracker 同时接受以下附加参数的设备:

参数

说明

loc rot

与其他配置分段类似,locrot 参数指定该输入设备在本地空间中的位置和旋转偏移。但对于输入设备,通常使用此类偏移调整跟踪设备在VR空间中的根位置,以匹配其在场景节点层级中应存在的位置。

front right up

此类参数会将虚幻中跟踪器的各本地轴(前、右和上)与跟踪器坐标系中的对应轴匹配。虚幻使用右手惯用的Z轴向上坐标系。如跟踪器使用其他坐标系,可使用此类参数将跟踪器坐标系映射到虚幻坐标系。
例如,以下代码行将跟踪器Y轴映射到虚幻前(X)轴;将跟踪器X轴映射到虚幻右(Y)轴;将跟踪器负Z轴映射到虚幻上(Z)轴:
front=Y right=X up=-Z

Type=keyboard 同时接受以下附加参数的设备:

参数

说明

reflect

决定将该键盘中的输入传到虚幻引擎及响应此类事件的方式。
此设置接受以下值:

  • nDisplay

  • ue4

  • both

  • none

欲了解更多信息,参阅反射键盘事件

输入设置配置

input_setup 配置分段提供指定 输入 设备的额外配置参数,通常将该设备的通道或键绑定到通用nDisplay蓝图输入节点。

示例配置:

此配置使用ID控制器设置输入设备,以便按下在通道0上生成事件的按钮时,在蓝图中的 Input > N Display Events > nDisplay Button 0 节点生成事件。

[input_setup] id=controller ch=0 bind="nDisplay Button 0"

此配置与以上配置类似,不同的是其会将模拟值(通常是控制器中的轴)绑定到nDisplay模拟值。可使用蓝图中的 Input > N Display Events > nDisplay Analog 0 节点来检测使用该控制器轴的时间,或用 Input > N Display Values > nDisplay Analog 0 节点来获取当前帧的值。

[input_setup] id=test_axes ch=0 bind="nDisplay Analog 0"

如使用键盘设备,则无需专门绑定其所有键。相反,只需使用 输入 分段中的 反应 设置来决定键事件是路由到虚幻引擎内置键盘事件,还是nDisplay键盘事件。如要更改绑定或添加新绑定,也可进行操作。例如,本分段促使空格键触发 输入(Input) > N显示事件(N Display Events) > nDisplay按钮3(nDisplay Button 3) 事件。

[input_setup] id=keyboard0 key=Space bind="nDisplay Button 3"

参数:

参数

说明

id

参见此 input_setup 分段配置的 输入 配置ID。
注意:与nDisplay配置文件中多数分段不同,此 id 值不提供包含该ID值的 input_setup 分段的ID。相反,其将引用文件中其他地方定义的 输入 分段ID。

ch

决定指定输入设备的通道,该设备将被绑定到 绑定 设置中设置的事件。

key

ch 类似,但仅用于type=keyboard的输入设备。

bind

决定上述指定通道或键绑定的虚幻引擎中的事件。此值可为 输入 类别中任何蓝图节点的命名,例如 F1nDisplay F1nDisplay Button 0Gamepad Left Thumbstick X-AxisGamepad Face Button Top 等。
如命名包含空格,须用双引号包括。

同时可使用输入模块API中的节点,在项目的蓝图代码中设置此类通道信道和键绑定。欲了解详情,参阅将设备信道绑定到UE4输入

常规配置

常规 配置行包含控制nDisplay群集整体操作的参数。

示例配置:

[general] swap_sync_policy=1

参数:

参数

说明

swap_sync_policy

决定在网络上同步输出的方式。

  • 0:无同步。

  • 1:软件切换同步

  • 2:NV切换锁(仅适用NVIDIA卡利用OpenGL渲染时)

立体声配置

立体声 配置行设置立体声渲染的可选全局参数。

示例配置:

[stereo] eye_dist=0.064

参数:

参数

说明

eye_dist

瞳孔间距离,用于偏移左眼和右眼生成的图像,以米计。

网络配置

网络 配置分段提供可用于控制超时和nDisplay群集节点间网络通信相关的其他设置的设置。

nDisplay配置文件中仅能有0个或1个 网络 分段。

示例配置:

[network] cln_conn_tries_amount=10 cln_conn_retry_delay=1000 game_start_timeout=30000 barrier_wait_timeout=5000

参数:

参数

说明

cln_conn_tries_amount

非主群集节点启动时,此设置决定该节点尝试连接到主节点的次数。
可选参数;默认值为10。

cln_conn_retry_delay

非主群集节点启动时,此设置决定节点尝试连续连接到其主节点间的时间间隔(以毫秒计)。
可选参数;默认值为1000。

game_start_timeout

设置时间间隔,所有虚幻引擎应用程序开始游戏循环首帧并渲染到主窗口前需等待,以毫秒计。此操作使所有群集节点会在渲染开始前尝试连接主节点。在此期间,主窗口将为黑色。如此时间间隔结束后,无节点连接成功,群集内所有实例将关闭。
可选参数;默认值为30000。如群集的初始化时间过长,则需提高此值。

barrier_wait_timeout

设置游戏和渲染线程的障碍超时(以毫秒计)。此障碍超时会在群集节点间同步游戏和渲染线程。会每帧内被数次使用。换言之,运行时将使用此超时,以侦测节点无法访问的情况。如发生此情况,群集状态将被视为无效状态,所有节点将自行关闭。
可选参数;默认值为5000。

cln_conn_tries_amountcln_conn_retry_delay 设置将共同决定群集节点启动时尝试连接到主节点的最大时长。例如,假设将 cln_conn_tries_amount 设为10,将 cln_conn_retry_delay 设为1000毫秒。启动时各节点会尝试连接到主节点。如连接失败,其将等待1000毫秒后重试。如该尝试再次失败,其将再等待1000毫秒。连续失败10次后,群集节点会自动退出。一旦群集节点连接到主节点,将停止计数。

信息配置

信息 配置行包含最新版nDisplay和与该配置文件兼容的虚幻引擎相关可选信息。

示例配置:

[info] version=22

参数:

参数

说明

version

最新版nDisplay和与该配置文件兼容的虚幻引擎相关可选信息。
应将数字理解为 4. 后的点版本。例如,数值22表示该文件与nDisplay和虚幻引擎的4.22版本兼容。

请勿手动设置此值。nDisplay Launcher 将自动设置。如使用的配置文件无版本号,或文件中的版本低于正使用的nDisplay和虚幻引擎版本,则 nDisplay Launcher 会尝试自动更新配置文件以使用最新版本。如成功,其会将更新的配置保存到新文件中,并更新此值为最新版本。

配置文件示例

以特定例子为例,打开 wall_flat_3x2.cfg 样本文件。此文件定义了六个投影屏,所有屏幕均由单独的物理计算机渲染。

其还定义了多个scene_node,此类节点共同创建以下层级:

nDisplay example scene hierarchy

节点在该层级中的相对位置和旋转决定相机和六个屏幕在VR空间中的布局,以便在距离相机1米的位置,并排放置六个投影屏。 

注意:考虑到渲染场景的显示器边缘,此类配置表明每对相邻的投影屏间的空间较小。

Select Skin
Light
Dark

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见