Firestorm VR Mod 6.6.17

R E P L A C E D     B Y     P B R     V E R S I O N     7.1.9
https://blog.inf.ed.ac.uk/atate/firestorm-vr-mod-7.1.9/

Download link: https://github.com/humbletim/firestorm-gha/releases/
Firestorm VR Mod 6.6.17.70368 is the final Pre-PBR (Pre Physically Based Rendering) Viewer.

Firestorm OpenSim Viewer LogoFirestorm VR Mod is a version of the popular Firestorm Viewer for Second Life and OpenSimulator with modifications to provide VR capabilities for VR Head Mounted Displays (HMDs) via SteamVR. This is experimental. Firestorm VR Mod is now available from https://github.com/humbletim/firestorm-gha/releases

Firestorm VR Mod - VR View

For Firestorm VR Mod community support use the Discord Discussion Channel:
P373R-WORKSHOP by p373r_kappler [Invite]

Table of Contents
Usage Settings Troubleshooting Black in HMD
SteamVR Popup Fn Keys Default View FPS Advice
Xbox Controller 3D SpaceNav Source Code VRLand Test

Firestorm VR Mod DownloadFirestorm 6.6.17 + P373R VR Mod: This build includes P373R’s VR Mod 6.3.3 changes merged into the Firestorm 6.6.17.70368 release branch. The VR Mod approach takes a minimalistic approach to inserting VR capabilities into the viewer in order that the maintenance overhead is decreased and the potential longevity of the approach is increased. VR Controller support is not included.

The Firestorm VR Mod viewer (for Windows only) is available as an .exe installer or as a .7z zipped file which can be unzipped to any directory and run from there without an install. If required, a free .7z unzip utility is available at https://www.7-zip.org/. Download the release for the latest version at https://github.com/humbletim/firestorm-gha/releases/

You need to install your usual VR Headset drivers and SteamVR. Firestorm VR Mod when run uses SteamVR which will launch any necessary VR headset specific underlying drivers.

Firestorm VR Mod - OpenSim - OSGrid - Oil Rig - Blow Out Preventer VR View of Crystal Coast in Second Life using Firestorm VR Mod

Firestorm VR Mod is created using “GitHub Actions” (GHA) thanks to @humbletim and @thoys. Minor changes are made to the original VR Mod 6.3.3 code for the merge, which otherwise continues to be suitable.

The build uses the open source openal.dll audio library for sound and builds in the openvr_api.dll library for VR HMD connection.

Firestorm VR Mod has its own app and channel names “FirestormVR” and the install directory changed to “FirestormOS-VR-GHA” so the installation can exist side-by-side with stock Firestorm if desired. Settings and cache are shared with standard Firestorm. If you installed Firestorm VR Mod from an earlier version (up to 6.6.8) you can delete the now unused settings and cache directories: %APPDATA%\FirestormVR_x64 and %LOCALAPPDATA%\FirestormVROS_x64.

U S A G E

VR Mode instructions are available via prompts in the viewer or via information on https://gsgrid.de/firestorm-vr-mod/. In short…

  • Press CTRL+TAB to load or unload the SteamVR driver. Do this each time you want to enter VR mode after starting up.
  • Press TAB key to enable and disable VR mode.
  • Press F5 to open the settings menu, you should see a text menu in the middle of the screen. The settings menu works only when VR mode is enabled.
  • Press F6 to increase the selected value. Press F7 to decrease the selected value.
  • Press F5 again to switch to the next menu entry.
  • By pressing F5 on the last menu entry the menu will close and save the settings in the config file which is located in
    C:\Users\your_user_name\AppData\Roaming\Firestorm_x64\vrconfig.ini
    and which can be edited directly. Pressing TAB for VR mode reloads the config file.
  • Hold F3 to see some debug info (example here).
  • Press F4 to disable and enable HMD’s direction changes. It may be better to disable the HMD’s direction interface when editing and flying with the camera. This may be subject to change in future versions.
  • In the camera floater two buttons has been added to offset the HMD’s base rotation.
  • Moving the mouse to the corners or the sides will shift the screen to this direction so menus can be accessed more easily.

