Update 23-Sep-2019: Peter Kappler has provided an updated version of Firestorm VR compiled for Second Life and OpenSim which should fix the “black screen” issue mentioned below for at least some HMDs. More information, download links and tips are provided for Firestorm VR 6.2.4 at http://blog.inf.ed.ac.uk/atate/firestorm-vr-6-2-4/
The notes below relate to an earlier Firestorm VR version 6.0.1…
Peter Kappler <firstname.lastname@example.org> [YouTube Channel] (PWNED Magic in Second Life) has created a VR version of the Firestorm Viewer using OpenVR/SteamVR that should be compatible with Vive, Oculus Rift, and Windows Mixed Reality headsets (HMDs).
Wagner James Au blogged on this in January and February 2019, and David Rowe, creator of the CtrlAltStudio VR viewer, pointed me at this development just in time since CtrlAltStudio now has a messy visual glitch on exit to the operating system [Blog Post on CtrlAltStudio VR Viewer].
YouTube Video: Second Life Firestorm VR V0.3 test, 27 Feb 2019:
Here is the ready to run installer and source code for version 0.3 27 Feb 2019 Build 57000** (based on Firestorm 188.8.131.52538):
Source Code: http://gsgrid.net/FirestormVR_Source_V_0_3.rar [only needed to build the viewer from source]
** The “57000” serial number that is reported is not meaningful.
Peter chose that as beyond the released Firestorm version at the time to avoid update messages.
- Install the special VR MOD version of the Firestorm viewer.
- Put the openvr_api.dll contained in the compiled version .rar/.zip into the top level of the freshly installed Firestorm folder with all the other dlls.
- Start SteamVR. [Install SteamVR if you don’t already have it available.]
- Start Firestorm VR.
Once you are logged in:
- Go to Preferences -> Move & View and set the Field of View to 1.80 (default 1.04)
- Go to Preferences -> Graphics-> Steam VR Tab and tick to enable Steam VR. (a viewer restart may be needed, so do that to be sure)
- Preferences -> Graphics -> Steam VR -> Texture Shift: Setting appropriate to your HMD. For example it is set to 0 (the default) for Oculus Rift DK2, and set to 200 for Oculus Rift CV1. If you have double vision in VR mode in your HMD, move this setting until the image is in sync.
- Preferences -> Graphics -> Camera distance from center: Set to your inter-pupil distance (IPD) to get a good 3D image. If this setting is not accurate the 3D view can look too flat or layered. Note that a setting of 0 means the image will be 2D.
A number of users have suggested starting settings for various virtual reality headsets…
|Headset Type||Texture Shift||Camera Distance from Center||Info. From|
|Oculus Rift CV1||+200||IPD (e.g. 64.0mm)||Ai Austin|
|Oculus Rift DK2||0||IPD (e.g. 64.0mm)||Ai Austin|
|Oculus Rift DK1||Not||Available||Ai Austin|
PRESS TAB key to enable and disable VR output.
The Camera Controls floater has two extra buttons << and >> to let you turn the angle at which your camera points.
If you move the mouse to one of the four corners of the screen the HMD view jumps to show that corner in VR mode. This enables menus and HUD attachments to be more easily reached. Return the mouse to the centre of the screen to return to normal HMD directional view.
F4 key – can be used to disable (and reenable) the movement of the VR mode view direction with head movement. Pressing F4 locks the VR mode camera onto the avatar head so it always shows directly in front of the gaze direction (which is a bit of an odd thing to work out what is happening – especially if you have used mouse wheel zoom in or out). Pressing it again unlocks the view so that it rotates around the camera position itself.
F5 key – can be used to zoom out the VR view through stages further away, then it toggles views centred on each corner before returning to the default VR view. [Note: F5 may not work as described in some headsets?]
The Firestorm VR Viewer will not work well if the Second Life/OpenSim region you visit cannot normally be displayed with a decent frame rate. The higher the better. At low frame rates bad flickering will occur in VR mode. My suggestion is to look at the framerate (in Firestorm it is displayed in the upper right hand corner of the viewer) and to adjust the graphics settings (especially draw distance and quality sliders) until you have around 50fps (30fps min.) and then try VR.
On my Oculus Rift setup SteamVR usually was launched whenever the Firestorm VR viewer was started, and that automatically started the underlying Oculus software. But if the SteamVR or Oculus Home screens shows in the HMD or the HMD is blank rather than showing the Second Life/OpenSim virtual world display, start SteamVR first, check Oculus Home is launches, and then run the Firestorm VR viewer.
Tips from David Rowe for using the CtrlAltStudio Viewer may be relevant:
- To improve your frame rate, reduce your draw distance and/or tweak other display settings such as advanced lighting model, shadows, FOV, pixel density, etc.
- Make sure you don’t have Preferences > Graphics > Rendering > Limit Framerate enabled.
- You can use keyboard shortcuts to show and hide dialog boxes such as the Conversations window (Ctrl-T), Inventory (Ctrl-I), e.g., if you want to select a landmark to teleport to, Ctrl-Shift-M to display the minimap, etc. Keyboard shortcuts are shown beside menu items.
- To display avatar toasts in the Rift — Preferences > Chat > General > Show chat in bubbles above avatars.
- With floating text you may want to adjust the distance the floating text fades at so that distant text is not so annoying in VR mode: Preferences > Graphics > Rendering > Floating text fades.
If you have issues with some of the Function keys (F4, F5 or other Firestorm VR keys) not working… look to see if the F keys involved are mapped to active “Gestures”. You can find a list of the gestures you currently have active and the keys associated with them using the “Gestures” toolbar button… or the Comm -> Gestures menu item (Ctrl+G shortcut)
Peter Kappler also suggested some things:
- Particles… a fireplace is going to eat 20 to 30 fps! So make sure they are off.
- I moved my cache to a RAM drive. Just make a 2GB RAM drive. SSD is no comparison to RAM drive. Its way faster. Not even NVMe (non-volatile memory express) can reach that kind of speed. E.g. see SoftPerfect RAM Disk : high-performance RAM drive for Windows.
- F5 modes: There are two modes: one where HMD rotation is locked (F4 to lock), and one with normal HMD rotation on. The problem is that if you have HMD rotation on its hard to use flycam or edit things since it does not select properly. That’s where you turn it off.
Firestorm Debug Settings
EnableSteamVR – performs the same function as the Settings -> Graphics -> Steam VR -> tick on/off. Default Off.
TextureShift – performs the same function as the Settings -> Graphics -> Steam VR -> Texture Shift. This may need to be adjusted for different VR headsets. I found it could be left at the default setting of 0 for the Oculus Rift DK2, and needed to be set to +200 for the Oculus Rift CV1. Adjust this if you have double vision in VR mode.
EyeDistance – performs the same function as the Settings -> Graphics -> Steam VR – Camera distance from center slider. This is an important setting to get good 3D depth. Set it to the Interpupil distance for your headset (64mm is a sensible default). If set to 0mm the image will be 2D. If set wrongly you may find that the 3D effect is in distinct layers or not as good as it can be.
Xbox One Controller
An Xbox One controller as used with the Oculus Rift (or an Xbox 360 controller) can be enabled, as usual, in Firestorm via Preferences -> Move & View -> Movement -> Joystick Configuration -> Enable Joystick.
You will probably find the controls are under or over sensitive, or some buttons and triggers don’t do what you expect. See this blog post and the image here (click for a larger version) for some suggestions as to how to amend the settings…
You might want to enter “-1” rather than axis “5” as an indication that axis is not mapped. With the setup suggested the “A” button toggles between the normal avatar view and “FlyCam” mode allowing you to move the camera separately to the avatar.
A Firestorm JIRA Issue relates to this…
This JIRA issue has comments concerned over low frame rates and poor support for all the menus, popups and creator/editing facilities in Second Life and OpenSim. Personally, I don’t think ALL the creator/build menu facilities are needed all the time, and those can be done by switching back into VR mode… which is easy with the TAB key method uses to switch between 2D and VR mode. Concerning frame rates, some users are probably seeing very busy mainland regions with tens of thousands of objects. When I use Firestorm on OpenSim builds with a few avatars in training modes I can get 160fps frame rates! And high frame rates when we have used private regions on Second Life for educational meetings.
User Experience with Firestorm VR 6.0.1
- Question: In the Steam VR settings tab, what does “Zoom out the display” do?
- Text: Peter Kappler’s notes indicate “The slider “Lens distance” lets you adjust the distance between the 2 cameras to improve stereo depth separation. ((There is a bug with world not updating while slider > 0)). Slider set to 0 uses only 1 camera (non-stereo) and doubles your fps.“. There is not a “Lens Distance” slider… but it is the Steam VR tab setting for “Camera distance from center”.
- Improvement: The “Texture Shift” slider is difficult (impossible?) to reset to 0 if needed. You can instead set it to 0 (or any specific value) via the Debug Settings for “TextureShift”.
- Bug:The default value set for “EyeDistance” in Debug Settings is 0.064. It should be 64.0. I.e. in millimetres not metres. It can be amended in
- Improvement: The mouse cursor in VR mode only shows as a simple arrow pointer. It does not change to the custom cursors such as seat, hand, etc as active items are pointed at.
- Bug: The Debug Setting descriptive text for “TextureShift” is incorrect. It is a copy of the descriptive text for “EyeDistance”.
- Bug: On the Camera Controls tool, after using the <> added buttons the circular movement controls get squashed to the lower left or disappear.
- Clarification: F4 and F5 button descriptions are difficult to understand. Does this work as described? And may it differ in different headsets?
- Improvement: The various SteamVR related debug settings could be collected together and identified more readily by prefixing them all with SteamVR, SVR or just VR. So for example SteamVREyeDistance.
- Improvement: Change the app_settings\grids.xml loginpage strings for the Second Life and Second Life Beta grids to http://viewer-login.agni.lindenlab.com/ rather than http://phoenixviewer.com/app/loginV3/
Amended Firestorm XML Configuration Files
I have created two amended .xml configuration files which can be placed in the special version Firestorm installation directory to (hopefully) improve some of the Settings tool tips, and correct two of the bugs described above…
Obtain these at:
Sample Tests in Firestorm 6.0.1
Some specific figures I observed on one Second Life scene trying to make the view distance (256m), graphics settings (High), etc the same…
- Linden Lab 6.2.4 96-106fps
- Firestorm 6.0.2 176-188fps
- Firestorm VR 6.0.1 2D mode 136-144fps
- Firestorm VR 6.0.1 VR mode 82-84fps
Put simply it looks roughly like Firestorm 6.0.2 100%, Firestorm VR 6.0.1 2D mode 75%, Firestorm VR 6.0.1 VR mode 50%. But the 6.0.1 VR mode is still roughly the same as the Linden Lab 6.2.4 viewer in 2D mode.
The following images were take on a Dell Precision T5180 with 32GB Memory and Nvidia GeForce GTX 1080 GPU, with Ultra graphics settings and 512m view distance.
On OSGrid RuthAndRoth region showing approx. 50fps in VR HMD mode…
On OSGrid Black Rock region showing approx. 40fps in VR HMD mode, nearer 75fps when seated in the vehicle…
HMD Black Screen on TAB in Firestorm VR 6.0.1
An updated Firestorm VR 6.2.4 includes changes to address the black screen issue.
Unfortunately after a successful initial test period and what appeared to be a working setup I experienced the (Oculus DK2) HMD screen going black when switching to VR mode in Firestorm VR 6.0.1 via the TAB key. And whatever I tried did not seem to fix it. I tried reinstalling Steam and SteamVR, uninstalling and reinstalling afresh both, upgrading to the Steam and SteamVR Betas, downgrading again to the release versions, and reinstalling Firestorm VR.
The following worked for me after the black screen in the HMD TABbed view occurred…
Start Firestorm VR… turn off the Steam VR enabled tick box. Change the graghics settings (I went between High and Ultra or vice versa). Then DO NOT enter VR mode with TAB. Instead stop Firstorm VR, SteamVR (and Oculus Home). Then launch Firestorm VR again, tick Steam VR enabled (I did that before login but that may not matter) and TAB to VR. My assumption is that something about the gpahics settings interferes with the VR mode HMD display unless the settings are committed in some way when a relog and Steam VR enable takes place. Just ticking Steam Enabled on and off while its running does not seem to fix this problem.
Peter Kappler gave me feedback which indicates it could indeed be related to specific graphics settings or changing them…
There are people that have issues with having tracking but no image. It may have something to do with deferred lighting or shadows in the viewer. Or GPU buffer settings since I copy the images directly from BACKBUFFER before swap.
Peter also offered some advice on Discord to others with the HMD black screen problem…
Nvidia GPUs: In the Nvidia Control Panel -> Manage 3D Settings -> Global Settings, there is a setting for Virtual Reality Pre-rendered Frames. Check it is set to 1. Also check that Triple buffering is OFF. Then under Program Settings check that these settings are not explicitly overridden to something else for Firestorm VR.
AMD Radeon GPUs: AMD drivers have a setting called Flip Queue Size… make sure it is set to 0. The flip queue size option may not be available in recent AMD driver updates in which use the “Main3D_DEF” and “Main3D” settings to change your “flip queue size”. These should match. I.e. “0” and “0x3000”.
On 22-Sept-2019 Peter Kappler provided a VR test application that uses the same rendering method as Firestorm VR to help identify if your own VR HMD setup might have issues:
Unpack it, go to the bin/win32/ folder and open the hellovr_opengl.exe
That should show you a world full of boxes.
If it shows a black screen then there is an issue on your PC.