Bump Mapping Techniques

I am trying to decide which bump mapping technique to implement in my code. I am using GLSL, and will have at least an NV4X available. (I am fortunate in that I can specify the hardware my app will run on, and it can always be the latest greatest hw).

One of my desires is to be able to run as many different techniques using the same data input. For example, if I understand parallax mapping, I need a normal map which has the height stored in the alpha component. That is (r,g,b,a) = (nx, ny, nz, h). If I understand traditional bump mapping, I need only the normal map… So both traditional bump mapping and parallax mapping could use this same texture.

Can anyone point me to a comparison, perhaps, of the various bump, parallax, and relief mapping tecniques. I am interested in finding out what the strengths/weaknesses of various techniques are, relative performance of various techniques, and what data is required as input, i.e. normals, tangents, heights etc.



There we fine demo from Humus (Game Engine) where you can at run time see how different bump stuff works. (offset, selfshadow, light power attenuation). But it would be fine to make bump
using light from cube map. This may be attractive for multiple dynamic lights - updating cude for the really cheap. Correct if I wrong.

I’ve also took a look at those things recently.
It happens there’s a very nice demo on ATi SDK which does parallax occlusion mapping (but not steep parallax mapping).
Also runs on NV4x although it’s quite slow in my case.

All the techniques require a vertex-local space (tbn) and a bumpmap. Parallax mapping also takes a height map.

I’m still experimenting it so I cannot say more (I’m also trying out various parameters and optimizations such as using the VS to compute number of steps) but I would say standard DOT3 won’t die easily…
POM seems to require massive branching capabilities. You know why ATi pushed it. Some pixels do take extreme paths on POM and this kills GeForces…
I find POM to be very convincing but for the cost it does have on current hardware I find it useless. Do everyone tried it out on X800GTO2?

Relief mapping? It never convinced me. Last time I tried it on NV3x: it was quite slow and not enough good looking. I know there have been several improvements but ATi says it’s a weird trick. I would rather put my efforts at POM.

So, here’s my list of techniques from chap-n-dirty to best looking:
1- DOT3
2- Parallax Mapping with offset limiting: pretty good quality increment at low cost. This is already very usable.
3- Steep parallax mapping
4- Parallax Occlusion Mapping

I’m still not sure about (3) and (4). POM seems to provide much higher quality from what I’ve saw but I need to test more on my own.


This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.