📺 High Refresh Rate - Not Stable

How could I limit the fps to 60 on these new mobile devices that support 120hz?

I’ve tried one of these new phones and the experience is very jagged as the fps jumps between 70 and 120.

I couldn’t find any “built-in” feature to the engine to limit the fps, and all my attempts at using either requestAnimationFrame or setTimouts, were not good, not smooth at all compared with my native 60hz older phone.

There’s been a lot of new devices and screen which go 240hz+ that make these 3d apps to over-consume. And the way frustum works, a scene can render anywhere between 60 and 240, which don’t produce a pleasant and consistent experience. Not to mention the battery and heat.

engine.setFps(70) ?

Maybe this thread can help:

Or:

I’ve tried those solutions, and while they do work, the frametime is not stable, camera.inertia goes crazy, VR is not smooth. And overall is not as displaying it as if it’s native 60Hz.

I am wondering if there is a way to have the limit somewhere deeper in the code, rather than just manually timing the render calls.

It’s a bit weird that a game engine doesn’t have a native FPS limiter. Considering these new gen of phones with high rate screens…

cc @PolygonalSun as it is not the first time we have this feedback I believe ?

Yeah, I know that we have an issue to track updating how inertia and frame rate is handled. It’s been one that I’ve wanted to tackle for a long time but haven’t had the cycles to do so.

PR with modifications to camera movement based off of time, instead of frame rate: Camera: Modify Camera Movement to work off of time, instead of frame rate by PolygonalSun · Pull Request #14482 · BabylonJS/Babylon.js (github.com)

1 Like

@PolygonalSun
Any news on the camera.inertia fps? Or is it abandoned?
It worked so well :hugs:

Yeah, sorry about the delay, I was out for the past week. We had to temporarily rollback the change due to an issue with some physics code. My plan is to get that fixed and try to push it back into the codebase sometime this week.

2 Likes

Awesome news, can’t wait.

One thing I noticed, when walking diagonally the movement speed is doubled instead of normalized.

Maybe you spot the “bug” along the way.

1 Like