Bumpmapping != Normalmapping ???

Today i read, that Deus Ex 2 uses Normalmapping, but Doom 3 uses Bumpmapping. Now i´d like to know: Where is the difference?

Sorry if it is not OpenGL related, but i was curious, if i got something wrong about it.

Jan.

AFAIK, they’re exactly the same thing. Doom 3’s bump-mapping requires a normal map, after all.

dot3 bumpmapping is normalmapping using a bumpy looking normalmap. you can use normalmapping for any kind of per pixel lighting. if you want, take normalmapping as a generalization of dot3 bumpmapping.

regards,
jan

Actually you could perform bump-mapping without normalmapping thanks to fragment programs. But today most techniques use normalmapping.

They are not the same thing, exactly. Normal maps are one technique used to implement bump mapping. Bump mapping is just using a texture to add the appearance of geometric detail; normal maps are one way to encode the geometric detail. Heightmaps are another popular way, though they usually get turned into normal maps by the code.

Well if this is your definition then Doom3 definitely performs normal mapping (not that I agree with all these definitions). Doom3 has a detail preserving normal map in all cases and a detail adding height map in some cases and they are combined to a single normal map representation used for DOT3 style rasterization.

It’s all bumpmapping. Feel free to describe normal mapping as the application of a type of texture (in this case geometry preserving normal maps AFAIK), but it is still bump mapping, albeit a subset.

[This message has been edited by dorbie (edited 01-21-2003).]

>>>bump mapping. Bump mapping is just using a texture to add the appearance of geometric detail; <<<<

I think you are describing “detail map”.
If you say I used a “detail map” then people automatically know you are dealing with 2 textures : 1 low resolution non repeating base texture and 1 low resolution but repeating “detail texture”.

Even games have this, so more or less this one is official.

He said to add geometric detail, not texture detail.

Detail texture seems unrelated to this, what he’s describing is the use of bump maps to reconstruct lost geometric detail through polygonal simplification. That only requires a single texture. The use of of 2 textures in doom 3 is only to add detail not modelled geometrically and is really a production/model creation issue, the height maps are really just a modelling supplement and they all end up in the same single texture of one resolution.

As for normal maps not being bump maps because they store a vector representation (as was suggested earlier in this thread) I believe Blinn’s original bump mapping in Siggraph 1978 paper “Simulation of Wrinkled Surfaces”, used a vector representation for the tangent space surface normal direction and describes the entire process of tangent binormal coordinate frame transformation used today. I don’t have the paper and it’s been a while since I’ve seen it.

>>>>>Detail texture seems unrelated to this, what he’s describing is the use of bump maps to reconstruct lost geometric detail through polygonal simplification. <<<<<

what do you mean by “reconstruct”. I don’t think you mean recreate the polygons because what would be the point of simplifying in the first place.

The is the first page I had read when I first heard of bump mapping
http://freespace.virgin.net/hugo.elias/graphics/x_polybm.htm

I think you can use such a texture as is, it is basically a detail texture.
You can also use it to generate a normal map.

bump maps are typically grey scale. Correct?
detail textures … I don’t know but the ones I’ve seen are greysale.
normal map have the r g b representing x y z of the normals. Correct?

Some people define a detail texture as a small texture that you repeat over a polygon and it is suppose to simulate roughness. What are your definitions?

As far as I know, the term “bump map” doesn’t imply any type of storage… it could be a normal map (which is chalky blue with color streaks) or it could be a heightmap (which is grayscale). Normal maps encode the bump information as the surface normal encoded in RGB (you are correct there), and heightmaps encode the bump information as the surface height.

Detail maps tend to be grayscale as well, but that is not a restriction on them. It is just that grayscale images tend to work best for detail images… you want a texture that adds a lot of detail up close without obviously repeating and that fades into obscurity after a short distance.

>>>>> normal map have the r g b representing x y z of the normals. Correct? <<<<<
Correct. The thing being, rgb are very often encoded into 8bits (from 0 to 255), so we use to say the xyz vectors are “compressed” since normals lie in the [-1,+1] range, not the [0,255].

>>>>> Some people define a detail texture as a small texture that you repeat over a polygon and it is suppose to simulate roughness. What are your definitions? <<<<<
The same. This sentence describes pretty well every point of the detail texture concept : small, repeat, simulate, roughness.

Could we have some more pedantic detail, my brain isn’t dribbling out my ears yet.

[This message has been edited by dorbie (edited 01-24-2003).]

v-man, the dorbie definition about detail preserving normal maps (the technique used in doom3) is quite correct, the technique, was introduced in 98 in the following paper:

P. Cignoni, C. Montani, C. Rocchini, and R. Scopigno,
A general method for preserving attribute values on simplified meshes.
In Proc. Visualization '98, pages 59-66, 1998.

the pdf of the paper is well available on the net (try google with the title) and the technique is well explained here: http://vcg.iei.pi.cnr.it/colorByTexture.html

There’s also this Siggraph '98 paper out of Chapel Hill:
http://www.cs.unc.edu/~olano/papers/aps/APSlossy.pdf

For any paper to be published the concepts and work need to be developed a significant time before publication, true in both cases I expect.

[This message has been edited by dorbie (edited 01-25-2003).]

Yes, dorbie, the siggraph98 paper that you refer is closely related, like also the following one:

Fitting Smooth Surfaces to Dense Polygon Meshes
Venkat Krishnamurthy and Marc Levoy,
Proc. SIGGRAPH '96. http://graphics.stanford.edu/papers/surfacefitting/

That probably was the first to propose the use of bump map for recovering detail of highly complex meshes (even if in this case the presented technique aimed to nurbs surfaces)

The technique used in Olano’s paper was not quite general: it proposed an ad hoc complex and constrained simplification techniques to build the simplified mesh, while the Cignoni’s technique uses two mesh representation (low-res and high-res) that are totally unrelated. This is much better becouse usually hand-made low-poly models are much (MUCH!) better than models automatically built by simplification algorithms.

In the documentation for Maya, I think you can read that a bumpmap contains information about the distance from the surface to the point that is rendered, if I remember correctly… that is why a bumpmap only is grayscale and a normalmap is RGB, because the bumpmap works as an offset in the directions of the normal (or the normal map if you like).

Ok, here’s my thoughts on it.

Technically, video cards work on normal maps; the RGB information of a texture encodes the compressed normal. Bump-mapping is generally done from converting a grayscale heightmap to a normal map by differencing the heightmap values.

I fail to see why this thread is generating so much discussion; after all, video cards don’t care if you’re using bump or normal maps, from their point of view it’s the same.

Y.