Example: Cubemap 6 Viewports
- Last UpdatedApr 27, 2026
- 2 minute read
This page contains an example of a RenderSetup XML file using six viewports to render a cubemap.
Code example
<?xml version="1.0" encoding="utf-8" ?>
<renderSetup version="1.0">
<Viewport name="SX_VIEWPORT">
<hwnd index="0"/>
<pos value="0 0.3333"/>
<size value="0.25 0.3334"/>
<outputLayer value="SX_SCENE_LAYER"/>
<layers>
<Layer name="SX_SCENE_LAYER" type="sceneFGI">
<fgiConfig file="./GameData/hdr/fgi_default.xml"/>
<postProcess id="SX_POSTPROCESS" file="./GameData/hdr/post_process_default.xml"/>
<sceneName value="_all_"/>
<cameraName value="ft_player0_camera"/>
</Layer>
</layers>
</Viewport>
<Viewport name="DEFAULT_VIEWPORT">
<hwnd index="0"/>
<pos value="0.25 0.3333"/>
<size value="0.25 0.3334"/>
<outputLayer value="DEFAULT_2D_LAYER"/>
<layers>
<Layer name="DEFAULT_SCENE_LAYER" type="sceneFGI">
<fgiConfig file="./GameData/hdr/fgi_default.xml"/>
<postProcess id="DEFAULT_POSTPROCESS" file="./GameData/hdr/post_process_default.xml"/>
<sceneName value="_all_"/>
<cameraName value="Camera01"/>
</Layer>
<Layer name="DEFAULT_2D_LAYER" type="2dOverlay">
<layer2DName value="DEFAULT_2D_LAYER_MAIN"/>
<input1 value="DEFAULT_SCENE_LAYER"/>
</Layer>
</layers>
</Viewport>
<Viewport name="DX_VIEWPORT">
<hwnd index="0"/>
<pos value="0.5 0.3333"/>
<size value="0.25 0.3334"/>
<outputLayer value="DX_SCENE_LAYER"/>
<layers>
<Layer name="DX_SCENE_LAYER" type="sceneFGI">
<fgiConfig file="./GameData/hdr/fgi_default.xml"/>
<postProcess id="DX_POSTPROCESS" file="./GameData/hdr/post_process_default.xml"/>
<sceneName value="_all_"/>
<cameraName value="ft_player0_camera"/>
</Layer>
</layers>
</Viewport>
<Viewport name="UP_VIEWPORT">
<hwnd index="0"/>
<pos value="0.25 0"/>
<size value="0.25 0.3334"/>
<outputLayer value="UP_SCENE_LAYER"/>
<layers>
<Layer name="UP_SCENE_LAYER" type="sceneFGI">
<fgiConfig file="./GameData/hdr/fgi_default.xml"/>
<postProcess id="UP_POSTPROCESS" file="./GameData/hdr/post_process_default.xml"/>
<sceneName value="_all_"/>
<cameraName value="ft_player0_camera"/>
</Layer>
</layers>
</Viewport>
<Viewport name="DOWN_VIEWPORT">
<hwnd index="0"/>
<pos value="0.25 0.6666"/>
<size value="0.25 0.3334"/>
<outputLayer value="DOWN_SCENE_LAYER"/>
<layers>
<Layer name="DOWN_SCENE_LAYER" type="sceneFGI">
<fgiConfig file="./GameData/hdr/fgi_default.xml"/>
<postProcess id="DOWN_POSTPROCESS" file="./GameData/hdr/post_process_default.xml"/>
<sceneName value="_all_"/>
<cameraName value="ft_player0_camera"/>
</Layer>
</layers>
</Viewport>
<Viewport name="BACK_VIEWPORT">
<hwnd index="0"/>
<pos value="0.75 0.3333"/>
<size value="0.25 0.3334"/>
<outputLayer value="BACK_SCENE_LAYER"/>
<layers>
<Layer name="BACK_SCENE_LAYER" type="sceneFGI">
<fgiConfig file="./GameData/hdr/fgi_default.xml"/>
<postProcess id="BACK_POSTPROCESS" file="./GameData/hdr/post_process_default.xml"/>
<sceneName value="_all_"/>
<cameraName value="ft_player0_camera"/>
</Layer>
</layers>
</Viewport>
</renderSetup>
Image example

cavePoints setup
Notice that in the displayed image, viewports are rotated in the proper direction by setting their cavePoints properties.
The following script shows how to enable cave mode and set cave points on the six viewports.
<Coroutine name="cmd_setCavePoints" execute="true">
<wait condition="[@cmd_setCavePoints.timeFromWait]<0.1" />"[@cmd_setCavePoints.timeFromWait]<0.1" />
<set name="viewport_DX_VIEWPORT.caveEnable" value="True" />
<set name="viewport_DX_VIEWPORT.cavePoints" value="1 -1 1,1 -1 -1,1 1 1" />
<set name="viewport_SX_VIEWPORT.caveEnable" value="True" />
<set name="viewport_SX_VIEWPORT.cavePoints" value="-1 -1 -1,-1 -1 1,-1 1 -1" />
<set name="viewport_BACK_VIEWPORT.caveEnable" value="True" />
<set name="viewport_BACK_VIEWPORT.cavePoints" value="1 -1 -1,-1 -1 -1,1 1 -1" />
<set name="viewport_UP_VIEWPORT.caveEnable" value="True" />
<set name="viewport_UP_VIEWPORT.cavePoints" value="-1 1 1,1 1 1,-1 1 -1" />
<set name="viewport_DOWN_VIEWPORT.cavePoints" value="-1 -1 -1,1 -1 -1,-1 -1 1" />
<set name="viewport_DOWN_VIEWPORT.caveEnable" value="True" />
<set name="viewport_RIGHT_VIEWPORT.caveEnable" value="True" />
<set name="viewport_RIGHT_VIEWPORT.cavePoints" value="-1 -1 1,1 -1 1,-1 1 1" />
</Coroutine>