This example shows how to configure a Layer in ICE to handle the output from a Unity / Unreal / 3rd Party application which is using the associated Igloo Plugin.
Step 1 - Game Engine Plugin configuration
The Game Engine plugin settings should be configured with the following optimal settings
Output a single sender in Equirectangular format. Refer to the appropriate plugin documentation.
Some apps which use a very old version of the plugin may not be able to output in Equirectangular format, in this case you will need to configure a Composition Layer to handle the multiple camera sources
Give the sender an appropriate name
Step 2 - ICE Layer Configuration
Create a Layer which matches the Output method of the Game Engine source, in this example we will assume Spout is being used.
Give the Layer an appropriate name.
Start the application to make the Spout output available to ICE, then select to source from the Spout sender list.
As the output format is Equirectangular, applying the TruePerspective Effect will extract the correct perspective view for your screen.
The output can be verified in the Screen tab.
Step 3 - (Optional) Automatic application launch and quit
From the Layer settings Misc tab, set the Filepath to be path to the executable of the application which creates the Spout sender.
With the file path set, whenever this Layer is added to the workspace, the executable will be opened. When the layer is removed from the workspace the executable will be closed.
The Arguments field can be used for specifying command line arguments for launching the executable with.
Step 4 - Save as a Session
See - Sessions - ICE Documentation - Confluence (atlassian.net)
Step 5 - Configure Igloo Unity/Unreal Toolkit settings
The following settings are meant as a quick start configuration suggestion, you may need to alter some settings depending on your setup.
Unity
Example IglooSettings.xml files can be found at C:\ProgramData\Igloo Vision\IglooCoreEngine\settings\unity
Player settings
<rotationInput>1</rotationInput> <rotationMode>0</rotationMode> <movementInput>0</movementInput>
Display Settings
<DisplaySettings Name="YourApplicationNameHere"> <textureShareMode>1</textureShareMode> <useCubemapToEquirectangular>true</useCubemapToEquirectangular> <equirectangularTexuteRes x="8000" y="4000" /> <horizontalFOV>360</horizontalFOV> <verticalFOV>180</verticalFOV> <useCompositeTexture>false</useCompositeTexture> <useFramepackTopBottom3D>false</useFramepackTopBottom3D> <useWarpBlend>false</useWarpBlend> <HeadSettings> <headPositionOffset x="0" y="1.8" z="0" /> <headRotationOffset x="0" y="0" z="0" /> <leftEyeOffset x="-0.05" y="0" z="0" /> <rightEyeOffset x="0.05" y="0" z="0" /> <headtracking>false</headtracking> <headTrackingInput>0</headTrackingInput> </HeadSettings> <Displays> <DisplayItem Name="IglooUnity1"> <isRendering>true</isRendering> <fov>90</fov> <is3D>false</is3D> <isRenderTextures>true</isRenderTextures> <cubemapFace>0</cubemapFace> <renderTextureSize x="2000" y="2000" /> <textureShareMode>0</textureShareMode> <cameraRotation x="0" y="0" z="0" /> <nearClipPlane>0.01</nearClipPlane> <farClipPlane>1000</farClipPlane> <isFisheye>false</isFisheye> <fisheyeStrength x="0" y="0" /> <isOffAxis>false</isOffAxis> <viewportRotation x="0" y="0" z="0" /> <viewportSize x="0" y="0" /> <viewportPosition x="0" y="0" z="0" /> <targetDisplay>-1</targetDisplay> </DisplayItem> <DisplayItem Name="IglooUnity2"> <isRendering>true</isRendering> <fov>90</fov> <is3D>false</is3D> <isRenderTextures>true</isRenderTextures> <cubemapFace>1</cubemapFace> <renderTextureSize x="2000" y="2000" /> <textureShareMode>0</textureShareMode> <cameraRotation x="0" y="90" z="0" /> <nearClipPlane>0.01</nearClipPlane> <farClipPlane>1000</farClipPlane> <isFisheye>false</isFisheye> <fisheyeStrength x="0" y="0" /> <isOffAxis>false</isOffAxis> <viewportRotation x="0" y="0" z="0" /> <viewportSize x="0" y="0" /> <viewportPosition x="0" y="0" z="0" /> <targetDisplay>-1</targetDisplay> </DisplayItem> <DisplayItem Name="IglooUnity3"> <isRendering>true</isRendering> <fov>90</fov> <is3D>false</is3D> <isRenderTextures>true</isRenderTextures> <cubemapFace>2</cubemapFace> <renderTextureSize x="2000" y="2000" /> <textureShareMode>0</textureShareMode> <cameraRotation x="0" y="180" z="0" /> <nearClipPlane>0.01</nearClipPlane> <farClipPlane>1000</farClipPlane> <isFisheye>false</isFisheye> <fisheyeStrength x="0" y="0" /> <isOffAxis>false</isOffAxis> <viewportRotation x="0" y="0" z="0" /> <viewportSize x="0" y="0" /> <viewportPosition x="0" y="0" z="0" /> <targetDisplay>-1</targetDisplay> </DisplayItem> <DisplayItem Name="IglooUnity4"> <isRendering>true</isRendering> <fov>90</fov> <is3D>false</is3D> <isRenderTextures>true</isRenderTextures> <cubemapFace>3</cubemapFace> <renderTextureSize x="2000" y="2000" /> <textureShareMode>0</textureShareMode> <cameraRotation x="0" y="270" z="0" /> <nearClipPlane>0.01</nearClipPlane> <farClipPlane>1000</farClipPlane> <isFisheye>false</isFisheye> <fisheyeStrength x="0" y="0" /> <isOffAxis>false</isOffAxis> <viewportRotation x="0" y="0" z="0" /> <viewportSize x="0" y="0" /> <viewportPosition x="0" y="0" z="0" /> <targetDisplay>-1</targetDisplay> </DisplayItem> <DisplayItem Name="IglooUnity5"> <isRendering>true</isRendering> <fov>90</fov> <is3D>false</is3D> <isRenderTextures>true</isRenderTextures> <cubemapFace>4</cubemapFace> <renderTextureSize x="2000" y="2000" /> <textureShareMode>0</textureShareMode> <cameraRotation x="-90" y="0" z="0" /> <nearClipPlane>0.01</nearClipPlane> <farClipPlane>1000</farClipPlane> <isFisheye>false</isFisheye> <fisheyeStrength x="0" y="0" /> <isOffAxis>false</isOffAxis> <viewportRotation x="0" y="0" z="0" /> <viewportSize x="0" y="0" /> <viewportPosition x="0" y="0" z="0" /> <targetDisplay>-1</targetDisplay> </DisplayItem> <DisplayItem Name="IglooUnity6"> <isRendering>true</isRendering> <fov>90</fov> <is3D>false</is3D> <isRenderTextures>true</isRenderTextures> <cubemapFace>5</cubemapFace> <renderTextureSize x="2000" y="2000" /> <textureShareMode>0</textureShareMode> <cameraRotation x="90" y="0" z="0" /> <nearClipPlane>0.01</nearClipPlane> <farClipPlane>1000</farClipPlane> <isFisheye>false</isFisheye> <fisheyeStrength x="0" y="0" /> <isOffAxis>false</isOffAxis> <viewportRotation x="0" y="0" z="0" /> <viewportSize x="0" y="0" /> <viewportPosition x="0" y="0" z="0" /> <targetDisplay>-1</targetDisplay> </DisplayItem> </Displays> </DisplaySetting