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:
- Install the special version of the Firestorm viewer.
- Put the openvr_api.dll contained in the compiled version .rar/.zip in to the freshly installed firestorm folder with all the other dlls.
- Start SteamVR. [Install SteamVR if you don’t already have it available.]
- Start Firestorm.
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)
For the Oculus Rift these settings should also be adjusted:
- Preferences -> Graphics -> Steam VR -> Texture Shift: 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 layered on Oculus Rift. Note that a setting of 0 means the image will be 2D.
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.
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.
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 using CtrlAltStudio Viewer that 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 Riftlook: Preferences > Graphics > Rendering > Floating text fades.
There is a Firestorm Viewer Debug Setting “EnableSteamVR”. This performs the same function as the Settings -> Graphics -> Steam VR -> tick on/off. Default Off.
There is a Firestorm Viewer Debug Setting “TextureShift”. This 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.
There is a Firestorm Viewer Debug Setting “EyeDistance” to adjust the interpupil distance (IPD). This 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.
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: F5 button is described as disabling and enabling HMD direction changes. Peter’s read me text says that it is better to disable HMD direction interface when editing and flying with the camera. Does this work as described? F5 seems to make the screen view go further away rather than showing a view that fills the visual field.
- 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:
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
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 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.