Temporal Filtering (aka Checkerboard Rendering)

Running Roblox on a toaster low-spec PC makes things difficult.

Temporal Filtering can help. Let’s say your screen resolution is 5x4. Of course it isn’t actually that small, this is just for explanation.

You’re looking at a white wall. The game renders only half the pixels in a checkerboard pattern, like so:

image

Then, it renders the next frame. This time, the pattern is inverted like so:

image

But what about the blank spots? Well, we can use the information from the last frame to fill that in!

image

This can cut rendering time in half.

7 Likes

That sounds like it would look terrible. Does anyone actually do this?

I’m not sure this would be beneficial for that many Roblox players, especially not the ones playing on less performant PCs. From what I understand, checkerboarded rendering can produce a lot of visual noise when you render to a lower resolution. If the camera is moving fast this noise also gets way worse.

If you’re looking for magical performance improvements for low-spec PCs, this isn’t it. If you have a faster framerate or higher resolution the artifacts are a lot less noticable, but since we’re already talking potato PCs and/or mobile devices here…

The XBox One X and the PS4 Pro both use it when rendering some games in 4k.
Ubisoft has also used it for some PC games, Watch Dogs 2 has it on by default last time I checked.

1 Like

I think we should let the client engineers worry about how to best save performance and instead focus on suggesting the functionality we need. Temporal filtering will not enable developers to do anything they can’t already do, it’s just relevant for performance it seems.

2 Likes

AFAIK, checkerboard rendering only renders one half of the scene (in a checkerboard pattern) and extrapolates the missing spots’ colors from the data available around them, and not by getting information from the last frame. That would lead to more artifacts than this method already has.

I personally don’t support this. Even Ubisoft is moving on to some other technologies such as dynamic resolutions (a.k.a. the game changing its resolution during peak times to maintain a consistent framerate).

This is not true, Ubisoft uses data from the previous frame to fill in the information.

As buildthomas said - this is feature requests - not a place to suggest how Roblox run their internal client.
Roblox has a large staff of dedicated and experienced senior engineers who don’t need us to do their jobs for them.

4 Likes