Bloom (shader effect)
Bloom (sometimes referred to as light bloom or glow) is a computer graphics effect used in video games, demos and high dynamic range rendering (HDR) to reproduce an imaging artifact of real-world cameras. The effect produces fringes (or feathers) of light extending from the borders of bright areas in an image, contributing to the illusion of an extremely bright light overwhelming the camera or eye capturing the scene.
The physical basis of bloom is that, in the real world, lenses can never focus perfectly. Even a perfect lens will convolve the incoming image with an Airy disc (the diffraction pattern produced by passing a point light source through a circular aperture). Under normal circumstances, these imperfections are not noticeable, but an intensely bright light source will cause the imperfections to become visible. As a result, the image of the bright light appears to bleed beyond its natural borders.
The Airy disc function falls off very quickly but has very wide tails (actually, infinitely wide tails). As long as the brightness of adjacent parts of the image are roughly in the same range, the effect of the blurring caused by the Airy disc is not particularly noticeable; but in parts of the image where very bright parts are adjacent to relatively darker parts, the tails of the Airy disc become visible, and can extend far beyond the extent of the bright part of the image.
In HDR images, the effect can be re-produced by convolving the image with a windowed kernel of an Airy disc (for very good lenses), or by applying Gaussian blur (to simulate the effect of a less perfect lens), before converting the image to fixed-range pixels. The effect cannot be fully reproduced in non-HDR imaging systems, because the amount of bleed depends on how bright the bright part of the image is.
As an example, when a picture is taken indoors, the brightness of outdoor objects seen through a window may be 70 or 80 times brighter than objects inside the room. If exposure levels are set for objects inside the room, the bright image of the windows will bleed past the window frames when convolved with the Airy disc of the camera being used to produce the image.
Current generation gaming systems are able to render 3D graphics using floating point frame buffers, in order to produce HDR images. To produce the bloom effect, the HDR images in the frame buffer are convolved with a convolution kernel in a post-processing step, before converting to RGB space. The convolution step usually requires the use of a large gaussian kernel that is not practical for realtime graphics, causing the programmers to use approximation methods.
Use in games
Outcast was one of the earliest games to use the bloom effect, and later 'Ico'. Bloom was popularized within the game development community in 2004, when an article on the technique was published by the authors of Tron 2.0. Bloom lighting has been used in many games, modifications, and game engines such as Quake Live, Cube 2: Sauerbraten and the Spring game engine. The effect is popular in current generation games, and is used heavily in PC, Xbox 360 and PlayStation 3 games as well as Nintendo GameCube and Wii. Popular browser based games such as the MMORPG RuneScape make use of the bloom effect as well.
- Afterimage (shader effect), sometimes used to enhance the bloom effect.
- Chromatic aberration
- Tone mapping
- "Airy disk". svi.nl. Retrieved 2007-05-03.
- "How to do good bloom for HDR rendering". Harry Kalogirou. Retrieved 2006-05-20.
- "Bittersweet Symphony". 1up.com. Retrieved 2006-07-27.
- "Real-Time Glow". gamasutra.com. Retrieved 2012-11-07.