Bloom is a shader effect used to simulate the real appearance of very bright light. While it was once considered too hardware intensive for real-time gaming, modern systems with HDR rendering make frequent use of it. So frequent, in fact, that the effect has become synonymous with “next-gen” graphics. Today I’d like to take a closer look at bloom, and address what I feel is an unfortunate trend in its use.
Bloom aims to recreate the optical effect known as the Airy disc. In the real world, when light passes through a circular aperture such as your eye it diffracts, causing flaws that limit the maximum resolution of even a perfect lens. These defects are negligible for normal incoming light, but very bright sources can appear to bleed into surrounding darker objects.
In graphics processing, this effect is simulated by blurring the bright parts of the frame buffer image in post-processing. In simpler terms, the bloom effect is only applied once the objects (3D vectors) have been converted into an image (pixels), a process known as rasterisation. A mathematical function (usually Gaussian blur) is then applied to the bright parts of the image, which blends the brightness into the surrounding pixels. Not only does this simulate the Airy disc, but it often has the added benefit of smoothing out aliasing artifacts (“jaggies”) and particle effects.
While it was a staple of late ninteties tech demos, Ico, released for the Playstation 2 in 2001, was one of the first video games to use a bloom filter in real time. The effect helped give the game’s ruined castle a distinct sun-washed look, an aesthetic that was repeated in its prequel Shadow of the Colossus four years later.
Ico was ahead of its time in many ways, and bloom did not see common use on consoles until the seventh generation began in 2005. The Xbox 360 and Playstation 3 could render graphics with high dynamic range, meaning a larger contrast between very bright and very dark objects (high-end PCs had this capability several years ealier.) Under standard lighting white was the brightest possible frame buffer value, but with HDRR the graphics processor could distinguish between a white t-shirt and the white of the sun. Combined with the massive increase in hardware capability, it suddenly became trivial to add a bloom filter to games and, unfortunately, that’s exactly what happened.
To properly illustrate my concern about the proliferation of bloom, I’d like to show you some examples of bloom gone wrong:
Need For Speed: Most Wanted: This must be America, because the streets are paved with gold!
Call of Duty 3: A relatively benign example. Everything looks fine beneath the horizon, but oh my the sky is on fire!
The Legend of Zelda: Twilight Princess: The reflecting waterfall might be forgivable, but the flowers?
The Elder Scrolls IV: Oblivion: The ruins in the background are an indistinct white mess. [full size]
Halo 3: The weapon and explosion effects in Halo 3 use a whole lot of bloom.
Heavenly Sword and Uncharted: Drake’s Fortune: Notice how the white shirts bleed into the environment around them.
Two Worlds: The nefarious duo snow and lightning have turned everyone and everything white. [full size]
The Legend of Spyro: Dawn of the Dragon: Would you believe that this screenshot inspired this entire post? What a disaster.
I’m not trying to suggest that modern graphics are insufficiently photorealistic. Quite the opposite in fact; it’s the drive for realism that’s pushing developers to add bloom to as many games as they possibly can. However, as the screenshots above demonstrate, too much bloom is as detrimental to realism as none at all. What’s worse is that the fine detail that high resolution gaming can provide is being lost in a sea of brightness. Like in Ico, using highly noticeable amounts of bloom should be an aesthetic choice, and not broadly applied to all games.