Bump mapping

Bump mapping

'Bump mapping' is a computer graphics technique where at each pixel, a perturbation to the surface normal of the object being rendered is looked up in a heightmap and applied before the illumination calculation is done (see, for instance, Phong shading). The result is a richer, more detailed surface representation that more closely resembles the details inherent in the natural world. Normal mapping is the most commonly used bump mapping technique, but there are other alternatives, such as parallax mapping.

The difference between displacement mapping and bump mapping is evident in the example images; in bump mapping, the normal alone is perturbed, not the geometry itself. This leads to artifacts in the silhouette of the object (the sphere still has a circular silhouette).

Bump mapping basics

Bump mapping is a computer graphics technique that aims to make a rendered surface look more realistic by modelling the interaction of a bumpy surface texture with lights in the environment. Bricks present a common bump mapped texture. Bump mapping does this by changing the brightness of the pixels on the surface in response to a heightmap that is specified for each surface.

When rendering a 3D scene, the brightness and colour of the pixels on the screen is determined by the interaction of the specified 3D model with lights in the scene. After the geometry calculation determines that an object is visible and should be displayed, trigonometry is used to calculate the 'geometric' surface normal of the object, defined as a vector at each pixel position on the object.

In the absence of bump mapping the geometric surface normal then defines how strongly the object interacts with light coming from a given direction using Phong shading or a similar lighting algorithm. In essence, light travelling perpendicular to the surface interacts with it most strongly while light parallel to the surface does not interact with it at all and the surface appears black. After the initial geometry calculations, a coloured texture is often applied to the model to make the object appear more realistic but this has no effect on the bump mapping process.

After texturing, a calculation is performed at each pixel on the object's surface:
# the renderer looks up the heightmap corresponding to that position on the surface,
# then uses further trigonometry to calculate the surface normal of the "heightmap",
# adds the bump map surface normal from step 2 to the geometric surface normal (also known as "perturbing" the surface normal) so that the normal points in a new direction
# calculates the interaction of the new 'bumpy' surface with lights in the scene using, for example, Phong shading

The result is a surface that appears to have real depth, is more detailed and appears more similar to objects in the real world. Bump mapping also ensures that the surface appearance changes as lights in the scene move around, for example if the viewer is carrying a light source. Normal mapping is the most commonly used bump mapping technique, but there are other alternatives, such as parallax mapping.

The difference between displacement mapping, also known as 'true' bump mapping and 'fake' or '2D' bump mapping, which is more common and is often just called 'bump mapping' (see below), is that in fake bump mapping the normal alone is perturbed, not the geometry. In this case, the silhouette of the object is still defined by the underlying, often simple, geometry. In 'true' bump mapping the bumps are applied to the geometry, leading to a 'bumpy' silhouette. Fake bump mapping is computationally efficient and can be performed in real-time by 3D accelerator cards while true bump mapping is generally reserved for off-line (non-realtime) ray-traced images.

For the purposes of rendering in real-time bump mapping is often referred to as a 'pass', as in "multi-pass rendering" and can be implemented as multiple passes (often three or four) to reduce the number of trigonometric calculations that are required.

Fake bump mapping

Programmers of 3D graphics sometimes use a computationally lower quality, fake bump mapping technique in order to simulate bump mapping. One such method uses texel index alteration instead of altering surface normals, often used for '2D' bump mapping. As of GeForce 2 class card this technique is implemented in graphics accelerator hardware.

Full-screen 2D fake bump mapping, which could be easily implemented with a very simple and fast rendering loop, was a common visual effect when bump-mapping was first introduced.

Real bump mapping

Real bump mapping in the terms of height mapping means to calculate a height field's gradient. The pointers are compared to the light's point and span and then changes per shading fragment in the light's rasterization. If the point is more at the light, then it’s brighter, the point facing further away from the light actually get darker more quickly. If low resolution lights are used like a low pixel non-filtered specular from an earlier shader model, it can see how it works up close, looking like a sweep of animation.

On a normal map instead of false vectors calculated per-pixel through small coding it's stored as a certain color in the map. Then the same happens on the light's point and X and Y span. Height mapping doesn't replace the normal and builds upon fake ones from the gradient calculations. Height mapping is told to not contain real information in every pixel, it relies on its neighbors. Normal mapping is usually told to contain information in each pixel to where a pixel may cost an operation or more, a reason cards carry many operations.

Environment Mapped Bump Mapping

