🐧 Ciel, Yiwei Gong

Checkerboard Rendering

Wed Jul 18, 2018

Checkerboard rendering, also known as checkerboarding for short, is a 3D computer graphics rendering technique, intended primarily to assist graphics processing units with rendering images at high resolutions. The latest console PS4 Pro uses checkerboard rendering to improve the graphics resolution from 2K to 4K. Here is a very simple experiment that shows how checkerboard rendering improves the graphics quality.

Se let’s assume we are working on a 3A game which supposes to have a 720p resolution output. It does not sound like a 3A game, but we just use 720p as an example :). Our lovely console has performance limitation and is only be able to render half the size of the texture - a 500p full texture - in the GPU. The simplest way is to resize all the resources to 500p and when the user outputs the game to a 720p screen, let it scale up to 720p again.

The original texture in 720p

Scale the texture to 500p and scale up to 720p again

Please see the textures in full resolution

But if we store and render the texture in a special way, we might be able to improve the quality of the final output data. As we know, the console is only able to render half the size of the texture, so we removed half amount of pixels from the original texture in the way shown below.

Now we have a half-sized textured.

Checkerboard mask

So each empty pixel is surrounded by 4 color pixels. And when we are rendering this texture, we assume the color of the missing pixel is the average color of its surrounding pixels. This can be implemented in the shader, which allows GPU to process them parallelly without any overhead. In this case, we will have a full-size 720p rendered output from a half-sized texture.

The real implementation of PS4 Pro rendering engine is much more complicated than this example. And we can tell from this example, the checkerboard rendering is slightly better than the scaling method. But it also brings some anti-aliasing issues, which requires further improvement and optimization.

Checkerboard rendering - using average color as the interpolation method

Checkerboard rendering is widely used in console simulators. To play GBA game on a full HD screen, the simulator usually performs a checkerboard interpolation and increase the graphics to a higher resolution. On the other hand, the average is not always the best interpolation method to use. We are able to improve the quality by more training data and machine learning techniques.