Normal vs. Bump. Always better to use normal?


#1

Is there any reason to use bump maps if you can use a normal map? Would you ever want to use both?


#2

I believe bump is for actual displacement and normal is for fine surface detail.

I’m not entirely sure but the way I roll is;

Normal maps - Fine surface detail.

Bump maps - surface displacement and large surface details.


#3

bumps aren’t really displacement… that’s what displacements are for. Bumps are still faked “detail”.


#4

Normal maps, to the best of my knowledge, are only really used in the game industry. I haven’t really heard of them being used elsewhere.

Ultimately, although using different methods, they both result in the same visual effect of creating the illusion of detail that isn’t actually there. Bump maps are useful for creating the illusion of superficial surface textural details while normal maps (I hope I have my terminology correct here) perturb the surface through shading to create the illusion of a more detailed mesh.

A bump map is not a displacement map.

I’m sure someone more clued up than me can clarify this though.


#5

Bump maps work more like a virtual heightmap where its faking directionless height changes in the shading of the surface. Normal maps aren’t height maps but “direction” maps that add or subtract onto the real normal of the surface, sort of like a bump map, but you describe the direction rather than the height.

Parallax mapping also has its uses, and is almost a combination in effect of the previous 2 methods.


#6

Games use normal maps, most of the time exclusively. In vfx usually a combination is used… either normal+bump, displacement+bump, or all three at the same time.


#7

I’ve used normal maps in film before, although not quite for what you’d expect. As an example, say I have a flat plane that’s always facing the camera as a particle sprite (say it’s a gaseous cloud sorta looking thing). I’d like for the particle to receive lighting from the scene lights, but you’ll see the wrong lighting if it stays a plane. So I bake a spherical normal map into the plane. Now when it comes to lighting, the plane will illuminate as though it were a sphere, even though the actual geometry itself remains a flat plane.

  • Neil

#8

Hmm, quite the opposite. At least in 3ds max you use normal map as a surface curvative and later you can add extra bump on top of that, like say you have folds which are done with normal map and bump over that for cloth relief. You wouldn’t want to mess with this in one layer.
A normal bump can be used to create an illusion of a round corner where it is not, and bump cannot do that. Bump has only one direction - push-pull. Normal bump can create more complex details like facets, tubes (ok, bump can too, but try to paint such a detail with bump! That’s why normal bump is usually projected from geometry).
Normal bump is used in vfx from what I read, but as an addition. For example, you can read from Tim Jones blog (who worked at Blur) he used it for models exported from zbrush, but not from the lower res. That was a trick as displacement in MR was too buggy and was used for rocks. I’m sure nobody will use normal bump for the main character rendered at HD> :slight_smile: But if rendering at SH, why not? Not sure.
Still, normal bump has al the drawbacks of bump.
=Normal maps are good for small surface details
=Normal maps are good to represent narrow and deep seams between the details, this looks almost perfect. Though they are not as good for convex details
=Normal maps are bad for large prominent details. The problem is that if you make large prominent detail with normal map it will be more or less ok when viewed in front or at some angle, but will become absolutely flat when viewed from side.
=Normal maps are not very good to smooth the geometry.


#9

That’s pretty interesting. If you’re rendering closeups would you see more detail in normal maps? and if you render objects farther away from the camera does detail show up better with bump maps?


#10

Great tip, thanks!


#11

This issue has more to do with the resolution of your maps than which map to use.

As a rule of thumb for me, normal maps are useful to fake detailed geometry that are not directly facing the camera.

For example, you have a polygon plane facing the camera and you want to fake a blister on the plane. You can do this using either normal or bump maps. Now if you want to add another smaller blister on the side of the original blister (which will be “bumped” the other direction), you can only achieve it using normal maps, or it will be very difficult to get it right using bump maps.

I hope my post is understand-able :slight_smile:


#12

Very clever! One for the tip 'n trick book!


#13

It’s actually the opposite.
Elevation maps (bump mapping is a shading trick, the map is an elevation one) are seldom used since you have to do a fair bit of work from the texel on to shade the fragment, normal maps in tangent space tend to be a lot cheaper for a number of reasons and can be used straight away for several shading tricks in real time, so in games you tend to use normal mapping pretty much exclusively and bump mapping has gone the way of the dodo for a lot of non environment stuff.

As for which is better, outside of games elevation control and animation and simple blends tend to be a lot easier with bump mapping, in every other case normal mapping tends to be better, but since the additional cost of bump mapping vs having normal displacement available at the texel is irrelevant when rendering in software, bump mapping with elevation maps is still widely used.


#14

Roughly put : Normal Map describe a surface difference while Bump map only describe details variations applied to the geometry.

Bump is not displacement by the way, in that respect, normal map is much closer to it.


#15

This.

Normal maps change the surface normal of the polygon they’re applied to, hence the name. That means lighting on a normal mapped surface will behave as if the surface has parts facing in different directions even if it’s just a single flat polygon.


#16

Good to know that.


#17

Wow, what I find amazing is that no one can give a clear and concise answer on a CG forum…

At least one that everyone can agree on. :stuck_out_tongue:


#18

Maybe because it’s no rocket science.

Whatever works is right.


#19

Normal maps and bump maps are (nearly) the same thing. They both define the per-pixel normal of the rendered surface. The difference is that a normal map defines it explicitly with a float3 value encoded into the RGB values of the map. A bump map implicitly defines the normal as the vector result of deltas in the scalar height from one pixel to the next on each axis.

A normal map always requires a full color map which is treated as an array of unit vectors. A bump map is just a monochrome matrix of height values. Normal maps have greater accuracy, especially at very steep angles. Bump maps are easier to handle in art programs like photoshop, where they can scaled, flipped, rotated, and compressed in ways that are fundamentally damaging to the accuracy of a normal map.

Game Engines use normal maps because they can be directly resolved with a single pixel texture fetch. Bump maps cannot. No single pixel of a bump map is useful because you need a delta of height values to generate a Normal vector. That means at least 3 texture fetches to render a single surface normal.

Most major 3d apps today can handle either.


#20

theyre used in animation as well. film too but less across the board than gaming.

edit: also they’re good in comp for extra control over a rendered surface/object in terms of color/lighting.