Game Development Reference
Our solution is simple to implement and can work in commodity hardware,
like game consoles. In particular, the memory architecture of the Xbox 360 game
console provides a good example of the importance of our method in practice.
The Xbox 360 provides 10 MB of extremely fast embedded memory (EDRAM)
for the storage of the framebuffer. Every buffer used for rendering, including
the intermediate buffers in deferred pipelines and the Z-buffer, should fit in this
space. To this end, our technique can be valuable in order to fit more data in
this fast memory. Bandwidth savings are also extremely important in mobile
platforms, where memory accesses will drain the battery.
Our method was largely influenced by the way most digital cameras capture
color images, where a mosaic of color filters is arranged in front of a single layer of
monochromatic photo receptors, forming the so-called Bayer pattern [Bayer 76].
In fact, in our method we have also tried to use the Bayer pattern, instead of
down to a single channel, but in our experiments we were not satisfied by the
robustness and the worst-case quality of this rather aggressive encoding format.
A rather obvious limitation of our method is that it can only be used to store
intermediate results and not the final device framebuffer, because the hardware is
not aware of our custom format. However, this does not limit the usefulness of our
method, since most modern real-time rendering pipelines use many intermediate
render buffers before writing to the back buffer.
In the supplemental material of this article, the interested reader can find a
complete proof-of-concept implementation of our method in WebGL. Since the
method consists of a few lines of code, it should be rather trivial to integrate it
on any existing rendering pipeline.
We would like to thank Stephen Hill (Ubisoft Montreal) for his helpful and very
insightful comments on the technique. Dimitrios Christopoulos (FHW) was kind
enough to proofread our chapter and suggest various improvements. The Citadel
dataset, used in many figures of this chapter, is from the publicly available Unreal
Development Kit (UDK) from Epic Games. This work was not endorsed by Epic
Games. We would also like to thank Emil Persson for providing the source of his
HDR demo with a permissive license, allowing very quick testing for our method.
[Bayer 76] Bryce Bayer. “Color Imaging Array.” United States Patent 3971065,
[Malvar and Sullivan 03] Henrique Malvar and Gary Sullivan. “YCoCg-R: A
Color Space with RGB Reversibility and Low Dynamic Range.” White paper,