For issues on some specific headsets you might wish to try the Firestorm VR Mod Discord Channel: P373R-WORKSHOP by p373r_kappler [Invite]. Peter Kappler also offers the following advice…

  1. Firestorm VR Mod works best while sitting and using mouse and keyboard.
  2. WindowsMixedReality users may need to press windows key + Y to unlock the mouse when the HMD is worn.
  3. If your VR hardware cannot maintain constant 90 FPS you could try enabling motion reprojection in your HMD. In WindowsMixedReality it can be done by uncommenting “motionReprojectionMode” : “auto”, in the config file located at “C:\Program Files (x86)\Steam\steamapps\common\MixedRealityVRDriver\resources\settings\default.vrsettings”. This will make the HMD interpolate between frames and create a smoother experience. Vive and Oculus should have similar functionalities which can be accessed from SteamVR settings. For Vive it is called Motion Smoothing.

S E T T I N G S

VR Mode Setup

As usual, Ctrl+TAB initially sets up SteamVR (and HMD support as needed), TAB is used to toggle VR mode on or off, F5 lets you select and step through the various VR HMD or user specific settings for IPD, texture shift to register the left and right eye images, and focal distance to change depth perception, etc. F6/F7 are used to increment and decrement each setting selection.

Peter Kappler suggested the following process to establish suitable settings for your HMD:

  1. Set IPD to 0 (zero)
  2. Then adjust Texture Shift until image is sharp and focused
  3. Then adjust IPD which separates your cameras to left and right to get a good 3D effect

@Sgeo on Discord provided a tool to help in calculating the settings for Firestorm VR Mod.. at least to give you a starting position to adjust to your taste…

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

Hovertips

If you see a lot of hover tips showing under the mouse it could be that the debug setting “ShowHoverTips” is set to TRUE (the default) which may show something constantly under the mouse even for inert unscripted objects. You can turn that off via Debug Settings or via Preferences > User Interface > 3D World > Show Hover Tips. Via that same preferences panel, you might alternatively prefer to lengthen the delay before hover tips are activated.

Chat Bubbles

In VR Mode it may be useful to show local nearby chat in “bubbles” over each avatar’s head. This can be done via Preferences > Chat.


T R O U B L E S H O O T I N G

Misaligned VR Cursor

Note from Gaffe on Discord: Firestorm VR Mod’s VR cursor will have a small-to-extreme offset on Windows in particular if you are using Windows UI Scaling with any settings OTHER than 100%. To fix the VR cursor offset, set the Windows UI Scaling for your primary display to 100%

Missing Menus and Buttons in Centred VR View

If you notice that the top menu bar and bottom and side button areas do not show in your headset when you are in VR Mode and your view is centred (i.e. mouse is positioned centrally in the 2D view) it may be that the VR settings you chose for Texture Shift and Texture Zoom need to be adjusted, or set to zero.

All Black HMD Display or Black Edges or Strips in HMD Display

An all black display in the VR HMD was an issue in earlier versions and is mostly resolved now… but it can still occur with some headsets. In case you encounter issues with a black HMD display… Peter Kappler suggests the following:

  • Create a program-specific profile for the viewer in your graphic card settings and enable FXAA.
  • Second Life only supports FXAA. Other types of Anti-aliasing can be disabled.

Firestorm VR Mod shifts the display in VR mode to an edge if the mouse or pointer is placed towards an edge or corner of the viewer window. This is to allow easier access to menus, user interface buttons and HUDs. It can be confusing though if you enter VR mode and find that part of the view is black. It is usually because the mouse is placed towards a corner or edge. Just move the mouse back to the centre of the screen and the full VR view should appear.

SteamVR Reset/Quit Screen Shows in HMD

