Firestorm PBR Alpha Tests for VR Mod

This is an experiment by @Sgeo to test Firestorm VR Mod 7.1.2.72850 PBR Alpha Test version to check whether the VR Mod approach works – and the good new is that it does.

Firestorm VR Mod 7.1.2.72850 - OSGrid Oil Rig - Deck
Firestorm VR Mod 7.1.2.72850 - OSGrid Oil Rig -Platform Firestorm VR Mod 7.1.2.72850 - OSGrid Oil Rig - Interior
Firestorm VR Mod 7.1.2.72850 - OSGrid Oil Rig - BOP Firestorm VR Mod 7.1.2.72850 - OSGrid Oil Rig - ROV

The above images are all taken using the Firestorm VR Mod 7.1.2.72850 viewer on the OpenSim OSGrid “Oil Rig” region. This is an immersive educational training region as used by RGU Oil & Gas Centre in Aberdeen to train offshore oil rig workers prior to deployment. More information on the Oil Rig Training Experience on this blog post.

More Detail

The Firestorm viewer currently has an alpha test version in development that incorporates changes for Physically-Based Rendering (PBR) materials support. This has changed the rendering approach used by the viewer.

The current Firestorm VR Mod approach based on SteamVR/OpenVR to allow for VR use via a wide range of VR HMDs was developed by Peter Kappler. It uses a simple mechanism in a modified Firestorm Viewer from version 6.3.3 from November 2019. (An earlier approach was in Firestorm 6.0.1.57000 from August 2019). This basic approach continues to work in Firestorm up to 6.6.8 – the last version that has been prepared by @Humbletim using GitHub Actions (GHA).

@Sgeo on the Firestorm VR Mod Discord Group (Invite Link) took the latest available Firestorm PBR alpha source code from https://github.com/FirestormViewer/phoenix-firestorm-alpha (7.1.2.72850) and added in his own variant of the VR Mod approach which uses the same rendering mechanism. Sgeo’s approach includes code that allow for automatic setting up of the VR headset for IPD, texture Offset, and other parameters which have to be manually set (via the F5 key in VR Mode) for the Peter Kappler approach.

Download, Install and include openvr_api.dll

On 28-Jan-2024 @Sgeo provided a build of this version of Firestorm VR Mod 7.1.2.72850 for early tests and access by the P373R-WORKSHOP Discord group (see File Phoenix-FirestormOS-SgeoVR-7-1-2-72850_Setup.exe downloadable from this Viewer Download Link, Discord Group Invite Link). This version is a Windows 64 bit installer. It installs in a different directory to the normal Firestorm and Firestorm VR Mod versions so can be used alongside those. It shares the settings for normal Firestorm.

After install you need to add the openvr_api.dll library to allow the viewer to connect to SteamVR and the specific VR HMD drivers you use. This version of the viewer does not automatically include that as usual for Firestorm VR Mod. The latest version of openvr_api.dll can be obtained (Win64 version for this test version) from https://github.com/ValveSoftware/openvr/tree/master/bin/.

Then you can launch the viewer and as usual use Ctrl+Tab to load Steam VR and the VR HMD’s drivers. After that use Tab to go into and return from VR mode. Note I experience a crash of the viewer a few times when doing Ctrl+Tab. But it worked most times. If it crashes, it may be better to leave SteamVR and the VR HMD drivers running and restart Firestorm VR mode and that seems to work reliably – so it may be some sort of timing issue in the launch.

@Sgeo’s version of Firestorm VR Mod sets up the VR HMD IPD, texture offset and other parameters automatically, so with luck you should see a crisp VR image with 3D depth. As usual you can monitor on the 2D screen what is showing to each eye of the VR HMD using the SteamVR “Display VR View” capability (in its menu you can show “Both Eyes”).

Sgeo Firestorm VR Mod PBR Alpha - SteamVR VR View

UI Elements – Out of View in VR Mode

Note that currently it is difficult to see the Viewer UI elements like menus, buttons and edge mounted HUDs as they are out of the VR field of View (FOV). Normal Firestorm VR Mod using Peter Kappler’s approach allows for a shift in the area viewed as the mouse is moved to the edges or corners of the view to bring those UI elements into the FOV. The image below shows the FOV in the VR view for an Oculus Rift DK2 and you can see it is quite limited compared to the whole viewer screen. In thus picture, th UI elements and tools were moved to just be out of view, even went looking to the extreme sides, top and bottom.

