Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
DTNA_VR's avatar
DTNA_VR
Explorer
2 years ago
Solved

Updating Quest 2 refresh rate causing physics stuttering

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:

Additional info:

My time settings

Unity Version 2021.3.12f1
URP

Any help is much appreciated, thanks

 

  • 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 

5 Replies

Replies have been turned off for this discussion
  • 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.

  • 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.

  • 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)

  • 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 

    • aitana.skelly's avatar
      aitana.skelly
      MHCP Member

      I am also using VRIF framework and am having the exact same issue. What exactly did you do to solve it??