thumb|right|300px|A sphere without bump mapping (left). A bump map to be applied to the sphere (middle). The sphere with the bump map applied (right) appears to have a mottled surface resembling an [[orange (fruit)|orange. Bump maps achieve this effect by changing how an illuminated surface reacts to light, without modifying the size or shape of the surface.]]

Bump mapping is a texture mapping technique in computer graphics for simulating bumps and wrinkles on the surface of an object. This is achieved by perturbing the surface normals of the object and using the perturbed normal during lighting calculations. The result is an apparently bumpy surface rather than a smooth surface, although the surface of the underlying object is not changed. Bump mapping was introduced by James Blinn in 1978.

Principles

thumb|right|400px|Bump mapping is limited in that it does not modify the shape of the underlying object. On the left, a mathematical function defining a bump map simulates a crumbling surface on a sphere, but the object's outline and shadow remain those of a perfect sphere. On the right, the same function is used to modify the surface of a sphere by generating an [[isosurface. This models a sphere with a bumpy surface with the result that both its outline and its shadow are rendered realistically.]]

Bump mapping is a technique in computer graphics to make a rendered surface look more realistic by simulating small displacements of the surface. However, unlike displacement mapping, the surface geometry is not modified. Instead only the surface normal is modified as if the surface had been displaced. The modified surface normal is then used for lighting calculations (using, for example, the Phong reflection model) giving the appearance of detail instead of a smooth surface.

Bump mapping is much faster and consumes fewer resources for the same level of detail compared to displacement mapping because the geometry remains unchanged.

There are also extensions which modify other surface features in addition to increasing the sense of depth. Parallax mapping and horizon mapping are two such extensions.

The primary limitation with bump mapping is that it perturbs only the surface normals without changing the underlying surface itself. Silhouettes and shadows therefore remain unaffected, which is especially noticeable for larger simulated displacements. This limitation can be overcome by techniques including displacement mapping where bumps are applied to the surface or using an isosurface.

Methods

There are two primary methods to perform bump mapping. The first uses a height map for simulating the surface displacement yielding the modified normal. This is the method invented by Blinn

Realtime bump mapping techniques

[[File:FakeBump2D-animation.gif|thumb|right|400px|Example of a realtime fake bump mapping.<br> From left:

<ol>

<li> surface bitmap, intentionally blurry,</li>

<li> source of light bitmap,</li>

<li> bump mapping effect with light source orbiting <math>1=x^2+y^2/x^2</math> trajectory.</li>

</ol>

]]

Realtime 3D graphics programmers often use variations of the technique in order to simulate bump mapping at a lower computational cost.

One typical way was to use a fixed geometry, which allows one to use the heightmap surface normal almost directly. Combined with a precomputed lookup table for the lighting calculations, the method could be implemented with a very simple and fast loop, allowing for a full-screen effect. This method was a common visual effect when bump mapping was first introduced.

See also

  • Distance field
  • Offset surface
  • Greeble
  • Normal mapping

References

  • Bump shading for volume textures, Max, N.L., Becker, B.G., Computer Graphics and Applications, IEEE, Jul 1994, Volume 14, Issue 4, pages 18 – 20, ISSN 0272-1716
  • Simple creating vectors per pixel of a grayscale for a bump map to work and more
  • Bump Mapping example (Java applet)