Red marks the VR FOV for Oculus Rift DK2

2D View Squashed and a Temporary Fix

Also, in this current test version, on return to 2D mode (tab) the 2D image can be left squashed and not centred.

2D screen squashed

A simple fix for that is to resize the 2D screen to have the same ratio as ONE EYE of the SteamVR VR View monitor screen, e.g. try a ratio of 8×9 (width=8 units and height=9 units, note its half of a 16×9 screen ratio). The earlier VR Mod approach automatically resized the 2D screen to get a similar effect. This also seems to correct the distortion of the name labels over avatars too.

2D screen ratio of 5x6 to make it unsquashed

Colour Changes

I do see a darkening of the colours across the whole image when switching from 2D mode (left image below) to VR Mode (right image below). The 2D mode looks identical colour to the non-VR version of Firestorm PBR Alpha. This image was taken on the Firestorm Beta Grid “Rumpus Room 4” region which has a range of PBR test objects.

2D Mode Colour VR Mode Colour
VR Mode Colour

OpenSim OSGrid VRland Test Area

On OpenSim OSGrid there is a VR test area that can help establish the VR HMD Field of View (FOV, shown in blue in VR View below) etc. at hop://hg.osgrid.org:80/RuthAndRoth/16/16/1000

OSGrid VRLand Test Area
OSGrid VRLand Test Area - VR FOV in Blue- Oculus Rift DK2

PBR Materials Display in OpenSim

And the point of all this is to be able to display PBR materials in Second Life and OpenSim… here is a sample image… using the latest OpenSim 0.9.3.0 Dev Master server code already available on OSGrid and which includes support for PBR materials.

OpenSim PBR Materials in VR View

Oculus Rift CV1

Tests of Firestorm VR Mod 7.1.2.72850 PBR Alpha Test on Oculus Rift CV1 which on Firestorm VR Mod 6.6.8 has a texture offset of +30 and a Texture Zoom of 0. All looks fine. FOV for Oculus Rift CV1 is wider than DK2 and if I really squint up down, left and right I can JUST see at the extreme edges the inner most parts of the menu bars and edge buttons. Not enough to click them, but they are JUST there… FOV indicated here on the OSGrid VRLand test area.

SgeoVR 7.1.2.72850 on Oculus Rift CV1 - OpenSim - FOV in blue
SgeoVR 7.1.2.72850 on Oculus Rift CV1 - Second Life SgeoVR 7.1.2.72850 on Oculus Rift CV1 - Second Life Beta PBR

Frames Per Second (FPS)

It is important to try to maintain a good rate of frames per second for comfortable VR. The graphics quality settings and draw distance should be adjusted to make sure the 2D view FPS is high enough so that when you switch to VR Mode and likely go to less than 50% of the 2D FPS it still works smoothly.

Source Code

Firestorm PBR alpha source code:
https://github.com/FirestormViewer/phoenix-firestorm-alpha

Sgeo Firestorm PBR Alpha with SgeoVR Mod code:
https://github.com/Sgeo/phoenix-firestorm-alpha/tree/VR_Sgeo_2024

Latest version of openvr_api.dll can be obtained (Win64 version for this test version) from https://github.com/ValveSoftware/openvr/tree/master/bin/.

The LICENSE file from there should be included (renamed LICENSE-OpenVR) from https://github.com/ValveSoftware/openvr/blob/master/LICENSE

This entry was posted in OpenSim, Second Life, Virtual World, VR and tagged , , , . Bookmark the permalink.

1 Response to Firestorm PBR Alpha Tests for VR Mod

  1. bat says:

    @Sgeo on Discord provided a tool to help in calculating the settings for the standard Peter Kappler code derived Firestorm VR Mod.. at least to give you a starting position to adjust to your tasteā€¦

    https://sgeo.github.io/firestorm-vr-calculator/

    Source of the calculator is at https://github.com/Sgeo/firestorm-vr-calculator

Comments are closed.