Document toolboxDocument toolbox

Private & Confidential

v1.2.21 Settings File

The Unity script (IglooManager.cs) attached to the IglooManager prefab loads an XML settings file, which defines settings for all aspects of the Igloo system: Display, System, Player, and Network configurations.

The easiest way to create a suitable file is to edit one of the existing examples, found in Resources/IglooResources/Settings

Here is a description of the file contents:

System Settings

 

<SystemSettings vSyncMode="1" targetFPS="60" />

System settings are optional

0 - ignores your monitor refresh and outputs the frames as fast as possible.

1 - will output one frame update for every screen update.

2 - will output one frame update every second screen update

  • targetFPS: takes an int value to set the target framerate of the application

Player Settings

 

<PlayerSettings Name="player"> <usePlayer>true</usePlayer> <headtracking>false</headtracking> <rotationInput>0</rotationInput> <rotationMode>0</rotationMode> <movementInput>0</movementInput> <movementMode>0</movementMode> <runSpeed>10</runSpeed> <walkSpeed>5</walkSpeed> <smoothTime>10</smoothTime> <crosshairMode>0</crosshairMode> </PlayerSettings>

 

  • Name: string value to specify name of the player

  • usePlayer: takes an bool value to set player system enabled state

  • headTracking: not yet implemented

  • rotationInput: takes an int value to set the player rotation input method:

0 - Standard: player rotation is controlled using the default Unity input settings

1 - Warper: player rotation is controlled via OSC network message from IglooWarper application

2 - GyroOSC: OSC Messages relayed from Igloo Warper, from GyroOSC iPhone/Android application

3 - VR Controller: OSC Messages relayed from Igloo Warper using Igloo OpenVR

4 - Optitrack: Optitrack client sends messages to Unity via Optitrack Plugin

5 - VRPN: OSC Messages received from the Unity VRPN Server

 

  • rotationMode : takes an int value to set the rotation mode of the displays assigned to the player:

0 - Igloo 360: display rotation is static and does not follow the player's rotation, optimal settings for a standard 360-degree Igloo structure

1 - Igloo Non-360: display follows the rotation of the player in the y-axis but is static in the x-axis.

2 - Game: display follows the rotation of the player in both x and y-axis.

 

  • movementInput: takes an int value to set the player rotation input method:

0 - Standard: player movement is controlled using the default Unity input settings

1 - GyroOSC: player movement is controlled via OSC networks messaging from GyrOSC app http://www.bitshapesoftware.com/instruments/gyrosc/

 

  • movementMode: takes an int value to set the player rotation input method:

0 - standard: player movement is controlled using the default Unity input settings

1- gyroOSC: player movement is controlled via OSC networks messaging from GyrOSC app http://www.bitshapesoftware.com/instruments/gyrosc/

 

  • runSpeed: takes a float value to set the player speed while running

  • walkSpeed: takes a float value to set the player speed while walking

  • smoothTime: takes a float value to set the rotation smoothing amount. 1 is much smoothing, 10 - is no smoothing

  • crosshairMode: takes an int value to set the player rotation input method:

0 - show: crosshair visible

1 - show on move: crosshair visible when player is moving

2 - hide: crosshair not visible

Network Settings

 

<NetworkSettings> <inPort>9007</inPort> <outPort>9001</outPort> <outIP>127.0.0.1</outIP> </NetworkSettings>
  • inPort: takes an int value to set the input port for network messages

  • outPort: takes an int value to set the output port for network messages

  • outIP: takes a string value to set the output IP address for network messages

Display Settings

The Display Settings can be used to define any number of Displays , which positioned and oriented to support any Igloo structure. The outputs of these displays can be shared separately via the textureShareMode options, alternatively, they can be processed into a single output using either useCubemapToEquirectangular or useCompositeTexture

 

  • Name: sharing name if textureShareMode is enabled

  • textureShareMode: when either useCubemapToEquirectangular or useCompositeTexture are enabled, multiple Display textures are composited into a single texture, the method for sharing the resulting texture is specified using an int value:

0 - do not share

1 - share texture via Spout

2 - share texture via NDI

  • useCubemapToEquirectangular: enables Cubemap to Equirectangular system, assumes Displays have been configured appropriately with Cubemap faces assigned.

  • equirectangularTexuteRes: output resolution of Cubemap to Equirectangular conversion, supports any aspect ratio

  • horizontalFOV: Range of angles covered by the render on the horizontal axis. Use 360° for a full render, 180° for a half-sphere, and so on.

  • verticalFOV: Range of angles covered by the render on the horizontal axis. Use 360° for a full render, 180° for a half-sphere, and so on.

  • useCompositeTexture: when enabled a single render texture will be created, it’s resolution will be the combined resolution of cameras defined in Displays. This texture will be assigned as the target texture for every camera with appropriate viewport settings.

Note - the setting is ignored if useCubemapToEquirectangular is enabled

  • useFramepackTopBottom3D: when either useCubemapToEquirectangular or useCompositeTexture are enabled and the 3D is being used, the resulting textures for the left and right eyes can be combined into a single texture, left on top, right on the bottom.

  • HeadSettings: position and rotation of the Head game object, part of the Igloo Prefab, cameras are parented to this.

DisplayItem

 

 

  • Name: sharing name if textureShareMode is enabled

  • isRendering: camera component enabled state

  • fov: camera vertical field of view

  • is3D: if enabled a 3D camera pair is created for the Display

  • isRenderTextures: camera is rendered to a target texture, must be enabled to use texture sharing

  • cubemapFace: should be set if using useCubemapToEquirectangular, specifies which face of the Cubemap the camera is. 0 - left, 1 - front, 2 - right, 3 - back, 4 - down, 5 - up

  • renderTextureSize: resolution of the camera target texture. if using useCubemapToEquirectangular resolution x and y must be equal.

  • textureShareMode: when either useCubemapToEquirectangular or useCompositeTexture are enabled, multiple Display textures are composited into a single texture, the method for sharing the resulting texture is specified using an int value:

0 - do not share

1 - share texture via Spout

2 - share texture via NDI

  • cameraRotation: rotation of the camera

  • nearClipPlane: camera near clipping plane distance

  • farClipPlane: camera near clipping plane distance

  • isFisheye: when enabled, a fisheye shader is applied to the camera.

Note - should be disabled when using useCubemapToEquirectangular

  • fisheyeStrength: amount of fisheye distortion to apply to each axis

  • isOffAxis: when enabled, a custom off-axis projection matrix can be used by configuring the following viewport settings.

Note - when offAxis is used the cameraRotation setting is ignored as the custom viewport dictates what the camera will render.

  • viewportRotation: the rotation of the viewport relative to the Igloo game object

  • viewportSize: the size of the viewport, units are in meters

  • viewportPosition: the position of the viewport relative to the Igloo game object, units are in meters

 

(c) Igloo Vision 2020