Private & Confidential
Advance: Adjustment of JSON files
Their are two json files that control how the Igloo Camera Toolkit creates and operates the visible output:
The Camera Settings File
The Display Settings File
Both of these are stored globally in the Igloo ICE settings files, or if they cannot be found there. The application will make it’s own files and store them in Streaming Assets.
Reasons to modify these files
You are an Igloo installer and you’re setting up ICE for the first time.
An adjustment has been made to the installation, and the files need to be adjusted to suit.
You are making an NDI or 3D version of an application that differs from the Global version stored on the ICE machine.
Locating the Global Files
By default the global files are located at the path below.
C:/ProgramData/Igloo Vision/IglooCoreEngine/settings/Unity/
Breaking Down the Camera Settings file
Below is a table of each adjustable setting in the IglooCameraSettings.json file. This is the default file that would exist on most igloo ICE installations.
Option | Input Type (Default value) | Effect |
---|---|---|
isEnabled | boolean ( true ) | Enables the Igloo Camera system. |
isStereo | boolean ( false ) | Enables 3D output of the Igloo Camera system. |
isSpoutOutput | boolean ( true ) | Creates a Spout sender, which sends the full camera output texture to another application on the same machine. |
isNDIOutput | boolean ( false ) | Creates an NDI sender, which sends the full camera output texture to another application on any machine on the same LAN. |
useWarpAndBlend | boolean ( false ) | Utilises the Igloo ICE warping and blending files in order to bypass the ICE software. Allows unity to create it’s own windows and display the output without ICE. Useful for large projects or complex systems to gain maximum performance. |
outputName | string (“IglooUnity”) | When using Spout or NDI, this value will be the sharing name of the texture stream. |
nearClipPlane | float ( 0.1 ) | Adjusts the near clip for every generated igloo camera in the camera rig. |
farClipPlane | float ( 1000.0 ) | Adjusts the far clip for every generated igloo camera in the camera rig. |
stereoEyeDistance | float ( 0.5 ) | Adjusts the inter pupilary distance between each camera when outputting 3D stereo. |
cameraRotationOffset | vector3 ( x:0.0 , y:0.0 , z:0.0 ) | Rotates the camera rig within the 3D space. Useful for when Unity ‘faces forwards’ on the wrong wall in an Igloo Space. |
cameraType | integer ( 0 ) | Enum: 0 = Cubemap System | 1 = OffAxis System. |
CubemapData | Struct of Cubemap Data | explained below. |
>useTruePerspective | boolean ( false ) | If true, an additional shader pass using the Igloo TruePerspective data will be carried out before outputting the texture. This can be a performance advantage. in some cases, over ICE doing it. |
>cubemapFaceResolution | integer ( 2000 ) | When generating a cubemap, each face of the cubemap will be rendered as a square with the resolution of this value on x and y. |
>faceList | Array of Faces to generate | The faces in this array do not have to be in order. As they will be generated in the following order regardless: |
>> face | string (“FaceName”) | e.g: “face”:“Back”, “enabled”: true.
|
Below is an example IglooCameraSettings.json file
Breaking Down the Display Settings file
Below is a table containing an example of what a DisplaySettings.json file could look like. This is not a default example, as in most cases this would be left blank.
Option | Input Type ( Default Value ) | Effect |
---|---|---|
Displays | array of displays | options explained below |
>targetDisplay | int ( 1 ) | Each display corresponds to a screen plugged into the PC. Starting at 0 with the main desktop. |
>SourceX | float ( 0.0 ) | Start X position of output canvas (measured from top right of window) |
>SourceY | float ( 0.0 ) | Start X position of output canvas (measured from top right of window) |
>SourceWidth | float ( 0.5 ) | How much width of the output canvas to display on this target display |
>SourceHeight | float ( 1.0 ) | How much height of the output cavnas to display on this target display |
In the above example, which is part of the example code below, Half of the output canvas would be displayed on Screen 1, with the other half of the canvas being displayed on Screen 2.
(c) Igloo Vision 2020