Forum Discussion
JonDadley
11 years agoHonored Guest
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.
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.
8 Replies
Replies have been turned off for this discussion
- cyberealityGrand ChampionVery cool. Thanks for sharing.
- BoffExplorerThanks for sharing the link! Very handy, and at a great price too! :D
- owenwpExpert ProtegeWhile 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. - CubicleNinjasProtegeThis 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! - standtall007ProtegeThanks 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 ;)
- mugloreExplorerThis 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. - moltonExplorer
"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. - ElectricMucusExplorerHow 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.
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 2 years agoAnonymous
- 10 months ago