Quality and Performance Guide

Introduction

NVIDIA Funhouse has three quality settings available in its current iteration. We use these to scale VRWorks, graphics and simulation parameters depending upon which level you set. Further, we do have some mechanics to automatically set your level based upon a “performance score” that we poll inside of Unreal Engine 4!

This document will outline how these parameters are changed, set, and what each value means, along with some tips and tricks.

Quality Settings

We modify the following properities based on the quality setting selected:

  1. Screen Percentage
  2. Post Process AA
  3. Multires settings
  4. Shadow Quality

Quality Settings Table:

Quality per level is established in the Quality settings table here...

  • /Content/VRDEMO_ASSETS/SETTINGS/

    • High Settings
    • Medium Settings
    • Low Settings
_images/qualitylocation.jpg

This setting is then called inside the individual sublevels as they load. You can find the logic comment wrapped like it is here in the Clown Painter

_images/clownpainter.jpg

Further, additional simulation or level specific changes can be made off of the quality call. See the example for Clown painter below!

_images/specificsettings.jpg

VR WORKS

Multires shading is currently included in VR funhouse and set at various levels depending upon the quality setting selected. Multi-Res Shading is an innovative rendering technique for VR whereby each part of an image is rendered at a resolution that better matches the pixel density of the lens corrected image. Multi-Res Shading uses Maxwell architecture features to render multiple scaled viewports in a single pass, delivering substantial performance improvements in pixel shading. You can learn more about multi-res shading here: VR Works

You can set MRS by using the following command

  • vr.multiresrendering X

    • 0, 1, 2, and 3 are available options and scale pixel reduction from 0% -> ~60%.

Performance Guidelines

We used the following settings for the various qualities in VR Funhouse:

_images/settings.jpg

Further, we’ve setup specific limits for technology based on target, feel free to explore the levels to see how this is done. For Flex and Flow it is especially important to limit particle counts and grid resolution to maintain performance!

Considerations

  • Be careful about using multiple VFX module in the same game. This can reduce performance if not balanced correctly.
  • Performance was tuned for VR Funhouse using a baseline target of 90 fps.
  • Performance is budgeted at about 500,000 triangles ( each eye) for a given game.
  • Flex particles are limited to about 15,000 for performance.