cancel
Showing results for 
Search instead for 
Did you mean: 

Updating Quest 2 refresh rate causing physics stuttering

DTNA_VR
Explorer

Hi community, I'm trying to get my Unity Quest 2 application (standalone) updating the headset refresh rate to the maximum available

Problem: Updating to any refresh rate higher than the default 72 causes the physics to start stuttering. When I grab an object with a rigidbody and start moving my hand I see it jittering/choppy movement

What I've tried: OBS shows the in game FPS is meeting the cap 72/90/120, and everything else except physics based movement is buttery smooth. My understanding is that physics has it's own timestep value `Time.fixedDeltaTime`. I tried updating that in my refresh rate code below:

DTNA_VR_0-1678839119521.png

Additional info:

My time settings

DTNA_VR_1-1678839206203.png

Unity Version 2021.3.12f1
URP

Any help is much appreciated, thanks

 

1 ACCEPTED SOLUTION

Accepted Solutions

DTNA_VR
Explorer

Thanks for all the comments/suggestions it turned out to be an issue in the framework I was using VRIF by BNG where the grabber had some settings called force physics grab or something 

View solution in original post

4 REPLIES 4

QuirkyFB
Honored Guest

I've previously been having serious stuttering issues, both physics and others. In the end I implemented 2 awesome solutions.

Firstly I made sure my movement code was the first script run before anything else.

Secondly I reduced the amount of gameobjects in the scene. As my game was procedurally generated I had to write some code that merged nearby meshes with the same material and rebuilt with a single meshcollider - luckily I was using low-poly texture mapped colours so that included pretty much everything non-interactive in the scene 😄 I went from 100s of gameobjects in view to maybe 40.

Of course, the same could be achieved for most games by manually merging objects in the 3D package of your choice. The point being is that for for mobile devices like the quest, too many gameobjects creates a lot of overhead.

weatx
Protege

This "might" fix your problem since you're talking physics. Under Rigidbody on your GameObject that you can grab, set the Interpolate property to Interpolate. It might be set to None.

JeffNik
MVP
MVP

Try matching your "Fixed Timestep" for the Unity physics system to match your new framerate. For example, if your framerate is 72 make it 1/72 (.013888889). If you change it to 90 fps, change the fixed timestep to 1/90 (.01111111)

DTNA_VR
Explorer

Thanks for all the comments/suggestions it turned out to be an issue in the framework I was using VRIF by BNG where the grabber had some settings called force physics grab or something