The Matrox G400 chip supports, in hardware, a texture-based surface detailing method called Environment Mapped Bump Mapping (EMBM). It was originally developed by BitBoys Oy and licensed to Matrox. EMBM was first introduced in DirectX 6.0.

The Radeon 7200 also includes hardware support for EMBM, which was demonstrated in the tech demo "Radeon's Ark". However, EMBM was not supported by other graphics chips such as NVIDIA's GeForce 256 through GeForce 2, which only supported the simpler Dot-3 BM. Due to this lack of industry-wide support, and its toll on the limited graphics hardware of the time, EMBM only saw limited use during G400's time. Only a few games supported the feature, such as Dungeon Keeper 2 and .

EMBM initially required specialized hardware within the chip for its calculations, such as the Matrox G400 or Radeon 7200. It could also be rendered by the programmable pixel shaders of later DirectX 8.0 accelerators like the GeForce 3 and Radeon 8500.

References

* Blinn, James F. "Simulation of Wrinkled Surfaces", Computer Graphics, Vol. 12 (3), pp. 286-292 SIGGRAPH-ACM (August 1978)
* Hoejengaard, Rasmus, Rasmus Højengaard Interview in Play Magazine, as translated at http://www.hitmanforum.com/show.php?id=28819&catid=36

ee also

* Texture mapping
* Normal mapping
* Parallax mapping
* Displacement mapping
* Relief Texture Mapping

External links

* http://www.blacksmith-studios.dk/projects/downloads/bumpmapping_using_cg.php Bump Mapping tutorial using CG and C++
*http://freespace.virgin.net/hugo.elias/graphics/x_polybm.htm (shows a simple creating vectors per pixel of a grayscale for a bump map to work and more)
* http://www.neilwallis.com/java/bump2.htm Bump Mapping example (Java applet)


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Bump mapping — Saltar a navegación, búsqueda Bump mapping es una técnica de gráficos computacionales 3D que consiste en dar un aspecto rugoso a las superficies de los objetos. Se emplea para dar un efecto de relieve en las superficies de los objeto. Esta… …   Wikipedia Español

  • Bump Mapping —   [dt. »Beulenkarte«], ein Verfahren zur Darstellung von Oberflächenstrukturen an dreidimensionalen Objekten. Durch den Effekt werden beim Rendering Schattierungen durch kleine Helligkeitsabstufungen auf der Oberfläche erzeugt, die einen Eindruck …   Universal-Lexikon

  • Bump-Mapping — Bumpmapping, auch Reliefzuordnung, ist eine Technik zur Darstellung von extrem detailreichen Objekten, ohne die Geometriekomplexität des Objekts zu erhöhen, die vor allem in 3D Visualisierungsprogrammen zum Einsatz kommt. Der Trick dabei ist,… …   Deutsch Wikipedia

  • Bump Mapping — Bumpmapping, auch Reliefzuordnung, ist eine Technik zur Darstellung von extrem detailreichen Objekten, ohne die Geometriekomplexität des Objekts zu erhöhen, die vor allem in 3D Visualisierungsprogrammen zum Einsatz kommt. Der Trick dabei ist,… …   Deutsch Wikipedia

  • Bump mapping — Bumpmapping, auch Reliefzuordnung, ist eine Technik zur Darstellung von extrem detailreichen Objekten, ohne die Geometriekomplexität des Objekts zu erhöhen, die vor allem in 3D Visualisierungsprogrammen zum Einsatz kommt. Der Trick dabei ist,… …   Deutsch Wikipedia

  • Bump-mapping — Placage de relief Le placage de relief (en anglais Bump mapping) est un terme informatique qui désigne la technique utilisée, par exemple dans les jeux vidéo, et qui sert à donner du relief aux objets, textures ou à toutes autres choses en 2D ou… …   Wikipédia en Français

  • Bump mapping — Placage de relief Le placage de relief (en anglais Bump mapping) est un terme informatique qui désigne la technique utilisée, par exemple dans les jeux vidéo, et qui sert à donner du relief aux objets, textures ou à toutes autres choses en 2D ou… …   Wikipédia en Français

  • Bump Mapping — …   Википедия

  • bump mapping — noun A technique where a perturbation to the surface normal of the object being rendered is applied to each pixel, based on a texture map, prior to calculating the illumination, so as to produce a richer, more detailed surface representation …   Wiktionary

  • bump mapping — ● ►en loc. m. ►GRAPH Technique d imagerie de synthèse consistant à plaquer une image bitmap sur un objet pour lui donner une certaine texture. C est assez rudimentaire, mais efficace quand même …   Dictionnaire d'informatique francophone

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”