bzonelogo.jpg (13536 bytes)
Bump Mapping
22th of May, 1998
By Kristof Beets
 
Bump Mapping is one of the new features that every piece of 3D hardware out there wants to support. But how are they doing it and at what cost. Is Voodoo2 in the Donut Demo really doing Bump Mapping "for free" as the Voodoo2 fans claim or is there a CPU and fill rate penalty and further how correct are those implementations ?  

What is Bump Mapping ?  

Bump Mapping is a technique to give an object more detail without adding more polygons. Its a way of simulating small bumps on the surface by changing the way the light effects are calculated. A bump will usually have one side that is bright from a light source while the other side is dark because it is on the shadow side. Bump Mapping modifies the light calculations to make this happen. So its important to know that Bump Mapping does not change the surface of the object it only changes the way light is reflected by the surface. There are various ways to create these light effects and they are described in the next paragraph. 

Different implementations ?  

Comparison ?  

There are 2 factors of Bump Mapping that influence rendering speed : CPU dependency and Fill Rate demand. We will compare all techniques based on these 2 important factors.  

Pre Calculated Bump Mapping uses very little resources and is possible on all hardware. You only need to be able to combine the pre-calculated lightmap with the base texture. No new texture map have to be uploaded. It is possible to even use only one texture map. Disadvantage is the fact that this trick only works for almost static scenes resulting in very unspectacular implementation. 

Perturbed Environment Bump Mapping is a very advanced way to do Bump Mapping it can handle both the light effects and can also handle bump mapping combined with environment mapping. Unfortunately no hardware supports the special texture lookups needed. Disadvantage is the fact that for every frame a new environment map may be needed due to moving lights, some of this can be done by UV perturbations (shifting of the map). Still there is no evidence of how good this looks, we will have to wait for the MicroSoft DirectX 6 software renderer to try this out. 

Perturbed Bump Mapping is a three pass technique. You first need to combine the bump map and its shifted version. The result is a lightmap that needs to be combined with the texture map in the third pass. On Voodoo2 hardware this technique halves the fill rate so it is not for free. The combination of the bump maps can be done in one pass using the two texelfx processors but the hardware still has to combine the lightmap with a texture map and this has to be done in a second pass. This technique also needs to CPU to calculate the shift for the bump map. For correct 3D effects the shift of the texture coordinates has to be recalculated for every polygon and this can put quite a bit of strain on the CPU. Some bump effects do not look right with this technique. 

Perturbed Normal Bump Mapping is very close to the real thing. All sorts of bump effects are possible and very easy to achieve because a height map is used as input. PVRSG supports this technique in hardware resulting in almost no extra CPU use. Fill Rate is also hardly affected. 

 
© 1998 PVR-NET - PowerVR Power Site - All Rights Reserved