Skip to main content
Up and Coming
June 20, 2014

Auto Quality Chooser

I just found this free script on the asset store: Auto Quality Chooser. It allows you to set a minimum acceptable framerate and if the game dips below that FPS, the script automatically starts reducing the visual quality level until the game returns to the desired framerate. At that point it starts scaling the visual quality back up again.

Setting the minimum FPS to 65 seems a good way to give yourself some head room to maintain a stable DK1 rate of 60FPS.

I'm surprised the Oculus Unity package doesn't do something similar but this script is easy enough to integrate. I definitely recommend people have a play with it given how important a steady frame rate is in VR. It'll only become more relevant when DK2 and it's 76hz screen shows up.
    This topic has been closed for replies.

    8 replies

    Inspiring
    June 20, 2014
    Very cool. Thanks for sharing.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    Up and Coming
    June 24, 2014
    Thanks for sharing the link! Very handy, and at a great price too! :D
    Up and Coming
    June 24, 2014
    While useful in some cases, this sort of approach is not applicable to all games and all hardware. It is very common for performance to bottlenecked on factors that are not controlled by the parameters you can automatically tweak. Changing quality also causes framerate hitches in many cases. Unity also does not give you the GPU queries needed to separate out the different causes of performance loss.

    If Oculus implements anything along these lines, it should probably be dynamic resolution rendering. The new SDK gathers all of the timing information and has all of the outputs needed to do it right.

    And in any case, for VR you need to be a lot more careful about maintaining consistent performance. There are no good shortcuts to profiling.
    Up and Coming
    July 4, 2014
    This is probably one of the most useful Unity plugins I've ever seen. After trying atlasing, combing meshes, etc, to no avail, this solves framerate issues in seconds. Hot damn.

    Really appreciate you sharing this JonDadley!
    Cubicle Ninjas Custom VR App Development Guided Meditation VR for Rift, Gear, and Go
    Up and Coming
    July 4, 2014
    Thanks for sharing JonDadley :D it's very nice, although i cannot live with JS unfortunately :P i'm more of a C# person and with that i simply had to convert it to C# (more because of a challenge to myself, though i am not entirely sure if it works as the JS version :P) but that's just me ;) it's a nice Asset and especially fith that price "range" :D again, thanks for sharing ;)
    ASUS Maximus VII Formula Intel core i7 quad core 4790K OC'ed @ 4.4Ghz 32GB DDR3 Ram Nvidia Geforce GTX 980 4GB Windows 10 Pro 64bit GSync Monitor @ 2560x1440, 144Hz ------------------------------------------- DK2 Owner CV1 Preordered.
    Up and Coming
    July 18, 2014
    This is actually pretty handy. One thing that I've noticed is that it subs all of your quality settings at runtime, resulting in some initial performance issues and drop out on the redraw right when the scene starts.

    Any ideas on how you could preload the scene to have all of these resets occur before the player is dropped in the scene, and prevent the blackouts that I'm seeing at the start of the scene.
    Golf Masters DK2 Alpha, GOLF MASTERS
    Up and Coming
    July 22, 2014
    "muglore" wrote:
    ...Any ideas on how you could preload the scene to have all of these resets occur before the player is dropped in the scene, and prevent the blackouts that I'm seeing at the start of the scene.


    This is exactly why you don't want auto-quality changing. You want to do it at a specific point, not during gameplay. A smooth 30fps is much better than 60 fps with 10-20 frames dropped here and there. Gotta be smooth for VR. Not that 30 fps is good, but choppy frame rate sure does sucks.
    Up and Coming
    July 22, 2014
    How exactly does that work? Does it change mipmap levels and LOD models? I'd think that limiting shader calculations should also work.
    Down the road I think that it's prudent to create a game engine which is build with guaranteed frame rates from the ground up.

    "owenwp" wrote:
    If Oculus implements anything along these lines, it should probably be dynamic resolution rendering. The new SDK gathers all of the timing information and has all of the outputs needed to do it right.


    There is a technique available for ray tracing, perhaps it's possible to do the same thing in rasterization or hybrid engines.



    What it does is sub-sampling the image while trying to keep the sample rate up at high detail areas like silhouettes or highlights. The advantage is this is continuous so there won't be any "popping" artifacts when the LOD level changes.