I remember an article that speak about one bump-mapping method.
Something about compress the normal map into an index map and a palette of normals (say 256 normals)
With this, we compute bump values only for 256 normals and cache them in a table of 256 “light/normal contribution” colors.
After, we can multiply the color of the final pixel with this “contribution” …
So, the multi-index idea can too handle bumpmapping for a minimum of computing efforts (only 256 bumpmap illuminations to compute per light, that can to be executed very fast by the GPU)
This give me somes propositions for the OPENGL API :
for help a little the bumpmap pass …
And this can too certainly help for object selection
And certainly an hardware support for storing the normals and pointers exactely in the same way used to access color and depth values (cf. color and depth buffers) …