Skip to main content
Skip table of contents

Desktop UI - Setting up a Game Engine Layer

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.

Tutorial Video

Setting up a Game Engine Layer

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 the 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

These settings can be used to automatically launch the Game Engine application when the session is loaded. The application will also be closed when the session is removed.

From the Layer settings Misc tab

  • File Path

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.

  • Arguments

This property can be used for passing command line arguments when launching the executable

  • On add batch | On remove batch

Batch scripts can be run when a layer is added and removed. This is useful for when an application needs to be opened and/or shutdown in a specific way.

An “on remove” script should not launch or let anything launched by “on add” keep running. This could prevent the ICE app from closing properly.

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

CODE
<rotationInput>1</rotationInput>
<rotationMode>0</rotationMode>
<movementInput>0</movementInput>

Display Settings

XML
  <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
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.