When you switch to VR mode (after activating VR with Ctrl+TAB and using TAB), you may see a “Next Up… Firestorm” message or a SteamVR popup screen to “Reset the View” and “Quit SteamVR”. This has been observed to occur on the first run of a newly installed viewer. It can usually be dismissed with your controller if that is active, but if not the screen may continue to show the popup in VR mode in the HMD. Try another round of ctrl+TAB and TAB or if that does not work try stopping and restarting the viewer to clear this. These glitches may be more to do with legacy OpenVR + the latest SteamVR updates rather than Firestorm or VR Mod code changes.

Function Keys and Gestures

If you have issues with some of the Function keys (F5 or other Firestorm VR Mod 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).

Adjust Over-the-Shoulder Camera View to Suit Yourself

Sometimes in VR mode the camera will be too high or far back from the avatar. If so, press Esc a couple of times, then Shift+Esc a couple of times, or Ctrl + 9 resets the camera to its default position. Shift + scroll mouse button moves camera up and down. You can also set specific Debug Settings (Ctrl+Alt+Shift+S) for camera positions, e.g. “CameraOffsetRearView”. If that doesn’t help, see http://wiki.secondlife.com/wiki/Camera_Control

A D V I C E    O N    F R A M E    R A T E

You do need to ensure you have a good frame rate to have a comfortable VR experience. The Firestorm VR Mod Viewer will not work well if the Second Life/OpenSim region you visit cannot normally be displayed in 2D with a decent frame rate. In VR mode you can assume you will get 50% or less of the frame rate that shows on the 2D normal screen. At low frame rates bad flickering or texture tearing will occur in VR mode. My suggestion is to look at the frame rate (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 around 100fps (and definitely more than 50fps) and then try VR.

You may need to disable “vsync” in Settings -> Graphics -> Hardware as if this is on (the default) the FPS is capped to the frame rate of your 2D monitor (often 60fps, meaning in VR you would get less than 30fps).

Firestorm includes an “Improve Graphics Speed” performance tool and facilities to autotune the FPS which may be helpful. See advice on FPS improvement and the new “Performance Floater” and “FPS Autotune” capabilities in <a href="http://“>Beq Janus’s Blog Post (21-Mar-2022).

To improve frame rate (FPS) you might opt to set shadows to “None”, Water reflections to “None: Opaque” and use a reasonably low draw distance appropriate to the scene. Also close viewer UI windows and tools and detach any HUDs you are not actively using. The rendering of Linden Water, the water surface and its effects, can significantly reduce frame rates. Setting water reflections to “None; opaque” which gives a big FPS boost whilst still leaving the water looking okay. In an extreme situation, and in an environment that makes sense such as a meeting room, disabling Linden Water entirely can boost frame rates. Do that via Advanced -> Rendering Types -> Water. If the Advanced menu is not shown use Settings -> Advanced -> Show Advanced Menu or World -> Show More -> Advanced menu.

Peter Kappler also suggests: 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 VR Viewer (which is no longer maintained) may also be relevant:

  1. 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.
  2. Make sure you don’t have Preferences > Graphics > Rendering > Limit Framerate enabled.
  3. To display avatar chat above avatars use Preferences > Chat > Visuals > Show chat in bubbles above avatars.
  4. 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.

C O N T R O L L E R S

Currently, specialised VR Controllers are not supported, but a range of game controllers and 3D navigation devices do work where supported by the normal viewer code.

Xbox One Controller

Xbox One Controller
Recommended Settings for Xbox One ControllerAn 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…
https://hugsalot.wordpress.com/2012/12/03/joystick-settings-for-firestorm-with-xbox-360-controller/

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.

3D SpaceNavigator or SpaceMouse

3DSpaceNavigatorAs with all versions of Firestorm, the viewer supports other forms of “joystick”. One is the 3Dconnexion SpaceNavigator (aka SpaceMouse) which is a “3D mouse” supporting both avatar motion and by clicking the left hand button the 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.

S O U R C E

Firestorm source is available at https://github.com/FirestormViewer/phoenix-firestorm. Look under “Commits” and select the branch for the specific Firestorm version required.

With Firestorm VR Mod Peter Kappler uses a coding approach which injects VR capabilities into the Firestorm Viewer to make the mod easier to maintain in future and for others to repeat or adapt. The source is available from his web page at https://gsgrid.de/firestorm-vr-mod/ [Local Copy].

Impressively, the source is written in a way that it requires only some editing in the llviewerdisplay.cpp and adding 2 files to the project. All changes are marked with #####P373R##### comments. Peter also included the openvr header and lib files you will need in the rar. For information about the rest of the files you will need, read how to compile Firestorm at https://wiki.firestormviewer.org/fs_compiling_firestorm.

Note that the VR Mod source remains stable since version 6.3.3 and that no changes are needed for insertion into later versions of Firestorm to date.

The GitHub Actions (GHA) source by @HumbleTim used to combine Firestorm source and Peter Kappler’s P373R VR Mod addons and build it using Microsoft Visual Studio is available via https://github.com/humbletim/firestorm-gha.

V R L A N D – T E S T   A R E A

VRLand on OSGrid is a metrics area for performance testing and to establish virtual field of view in your VR headset.

hop://hg.osgrid.org:80/RuthAndRoth/16/16/1000

More detail at: https://blog.inf.ed.ac.uk/atate/2016/07/20/vrland-a-community-and-test-region-for-virtual-reality-in-virtual-worlds/

Ai-Austin-with-Oculus-DK2-800x640You can also pick up a VR Headset attachment for your avatar in OpenSim on the OSGrid on both the RuthAndRoth and (if available) the VRLand regions. Or in Second Life pick up the VR HMD on the Second Life Marketplace. The 3D models of the Oculus Rift were provided for free use by William Burke (MannyLectro) and imported to OpenSim by Michael Cerquoni (Nebadon Izumi) and Second Life by Ai Austin.

Missing .dll

If you see errors like “missing vcruntime.dll”, “missing msvcp.dll” or the application is not starting at all, then please download and install Visual C++ Redistributable for Visual Studio (link for 64-bit operating systems).

F5 Settings for Specific VR HMDs

  • Oculus Rift DK1
    • IPD = 65.0 (default)
    • Focus Distance = 10.0
    • Texture Shift = 0.0
    • Texture Zoom = 0.0
    • FOV = 100.0
  • Oculus Rift CV1
    • IPD = 65.0 (default)
    • Focus Distance = 10.0
    • Texture Shift = 50.0
    • Texture Zoom = 0.0 (others report 86-200 works)
    • FOV = 100.0
This entry was posted in OpenSim, Second Life, Virtual World, VR and tagged , , , , . Bookmark the permalink.

One Response to Firestorm VR Mod 6.6.17

  1. bat says:

    For compartmentalized testing, @Humbletim added an optional launch_with_settings_here.bat just to the .7z -archive version.

    set “APPDATA=%~dp0”
    set “LOCALAPPDATA=%~dp0”
    call FirestormOS-VR-GHA.exe %*

    When clicked this opens a command prompt window that arranges those environment vars (scoped to just this run) and then Firestorm VR Mod FS simply uses Firestorm_x64 and FirestormOS_x64 subfolders within the 7z unpacked test location. You can copy a template\Firestorm_x64 into the folder first that has a test user and password saved as well as a remembered last location – so running manually as launch_with_settings_here.bat –autologin takes you directly to a situation where all you have to do to interact is CTRL-TAB and TAB to trigger VR mode testing.

    A variation on this theme could allow anyone keen for VR Mod stuff to still “live separately” to achieve a similar effect but would still require manual migration (from FirestormVR_x64 to Firestorm_x64 in the new appdata root location).

Comments are closed.