Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Scalable Config Explained

Header Info

[info] version=”23”

This is the config file header, it specifies the version of Unreal that it supports. It’s best to leave this at default “23” otherwise it causes issues.

Cluster Nodes

[cluster_node] id="node_main" addr="10.1.5.110" window="wnd_all" master="true"

A cluster node is a physical machine, capable of running the Unreal project. Each cluster will need a unique ID (you can make this up), a local IP address, and then the window it should display.

Additionally you can also specify:
- which node is the master (there can only be one)
- which node has the sound output (master by default)
- The various ports used for synchronization between the machines (ports 41001 → 41003 are used by default)

Windows

[window] id=wnd_all fullscreen=false WinX=0 WinY=0 ResX=1920 ResY=1080 viewports="vp_1"

This defines the application window for the game. This must cover the entire projection space you are going to use. If, for instance, you have 3 1080p projectors connected to a single machine, the ResX value should be 3x1920 (5760) to span all 3 outputs.

If the machine has a console monitor (a screen where no projection will take place), ensure that it is the first in the screen ordering, and then use the WinX value to adjust the start position of the game canvas.

Viewport, specifies which viewport (explained below) should be rendered to this window. If multiple viewports are required a comma can be used to separate the viewport IDs e.g. “vp_1, vp_2”

The ID should be both Unique, and match the ‘window’ field on the cluster node intended to display this.

Additionally, you can also specify ‘Fullscreen’ which is useful if you have a single display output (or a mozaic/eyefinity output) which will increase game rendering capabilities.

Viewport

[viewport] id=vp_1 x=0 y=0 width=3840 height=1080 projection=proj_easyblend_1

The viewport is an area of the game window where a frame is being rendered. Usually it’s the same size as the entire window, however multiple viewports is supported for multi-window setups like LED walls.

It’s X and Y values donate the its position on the Window, it is not related to the position on the desktop. So if you move the window over 1 1080p screen to allow for a console screen, you do not need to add 1920 to the X value of the viewport.

The projection value, explained below, is which projection policy will be used.

Projection

[projection] id=proj_easyblend_1 type="easyblend" file="ScalableDataOrthographic.pol" origin=easyblend_origin_1 scale=0.1

This is where the scalable setup differs from a standard nDisplay system. Instead of a ‘simple’ projection system, which specifies the cameras created by unreal, we use Scalable & Unreal’s easyblend system. This tells unreal how to create cameras based on the .pol data created by Scalable during setup.

Like the other values, it requires a unique ID, but additionally you have a file field, an origin, and a scale value.

The field value should be the location of your ScalabaleData.pol file relative to the location of this file. It’s also possible to put a complete file address, but this may cause issues as it will likely be stored on a shared drive.

Camera

[camera] id=camera_static loc="X=0,Y=0,Z=0"

This is the camera used by the master node to create the player, it has many optional properties that relate to 3D, tracking, and hierarchy.

parent - ID of the parent component, default is VR root
tracker_id - the ID of the tracking device, default there is no tracking.
tracker_ch - the ID of the tracking device’s channel
eye_swap - swap eyes if in stereo mode; default is false.
eye_dist - distance in meters between the eyes, default is 0.064.
force_offset - force’s a mono camera to behave like a stereo camera, eye_offset works for this behavior too.

Scene Nodes

[scene_node] id=cave_origin  loc="X=0,Y=0,Z=0"   rot="P=0,Y=0,R=0"
[scene_node] id=easyblend_origin_1 loc="X=0,Y=0,Z=0" rot="P=0,Y=0,R=0"

These are the objects created in the game world, that make the framework for the player. The first object should always be labeled ‘cave_origin’ as this matches the object placed within the Unreal Build. Everything will parent to this object by default. There is no need to specify a parent unless you require a different structure.

With simple camera systems, a projector will be paired to a scene object, which would require you to position, or offset the scene object to place the projector correctly. With scalable displays this is not the case, you only need to create as many scene objects for your projectors, the rest is handled by scalable.

Other settings

The rest of the settings are explained in more detail within the example files. 99% of the time the defaults are perfect.

Creating a cluster

[Multiple machine setup - what needs to be included on each machine]

...