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