Virtual Reality Tuning Guide


Contents
Related Links

Overview

The purpose of this article is to provide information on how to tune Prepar3D settings and content for the best possible virtual reality (VR) experience. Prepar3D is an advanced training platform built for scalability and reconfigurability. It is used on a wide variety of hardware from laptops and tablets, to full motion simulators and domes. Each training use case and hardware platform has unique requirements to consider when configuring application settings and content. Virtual Reality is a great example of this. Virtual reality scenarios have several unique characteristics:

  1. At least two 3D views (one for each eye)
    • Each view has a wide field of view (FOV). This means more objects are visible
    • Each view is high resolution. This means objects render at a higher level of detail (LOD) and the GPU has more pixels to process.
  2. Target framerate is 90 frames per second (FPS) to avoid nausea


Virtual Reality Settings:

The most important VR setting for performance is Headset Display Mode. Users with NVIDIA hardware should set this to Single-Pass Stereo, which is a stereo mode that draws two views in a single rendering pass. Much of the CPU work for the second 3D view is offloaded to the GPU. Similarly, performance can be boosted by setting this mode to Mono, which uses only one view. The drawback, though, is that objects will not appear as three dimensional without true stereoscopic rendering.


The VR use case can be very taxing for the CPU and GPU. In general, CPU workload depends on several factors:

  1. Number of objects simulated (Adjustable by traffic settings)
  2. Number of objects in the scene. (Graphics settings have many options to adjust this)
  3. Number of 3D views. Note that reflections and shadows make use of additional views.
  4. Complexity of user aircraft simulation and rendering
    • Instrument panels
    • Virtual Cockpit panels
    • Animations


Settings to Consider

Graphics - World:

Graphics - Lighting:



Frame Timing:

VR headset interfaces such as SteamVR control the frame timing for the HMD display. Prepar3D still controls the frame timing for the onscreen display. It's a good idea to disable VSync in Prepar3D when using VR. This should help ensure the application is only waiting on the VR.



Simulation Rates:

VR is heavily dependent on high and consistent frame-rates for smooth performance. This means that any content that is not simulating at a high frame-rate may impact the VR experience. Prepar3D by default defines a range of rates at which different groups of SimObjects update. It is recommended to set the minimum rates for all groups to your target VR frame-rate (usually 90 Hz) to avoid any potential ghosting or visual anomalies.


Adding the following lines to your Prepar3D.cfg file will make sure the rate of simulation for AI and the user object will target the same frame-rate as the VR headset.

[SIM]

min_user_sim_fps = 90

max_user_sim_fps = 90

min_AI_sim_fps = 90

max_AI_sim_fps = 90

It is recommended to leave the target frame-rate in the Prepar3D settings menu to unlimited, even when you have these keywords in your Prepar3D.cfg. For more information about SimObject Simulation Rates, see the the Notes on SimObject Simulation Rates.



Operating System and Driver Configuration:

There are some external applications and OS or driver settings that can impact performance.


  1. Disabling the GeForce Experience Share In-game Overlay:
    • From the GeForce Experience app, click the Settings icon on the top right corner
    • From the General panel, toggle the SHARE setting to off
  2. Disable Window10 Game bar
    • Open "Settings" app
    • Select "Gaming"
    • Under "Game Bar" select "off"
  3. Disable full screen optimization in app properties for Prepar3D.exe
    • Browse to Prepar3D install directory
    • Right-click Prepar3D.exe and select "Properties"
    • Click the "Compatibility" tab at the top of the properties window
    • Check the "Disable Fullscreen Optimizations" box and hit Apply.

In addition to OS settings, is recommended that SteamVR users check and/or modify their SteamVR settings.


  1. Video: Consider enabling or disabling motion smoothing via the "Enable Motion Smoothing" checkbox. This feature is available in Steam VR Beta. This allows SteamVR to interpolate the next frame, based off the two previous frames. It allows for a higher framerate while lowering performance requirements, but it may cause distracting visual artifacts.
  2. Camera Camera rate increases or decreases the refresh rate. When experiencing trouble with tracking, it is recommended to lower the rate, or disable the camera.
  3. Error Logs When troubleshooting an issue, be sure to check the error logs. You can view logs by going to Settings -> General -> View Logs. You can also change the log directory at Settings -> Developer -> Paths -> Set Log Directory


Content and its impacts on performance:

Content has a big role in overall performance. Examples of content are scenery, aircraft, models, textures, and scenarios. The number of objects on screen and the complexity of each object is directly impacted by the content. Reducing the level of detail in content by lowering your settings or disabling performance cost-intensive add-ons will increase VR performance.



User Aircraft Model:

User aircraft models can be very complex, because many model parts are individually animated and scripted to support user interaction. Doing separate performance tests in Cockpit, Virtual Cockpit, and Locked Spot views is a good way to determine the impact of the interior and exterior model on performance. Prepar3D has a diverse ecosystem of developers that may use different approaches for building and optimizing models. As an example, a model built for procedural training in a large airliner, may be designed to target 30-60FPS in a single view as a trade-off for having a very complex and fully interactive virtual cockpit model.



Instrument Panels:

Most 3D models use virtual textures to map instrument panels into the 3D cockpit. These VCockpit instrument panel each have their own offscreen window. While Prepar3D supports GPU accelerated systems such as Scaleform, many models rely on the XML based instrument panel system. This system uses the CPU for drawing 2D gauges elements. The GPS map can be expensive because it renders terrain data. Gauges are updated at 18hz to keep overall FPS impact down, but this can impact the consistency of frame times if not using the FPS limiting or vsync. Pro Plus customers can force panels to update every frame using PANEL_UPDATE_MODE=3. More details can be found in the Advanced Configuration section.


For VR scenarios, it may be beneficial to modify the panel.cfg or gauge XML in for an aircraft to disable more expensive elements such as the GPS-map (if they are not needed for the given training scenario).



Summary:

Virtual reality scenarios have several unique characteristics which require special consideration. Settings and content should be tuned for a given training scenario to provide the best possible VR experience. The information in this article is intended to inform and guide the tuning process.