Update: 28-Nov-2019: Peter Kappler now has a home page for Firestorm VR Mod at https://gsgrid.de/firestorm-vr-mod/ – go there for the latest version and information.
The version of the Firestorm viewer on which the latest Firestorm VR Mod 220.127.116.11049 is based supports Bakes on Mesh [BoM] in both Second Life and OpenSim. Most of the time this will work fine, but if you use extended BoM features please don’t use this viewer to log directly into a grid/region known to run on older 0.8.* server code.
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 compatible with Vive, Oculus Rift, Windows Mixed Reality and other VR headsets (HMDs).
On 23rd September 2019, Peter provided an updated version of Firestorm VR 6.2.4 compiled for Second Life and OpenSim which should fix the “black screen” issue seen in earlier releases [See this blog post].
Download and Installation
- Download http://gsgrid.net/Phoenix-FirestormOS-P3-VRMOD-6-2-4-57588_Setup.rar
- Unpack the .rar to get the Firestorm .exe installer and openvr_api.dll
- Install Phoenix-FirestormOS-P3-VRMOD-6-2-4-57588_Setup.exe
- Place openvr_api.dll in install directory.
- Install SteamVR if you don’t already have it available.
- Start Firestorm VR (which reports itself as 18.104.22.168575).
- 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)
- Go to Preferences -> Move & View and set the Field of View (FOV or View Angle) to 1.80 (default on Firestorm is 1.04)
- 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||FOV||Info. From|
|Oculus Rift S||?||?||1.8||?|
|Oculus Rift CV1||+200||IPD||1.8||Ai Austin|
|Oculus Rift DK2||0||IPD||1.8||Ai Austin|
|Valve Index||+210 ++||45mm (for IPD 70mm)||1.8||skr|
|Pimax 5K+||+700 ++||IPD||2.1-2.2||Grebo|
|Microsoft Windows Mixed Reality Headsets|
++ A Texture Shift < -200 or > +200 can be made via the Advanced menu – Debug Settings for “TextureShift” but on the Steam VR Preferences Panel the value displayed is limited by entries in the file firestorm-install-dir/skins/default/xui/en/panel_preferences_graphics1.xml. This can be edited to change the TextureShift default lower and upper limits.
Peter Kappler notes: On Firestorm VR initialisation SteamVR indicates the resolution your headset expects. That is where Firestorm VR gets the aspect ratio for the HMD. In the “Enable Debug Display” there are 2 values Rheight and Rwidth which should be your headset resolution.
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 or four sides of the screen the HMD view jumps to show that corner or side 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?]
Peter Kappler noted:
- 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.
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 launched, and then run the Firestorm VR viewer.
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, shadows and quality sliders) until you have more than 50fps and then try VR.
Peter Kappler also suggested: Particles… a fireplace is going to eat 20 to 30 fps! So turn them off for VR.
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 chat above avatars use Preferences > Chat > Visuals > 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 > User Interface > 3D World > Floating text fade distance.
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)
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.
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.
As with all versions of Firestorm, the viewer supports other forms of “joystick”. One I find particularly useful is the 3Dconnexion SpaceNavigator (aka SpaceMouse) which is a “3D mouse” supporting both avatar motion and separate “FlyCam” camera control.
My recommendation is to install the SpaceNavigator just by plugging it into Windows and receiving default Windows drivers for the device. I do not install any special SpaceNavigator drivers as suggested on the Second Life Wiki, some of which are incompatible with Second Life viewers.
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 used 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.
- You may have a black bar in the viewport when you TAB to VR view which can be reset by centring the mouse. Having the mouse near any edge or corner of the VR view focusses in on that area, and it could be common that the mouse will be near an edge when first entering VR mode. Suggestion: perhaps the mouse should be set centrally in the viewport when TABbing to VR mode to help new users and provide a smoother experience.
- When Firestorm VR starts up, SteamVR is enabled and a VR headset is not switched on or available there are Steam VR errors noted. Suggestion: The viewer might be able to offer an option to ask on startup if VR or 2D mode is required. Or there might be some way to probe if SteamVR can startup cleanly.
- F4 function key, appears to lock 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 – and is even stranger if you are sat down or in a vehicle). Pressing it again unlocks the view so that it rotates around the camera position itself. Suggestion: I wonder if it might be better to have F4 lock onto the “Mouseview” first person viewpoint, and toggle mouseview on and off. I think that would be more understandable, and perhaps more useful? The “m” key switches to and from Mouselook anyway.
- F5 function key appears to have no effect on Oculus Rift at least. Suggestion: clarify F5 and whether it differs between VR headsets.
- Suggestion: I think the SteamVR tab “Camera Distance from Center” is misleading, and it would be better expressed as “Distance between eyes in mm” (its the same as the Debug Setting “EyeDistance”).
- Suggestion: the SteamVR settings tickbox for “Zoom out the screen” is indented under “Enable Debug Display”. If it is separate it would be better placed at the same level.
- Suggestion: rename the debug settings to their actual function.
- The Debug Setting entitled DistortionApplied for “Enable Debug Display” is odd. Suggestion: rename the debug setting to its actual function.
- The SteamVR setting “Zoom out the screen”, which is associated with the Debug Setting entitled EnableSmoothing, appears to have no effect. Suggestion: Clarify its usage? It may be related to Nvidia Dynamic Super Resolution (DSR) “Smoothness” as suggested by its Debug Settings variable name.
- Bug: The current default setting when the Debug Settings for “EyeDistance” is reset settings it to 0. firestorm-install-dir/app_settings/settings.xml for “EyeDistance is 0.0 and it should be 64.0 there.
- Suggestion: also in see firestorm-install-dir/skins/default/xui/en/panel_preferences_graphics1.xml I think the tool_tip for TextureShift might be better expressed generically (rather than just referring to Oculus and Vive) as “Shifts the texture to compensate for FOV shifts in different HMDs”
- Suggestion: 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/ to better reflect OpenSim uage of Firestorm.
HMD Black Screen on TAB
This was an issue which occurred in earlier versions of Firestorm VR, e.g. in Firestorm VR 6.0.1. See this Blog Post for more information. Firestorm VR 6.2.4 should address this issue for most VR headsets. But, on 22-Sept-2019 Peter Kappler provided a VR test application that uses the same rendering method as Firestorm VR to test if this might be a problem on your HMD setup…
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/HMD.
Peter Kappler also suggested that for those with AMD Radeon GPUs still showing the black screen problem that they could try to create a game profile for Firestorm VR in AMD Drivers and forcing AA on or off in that. He indicates that this fixed the black screen for a lot of AMD users. BabyMikuLast replied that this fixed the problem on AMD Radeon… Set AA to override program settings then set it to multisample X4.
On 26-Nov-2019 Peter Kappler suggested the following for those still having black screen issues:
To fix the black screen go to your graphic card settings and force Anti-Aliasing on or off. Better… create a profile for this firestorm exe with AA on.
Viewer Not Starting on Older Xeon Processors
A few people using quite old Apple Macintosh servers using older Xeon processors have had an issue where the Firestorm VR viewer would not start at all. Peter Kappler noted that some older Xeon processors do not support the “AVX2” instruction set. Peter compiled Firestorm VR with AVX2 to see if he could improve performance. He plans to provide a non-AVX2 version in future.