Introduction
Igloo Settings Tool Setup is designed to be a starting point in the modelling pipeline of used to generate configuration files for an Igloo installation, also known as a projection scene.
A projection scene specifies the geometry and properties of a set of screens in a given space.
A screen is defined by one following geometries - Plane, Disk, and Cylinder.
Info |
---|
Note than screen dimensions should reflect the the area covered by the projection system. |
When starting the application, one is presented with an initial view illustrated in Figure 1. The layout is comprised The application starts up with the initial view shown below.
...
The user interface consists of four tabs - Screen, Canvas, Projectors , and Export, which are intended to be used sequentially. These represent the stages in the Igloo Settings Tool Setup modelling pipeline. In most of the cases, these are designed to be used sequentially. For example, the Canvas tab needs the geometry of the projection scene which is specified in the Screen tab. Likewise, The workflow begins by defining the geometry of the Screen. The Canvas tab uses the screen dimensions to determine the pixel resolution of the space. Likewise, the Projectors tab uses the canvas of the projection scene - defined in Canvas - to specify the projector regions and other attributes. Finally, the configuration files are generated in the Export tab.
Screen
The Screen tab specifies the geometry of the projection scene. The following geometries are supported:
...
.
...
Cylinder Screen represents a cylinder with a given radius, and height range (height_lo, height_hi) and angle range (theta_lo, theta_hi).
Info |
---|
In most use cases, one does not specify the individual screens. A combo is a more representative way of specifying a projection scene. For example, most rooms can be seen as a box with a given width, height and depth. A cylinder room is also a cylinder wall and a floor disk. |
...
The geometry is specified as a Screen Type with the following types supported: Immersive Room, Cylinder and Dome.
Info |
---|
Note that the screen dimensions should reflect the area covered by the projection screen only. |
The Screen starts with a text box entry specifying the Eye position. It is followed by a set of radio buttons dropdown menu used to specify the different modes of operation - Create Box, Create Cylinder, and ManualScreen Type. The Edit Show Screens toggle checkbox shows the dimensions of individual screen viewers.
Create Box
...
screens.
Info |
---|
Note that the test pattern displayed to represent the screen type consists of 6 faces of a cube mapped on to the geometry of the screen. Each face is labelled with front, back, left, right, top or bottom and contains an igloo logo together with a grid pattern and solid circles in each corner. |
Immersive Room
...
Create a box with specified Width (distance between Left /screen and Right screen), Depth (distance between Front /screen and Back screen),and Height (distance between Top /screen and Bottom screen).
The Screens listbox enables the corresponding views (Left-Front-Right-Back-Top-Bottom radio buttons enable the corresponding viewers ) in the scene. The coordinates of these viewers views are automatically updated from the dimensions of the box.
...
Cylinder
...
Create a cylinder scene with a given Radius (radius of the circle at the base of the cylinder), Height (distance from the base to the top of the cylinder), Angle Range , (number of degrees in the circle e.g. 360 for complete closed cylinder) and Angle Offset (number of degrees to rotate the test pattern about the vertical axis).
The Wall-Floor radio buttons items in the Screens listbox enable the corresponding wall and disk viewers (floor) views in the scene. Again, the The coordinates of the each screen are automatically updated from the cylinder combo parameters.
...
Dome
...
Create projection scenes with arbitrary geometries. Add Plane, Add Disk, and Add Cylinder add a new screen with the corresponding geometry to the scene.
...
Create a dome scene with a given Radius (radius of the circle at the base of the dome), Angle Range (number of degrees in the circle e.g. 360 for complete closed dome)and Angle Offset (number of degrees to rotate the test pattern about the vertical axis).
The dome is modelled as a hemisphere and can be adjusted using the Lower Pitch and Upper Pitch parameters. Typically, an Igloo dome will use a front-facing projector setup with the projectors located at the top of the dome. In this case, the Upper Pitch value of 90 should be reduced so that the non-projected area where the projectors are located is defined. The Lower Pitch value of 0, represents the equator of the sphere. Adjusting this parameter allows for domes which have a bottom edge above or below the line of the sphere’s equator.
The coordinates of each screen are automatically updated from the dome parameters.
Canvas
The Canvas tab displays a planar layout of the screens generated in the projection scene. Figures 2 and 3 The screenshots below illustrate examples of canvas layout for a box an immersive room and a cylinder projection scene respectively.
...
...
The canvas region is a composition of all screens in the projection scene with empty space in between. The canvas border is a an axis aligned bounding box whose purpose is to give a visual cue of the canvas region .
Canvas Screen Size
[Name] [Screen Size], where name
Wall Screen Size
Floor Screen Size
Left Screen Size
Front Screen Size
Right Screen Size
Back Screen Size
Top Screen Size
Bottom Screen Size
Canvas
...
Projectors
...
Export
The output of Igloo Settings Tool is a camera settings configuration file, which can be used within the Igloo Software Suite. The following snippet contains an example of a camera settings file.
The generated configuration file can be further edited and used to model and validate the geometry of the projection scene.
It is composed by a top section section specifying the dimensions of the camera texture and the camera eye position. The viewers section contains a list of cameras in the scene.
<version>1</version>
<dimensions>
<width>6144.000000000</width>
<height>1024.000000000</height>
</dimensions>
<eye>
<X>0.000000000</X>
<Y>0.000000000</Y>
<Z>0.000000000</Z>
</eye>
<viewers>
<camera>
<type>Cylinder</type>
<roi>
<W>0.500000000</W>
<H>1.000000000</H>
<X>0.500000000</X>
<Y>0.000000000</Y>
</roi>
<radius>2.500000000</radius>
<height_lo>-1.100000024</height_lo>
<height_hi>1.100000024</height_hi>
<theta_lo>-180.000000000</theta_lo>
<theta_hi>180.000000000</theta_hi>
</camera>
<camera>
<type>Disk</type>
<roi>
<W>0.500000000</W>
<H>1.000000000</H>
<X>0.000000000</X>
<Y>0.000000000</Y>
</roi>
<pa>
<X>-2.500000000</X>
<Y>-2.500000000</Y>
<Z>-1.100000024</Z>
</pa>
<pb>
<X>2.500000000</X>
<Y>-2.500000000</Y>
<Z>-1.100000024</Z>
</pb>
<pc>
<X>-2.500000000</X>
<Y>2.500000000</Y>
<Z>-1.100000024</Z>
</pc>
<radius_lo>0.000000000</radius_lo>
<radius_hi>2.500000000</radius_hi>
<theta_lo>-180.000000000</theta_lo>
<theta_hi>180.000000000</theta_hi>
</camera>
</viewers>
and is drawn as thick yellow line. Code Block
Canvas Topology
The topology of the canvas can be adjusted to suit the installation. For a projection scene with no floor projection, the topology would typically be a horizontal row of screens. However, if the horizontal resolution is greater than 16k pixels, then moving some of the screens to form a grid instead of a row will allow the canvas to fit within the 16k x 16k limit.
For a projection scene with floor projection, it is common to have a grid arrangement, with the floor screens, positioned below the screens used for the walls. The advantage of this approach is that the width of the walls corresponds to the width of the canvas, and this has benefits when moving and scaling content. Also content can be moved from the walls to the floor with an intuitive ‘downward’ action. The illustration below shows how the floor screens can be repositioned using the left mouse button to drag them to a new location.
...
Canvas Resolution
The Canvas Resolution (px) valuesgive the overall canvas resolution in pixels specified in width and height respectively. The canvas resolution is calculated using the resolution of one of the width and height parameters together with the aspect ratio of the screen. Enter the known value of one of the parameters, based on the immersive space design drawings. The other dimension will then be automatically calculated and updated.
The height and width values of each of the screens which make up the projection scene are also calculated automatically. These are displayed below the Canvas Resolution as width, height pairs and labelled Left Resolution, Front Resolution, Right Resolution etc.
Projectors
The Projectors tab presents settings which control the appearance of the test image and defines how many projectors are used in the immersive space.
...
Grid Spaces, Grid Thicknessand Font scale are parameters affecting the appearance of the test image. A test image preview is displayed to help visualise the effects of changes.
For Cylinder projection scenes with floor projection, Guide Lines, with a Guide Thickness parameter, can also be added to the test image to help with the warping alignment.
Each Screen can also be edited to modify the number of projectors. To add a second projector to the left screen, for instance, we’d change the number of columns to 2:
...
Export
The Export tab enables the exporting of the generated configuration files.
An export folder can be selected which acts as the destination for the files when the Export button is pressed.
...
Upon exporting, a collection of files will be generated, each organised within a folder structure that mirrors the corresponding target application. The Igloo Warper files include AppSettings.xml, masks.png, and testImage1.png, while the Igloo Core Engine files encompass screenModel.mtl, screenModel.obj, and a suite of XML files, including CanvasSettings.xml and TruePerspective.xml.
Igloo Warper files
IglooWarper/AppSettings.xml
IglooWarper/masks/masks.png
IglooWarper/test images/ testImage1.png
Igloo Core Engine files
IglooCoreEngine/models/screenModel.mtl
IglooCoreEngine/models/screenModel.obj
IglooCoreEngine/models/testImage.png
IglooCoreEngine/settings/CanvasSettings.xml
IglooCoreEngine/settings/TruePerspective.xml
IglooCoreEngine/settings/unity/displaySettingsOverride/IglooSettings.xml
IglooCoreEngine/settings/unity/IglooSettings-Displays.xml
IglooCoreEngine/settings/warping/canvasMask.png
Tip |
---|
You can drag the screen model and true perspective files directly onto the Igloo Core Engine console window to replace and load them |
AppSettings.xml
To integrate AppSettings.xml into the Igloo Warper settings file located at C:\ProgramData\Igloo Vision\IglooWarper\AppSettings.xml, it is advisable to copy the relevant portions from the export folder to the Warper's file.
Info |
---|
TIP - copy the AppSettings.xml file from C:\ProgramData\Igloo Vision\IglooWarper to the Igloo Setup export folder before clicking the Export button. This will modify the file with the relevant settings and it can then be copied back to its original location. |
masks.png
The masks.png file only pertains to Cylinder projection scenes with floor projection, where a mask is applied to the Canvas view
ScreenModel.mtl, ScreenModel.obj
The screenModel.mtl and screenModel.obj files should be copied to the Igloo Core Engine models folder, located at C:\ProgramData\Igloo Vision\IglooCoreEngine\models. They are utilized in Igloo Core Engine as a preview tool to visualize the Igloo Core Engine canvas in the projection scene, as evidenced in the Screen tab of the Igloo Core Engine Desktop UI.
...
TestImage1.png
The testImage1.png file can be shared with content creators and used during the initial setup of the projection scene. It is recommended to copy it to the Warper test images folder located at C:\ProgramData\Igloo Vision\IglooWarper\test images, where it can be displayed on the Warper canvas to ensure the warping and blending settings are correct.
TruePerspective.xml
Finally, the TruePerspective.xml file should be copied to the Igloo Core Engine settings folder at C:\ProgramData\Igloo Vision\IglooCoreEngine\settings. This file is instrumental in generating perspectively accurate views for each screen in the projection scene when displaying 360-degree content.
CanvasSettings.xml
The CanvasSettings.xml file should also be copied to the Igloo Core Engine settings folder, where it is used to establish the default canvas resolution when creating new workspaces and when calculating which regions of the canvas to apply rotation to see. Further details regarding the Canvas Configuration can be found in the Igloo Core Engine Documentation. Canvas Configuration - Igloo Core Engine Documentation