This limitation can be overcome by techniques including displacement mapping where bumps are applied to the surface or using an isosurface.
Since the normal is specified directly instead of derived from a height map this method usually leads to more predictable results.
[3] 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.
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
. 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 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.
Example of a realtime fake bump mapping.
From left:
surface bitmap, intentionally blurry,
source of light bitmap,
bump mapping effect with light source orbiting
trajectory.