This is an experiment by @Sgeo to test Firestorm VR Mod 220.127.116.11850 PBR Alpha Test version to check whether the VR Mod approach works – and the good new is that it does.
The above images are all taken using the Firestorm VR Mod 18.104.22.168850 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.
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 22.214.171.124000 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 (126.96.36.199850) 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 188.8.131.52850 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”).
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.
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.
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.
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.
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
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.
Tests of Firestorm VR Mod 184.108.40.206850 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.
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.
Firestorm PBR alpha source code:
Sgeo Firestorm PBR Alpha with SgeoVR Mod code:
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