Created
July 6, 2020 17:22
-
-
Save gncgnc/0114216c27d0786683fd0dbe7a9c176b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
##################################################################### | |
# nDisplay config file | |
# | |
# This file demonstrates how to configure a simple powerwall based | |
# on 3 PCs. Each PC manages 2 output displays aligned vertically. | |
# | |
# Note: | |
# Before use, make sure all settings correspond to your system. | |
##################################################################### | |
##################################################################### | |
# Config info | |
#******************************************************************** | |
# Config file header. | |
# | |
# Properties: | |
# version - Specifies the version of the configuration file (UE4.xx) | |
#******************************************************************** | |
[info] version="23" | |
##################################################################### | |
# Cluster nodes | |
#******************************************************************** | |
# Cluster node is an application instance. It's allowed to use | |
# multiple instances on the same PC. Sometimes its necessary. Usually | |
# application instances run on separate machines. | |
# | |
# Properties: | |
# id - Unique node name | |
# addr - Network address (IPv4 only) | |
# window - Window ID | |
# | |
# Optional properties: | |
# master - Specifies if current node is master; default is 'false' | |
# port_cs - Cluster Synchronization port (used by master node only); default is 41001. | |
# port_ss - Swap Synchronization port (used by master node only); default is 41002. | |
# port_ce - Cluster Events port (used by master node only); default is 41003. | |
# sound - turns on/off sound for this application instance; default is 'false' | |
#******************************************************************** | |
[cluster_node] id="node_1_up" addr="192.168.1.1" window="wnd_1_up" master="true" sound="true" | |
[cluster_node] id="node_1_dn" addr="192.168.1.1" window="wnd_1_dn" | |
[cluster_node] id="node_2_up" addr="192.168.1.2" window="wnd_2_up" | |
[cluster_node] id="node_2_dn" addr="192.168.1.2" window="wnd_2_dn" | |
[cluster_node] id="node_3_up" addr="192.168.1.3" window="wnd_3_up" | |
[cluster_node] id="node_3_dn" addr="192.168.1.3" window="wnd_3_dn" | |
##################################################################### | |
# Application windows | |
#******************************************************************** | |
# The window entity defines properties of the application's game window. | |
# | |
# Properties: | |
# id - Unique window name | |
# viewports - Array of viewports | |
# | |
# Optional properties: | |
# fullscreen - Fullscreen or windowed mode; default is false - windowed | |
# winx - X location | |
# winy - Y location | |
# resx - Width | |
# resy - Height | |
#******************************************************************** | |
[window] id="wnd_1_up" viewports="vp_1_up" fullscreen="false" WinX="0" WinY="0" ResX="1920" ResY="1080" | |
[window] id="wnd_1_dn" viewports="vp_1_dn" fullscreen="false" WinX="0" WinY="1080" ResX="1920" ResY="1080" | |
[window] id="wnd_2_up" viewports="vp_2_up" fullscreen="false" WinX="0" WinY="0" ResX="1920" ResY="1080" | |
[window] id="wnd_2_dn" viewports="vp_2_dn" fullscreen="false" WinX="0" WinY="1080" ResX="1920" ResY="1080" | |
[window] id="wnd_3_up" viewports="vp_3_up" fullscreen="false" WinX="0" WinY="0" ResX="1920" ResY="1080" | |
[window] id="wnd_3_dn" viewports="vp_3_dn" fullscreen="false" WinX="0" WinY="1080" ResX="1920" ResY="1080" | |
##################################################################### | |
# Viewports | |
#******************************************************************** | |
# Viewport is a rectangle area of game window where a frame is mapped. | |
# Usually viewports start at 0:0 and have the same size as its parent | |
# window (single viewport rendering). However, in some cases multiple | |
# viewports required. | |
# | |
# Properties: | |
# id - Unique viewport name | |
# x - X coordinate of viewport's top left corner on a window | |
# y - Y coordinate of viewport's top left corner on a window | |
# width - Width of viewport in pixels | |
# height - Height of viewport in pixels | |
# | |
# Optional properties: | |
# camera - Cammera assigned to this viewport | |
#******************************************************************** | |
[viewport] id="vp_1_up" x="0" y="0" width="1920" height="1080" projection="proj_simple_1_up" | |
[viewport] id="vp_1_dn" x="0" y="0" width="1920" height="1080" projection="proj_simple_1_dn" | |
[viewport] id="vp_2_up" x="0" y="0" width="1920" height="1080" projection="proj_simple_2_up" | |
[viewport] id="vp_2_dn" x="0" y="0" width="1920" height="1080" projection="proj_simple_2_dn" | |
[viewport] id="vp_3_up" x="0" y="0" width="1920" height="1080" projection="proj_simple_3_up" | |
[viewport] id="vp_3_dn" x="0" y="0" width="1920" height="1080" projection="proj_simple_3_dn" | |
##################################################################### | |
# Projection policies | |
#******************************************************************** | |
# Projection policy is an abstraction which knows where to take an | |
# projection input data and how to compute the output. This means | |
# that each policy might have it's own properties that it knows how | |
# to interpret and utilize. There are several projection policies | |
# available natively: simple, MPCDI and EasyBlend: | |
# | |
# * Simple - This one is the native projection policy that can be fully | |
# configured from the config file. All you need is to specify | |
# a projection screen. Those who has been used the nDisplay | |
# before are familiar with this policy already. | |
# | |
# * MPCDI - This policy allows to use an industry standard for multi- | |
# projector setups. It requires a special .mpcdi file that | |
# contains all the data required for computations. | |
# | |
# * EasyBlend - This policy is an implementation of the EasyBLend SDK | |
# provided by Scalable Display Technologies. It requires | |
# a bunch of special files that describe a multi-projector | |
# system. | |
# | |
# Properties: | |
# id - Unique projection policy name | |
# type - Projection policy type (custom types can be used) | |
#******************************************************************** | |
# Here is an example of simple projection policy. It requires to | |
# specify projection screens only. Refer to specific demo configs | |
# or documentation page to get more info about other projection policies. | |
[projection] id="proj_simple_1_up" type="simple" screen="scr_1_up" | |
[projection] id="proj_simple_1_dn" type="simple" screen="scr_1_dn" | |
[projection] id="proj_simple_2_up" type="simple" screen="scr_2_up" | |
[projection] id="proj_simple_2_dn" type="simple" screen="scr_2_dn" | |
[projection] id="proj_simple_3_up" type="simple" screen="scr_3_up" | |
[projection] id="proj_simple_3_dn" type="simple" screen="scr_3_dn" | |
##################################################################### | |
# Projection screens | |
#******************************************************************** | |
# Projection screen is a rectangle which determines the camera frustum. | |
# Usually the projection screen has the same dimensions as an output | |
# display but in some cases it may differ. Used by simple projection | |
# policy. | |
# | |
# Properties: | |
# id - unique projection screen name | |
# loc - relative location to the parent component. Location is relative | |
# to the VR root if no parent specified. The pivot is a screen's | |
# center and the values are in meters. | |
# rot - relative rotation to the parent component. Rotation is relative | |
# to the VR root if no parent specified. The pivot is a screen's | |
# center and the values are in degrees. | |
# size - width (X) and height (Y) of the screen. Values are in meters. | |
# | |
# Optional properties: | |
# parent - ID of parent component in VR hierarchy; default is VR root. | |
# tracker_id - ID of tracking device; no tracking by default. | |
# tracker_ch - ID of tracking device's channel; no tracking by default. | |
#******************************************************************** | |
[screen] id="scr_1_up" loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" size="X=0.5,Y=0.3" parent="display_1_up" | |
[screen] id="scr_1_dn" loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" size="X=0.5,Y=0.3" parent="display_1_dn" | |
[screen] id="scr_2_up" loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" size="X=0.5,Y=0.3" parent="display_2_up" | |
[screen] id="scr_2_dn" loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" size="X=0.5,Y=0.3" parent="display_2_dn" | |
[screen] id="scr_3_up" loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" size="X=0.5,Y=0.3" parent="display_3_up" | |
[screen] id="scr_3_dn" loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" size="X=0.5,Y=0.3" parent="display_3_dn" | |
##################################################################### | |
# Cameras | |
#******************************************************************** | |
# Camera is a predefined point frome where the stereoscopic view built. | |
# It's possible to define multiple cameras and swith the active one | |
# during runtime. You're free to attach any camera to a tracking device | |
# for head tracking. Consider a camera as a viewer's head. | |
# | |
# Properties: | |
# id - unique camera name | |
# loc - relative location to the parent component. Location is relative | |
# to the VR root if no parent specified. | |
# rot - relative rotation to the parent component. Rotation is relative | |
# to the VR root if no parent specified. | |
# | |
# Optional properties: | |
# parent - ID of parent component in VR hierarchy; default is VR root. | |
# tracker_id - ID of tracking device; no tracking by default. | |
# tracker_ch - ID of tracking device's channel; no tracking by default. | |
# eye_swap - Swap eyes for this camera in stereo mode; default is 'false' | |
# eye_dist - interoccular distance in meters for stereo/force_offset modes. | |
# Default is 0.064. | |
# force_offset - Force monoscopic camera to behave like a left/right eye | |
# of a stereoscopic camera. Eye_offset is applicable in this case. | |
#******************************************************************** | |
[camera] id="camera_static" loc="X=0,Y=0,Z=0" parent="socket_cam" eye_swap="false" eye_dist="0.064" force_offset="0" | |
##################################################################### | |
# Scene nodes (hierarchy transforms) | |
#******************************************************************** | |
# Scene node is an actor component which is basically a transformation | |
# matrix. Scene nodes can be helpful to build a component hierarchy, to | |
# define some special places (like a socket) within VR space. | |
# | |
# It might be difficult to understand what VR space origin is. Consider | |
# it as a point in space where VR space starts. Any componenent listed | |
# in this config file is relative to its parent or this origin. | |
# | |
# Properties: | |
# id - unique scene node name | |
# loc - relative location to the parent component. Location is relative | |
# to the VR root if no parent specified. | |
# rot - relative rotation to the parent component. Rotation is relative | |
# to the VR root if no parent specified. | |
# | |
# Optional properties: | |
# parent - ID of parent component in VR hierarchy; default is VR root. | |
# tracker_id - ID of tracking device; no tracking by default. | |
# tracker_ch - ID of tracking device's channel; no tracking by default. | |
#******************************************************************** | |
[scene_node] id="cave_origin" loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" | |
[scene_node] id="eye_level" loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" parent="cave_origin" | |
[scene_node] id="column_2" loc="X=1,Y=0,Z=0" rot="P=0,Y=0,R=0" parent="eye_level" | |
[scene_node] id="display_2_up" loc="X=0,Y=0,Z=0.155" rot="P=0,Y=0,R=0" parent="column_2" | |
[scene_node] id="display_2_dn" loc="X=0,Y=0,Z=-0.155" rot="P=0,Y=0,R=0" parent="column_2" | |
[scene_node] id="angle_1" loc="X=1,Y=-0.255,Z=0" rot="P=0,Y=0,R=0" parent="eye_level" | |
[scene_node] id="column_1" loc="X=0,Y=-0.255,Z=0" rot="P=0,Y=0,R=0" parent="angle_1" | |
[scene_node] id="display_1_up" loc="X=0,Y=0,Z=0.155" rot="P=0,Y=0,R=0" parent="column_1" | |
[scene_node] id="display_1_dn" loc="X=0,Y=0,Z=-0.155" rot="P=0,Y=0,R=0" parent="column_1" | |
[scene_node] id="angle_3" loc="X=1,Y=0.255,Z=0" rot="P=0,Y=0,R=0" parent="eye_level" | |
[scene_node] id="column_3" loc="X=0,Y=0.255,Z=0" rot="P=0,Y=0,R=0" parent="angle_3" | |
[scene_node] id="display_3_up" loc="X=0,Y=0,Z=0.155" rot="P=0,Y=0,R=0" parent="column_3" | |
[scene_node] id="display_3_dn" loc="X=0,Y=0,Z=-0.155" rot="P=0,Y=0,R=0" parent="column_3" | |
[scene_node] id="socket_cam" loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0" parent="eye_level" | |
[scene_node] id="wand" loc="X=0,Y=0,Z=1" | |
##################################################################### | |
# List of input devices | |
#******************************************************************** | |
# Input devices are VRPN devices. The nDisplay supports the following | |
# types: analog, button and tracker. Many of physical input devices | |
# can be connected via VRPN. | |
# | |
# Properties: | |
# id - nique device name | |
# type - VRPN type (analog, button or tracker). | |
# addr - address of a VRPN server which handles this particular device. | |
# The value must match the following format: DEVICENAME@SERVER_ADDRESS | |
# where DEVICENAME is a VRPN name of this device and SERVER_ADDRESS | |
# is IPv4 address of VRPN server. | |
# loc - relative location to the parent component. Location is relative | |
# to the VR root if no parent specified. | |
# rot - relative rotation to the parent component. Rotation is relative | |
# to the VR root if no parent specified. | |
# | |
# front (tracker only) - mapping of a tracking system axis to X axis of VR origin | |
# right (tracker only) - mapping of a tracking system axis to Y axis of VR origin | |
# up (tracker only) - mapping of a tracking system axis to Z axis of VR origin | |
# * The following values are allowed for axes mapping: X, -X, Y, -Y, Z, -Z | |
# | |
# Optional properties: | |
# remap - VRPN device channel remapping. Value format is: "from0:to0,from1:to1,...,fromN:toN". | |
# For example: remap="0:3,1:4,5:2" | |
#******************************************************************** | |
[input] id="MAxis" type="analog" addr="Mouse0@127.0.0.1" | |
[input] id="MButtons" type="buttons" addr="Mouse0@127.0.0.1" | |
[input] id="KButtons" type="buttons" addr="Keyboard0@127.0.0.1" | |
##################################################################### | |
# General settings | |
#******************************************************************** | |
# Properties: | |
# swap_sync_policy - swap synchronization policy | |
# - 0 - no synchronization | |
# - 1 - software swap synchronization | |
# - 2 - NV swap lock (Nvidia cards only, OpenGL only) | |
[general] swap_sync_policy="1" | |
##################################################################### | |
# Network settings | |
#******************************************************************** | |
# Optional properties: | |
# cln_conn_tries_amount - how many times a client tries to connect to a server; default is 10 | |
# cln_conn_retry_delay - delay before next client connection try (milliseconds); default is 1000 | |
# game_start_timeout - timeout before all data is loaded and game started (milliseconds); default is 30000 | |
# barrier_wait_timeout - barrier timeout for both game and render threads (milliseconds); default is 5000 | |
[network] cln_conn_tries_amount="10" cln_conn_retry_delay="1000" game_start_timeout="30000" barrier_wait_timeout="5000" | |
##################################################################### | |
# Custom arguments | |
#******************************************************************** | |
# Any custom arguments available in runtime can be specified here. | |
# Format: ARG_NAME="ARG_VAL" | |
[custom] SampleArg1="SampleVal1" SampleArg2="SampleVal2" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment