And when do i use each or both?
Hello! I’d say bump only uses the z axis to compute the surface shading, hence you only need grayscale images for it to work. It’s a cheap technique and the results are not very accurate in close ups.
Normal maps encode the surface shading using three axes XYZ represented by rgb colors, so it can compute the shading in every direction. It’s a more modern technique and more accurate even in close ups, and probably more expensive as well.
This is not a very technical explanation by I hope it helps you understand the difference.
so normal map is always preferred? even for procedural?
I’d say use a normal map if you have a normal map. If you don’t, use a bump map. Example: I take a photo of a brick wall. In my image editor, I create my own greyscale image of it and tweak it to create a bump map. I have no easy way to create a normal map from it. A bump map will do. It will look fine especially if I am not up super close to it.
Normal maps render fast too, I am not sure if they are quicker or not than bump maps. I’ve never really noticed a difference when using them. Normal maps are commonly used in realtime in video games, so they are not expensive for render time. They are great for things like high detail on animated characters, where because the normal map has 3D information, it responds more accurately to the lighting in the scene.
Reminds me of this post.
As mentioned by @Strangerman, Bump maps are GreyScale, so they can only represent a single offset direction, which in turn dictates how the light should behave when it is hit. Normal maps on the other hand give angular direction and this provides the lighting with a more naturalistic manner in which to reflect light rays.
On the top row the difference between the original mesh ( a shallow tray as shown by the cross section below it ) and the two planes is negligible. the lighting makes them all seem comparable. However a shallower angle on the camera will start to reveal that the Bump Map, because it cannot provide information on the angle of the ‘slopes’ creates problems:
Notice that the Normal mapped plane, has a shadow on the same edge that looks identical ( in tonal value ) to the shadow on the original geometry.
This lighting issue is particularly evident when animation is involved - even a simple rotation:
If map file size is not an issue or quality matters, then Normals are preferable, if however the effect of ‘incorrect’ lighting is unnoticable, then Bump will work, additionally you can channel pack 3 bump maps into the same file size as 1 Normal map.
Blender’s own documentation is usually helpful, also in this case:
Quotes below are from there.
Long story short, bump maps are BW images, that tell the surface, how up (or down) they should seemingly go:
“The pixels seem to be moved by the required distance in the direction of the face normals. (The “bump” consists only of a displacement, which takes place along the existing, and unchanged, normal vector of the face).”
…while normal maps use RGB values to store XYZ locations: “they can simulate that pixel being moved at any direction, in an arbitrary way.”, so it is in theory much more precise.
For the above reason, the BW image goes into the Height socket of the Bump node (you could use it for Displacement Height as well of course, that leads to real displacement).
The Bump node will convert it into normal data, however I guess there may be less data there logically, even though you will end up with a normal map, if you bake it. All in all though, I think the quality is not decided by the workflow, but the effort you put into your procedural texturing!
Normal maps go into the Normal socket of the Bump or commonly a Normal node. That already has all the more info, but you need to generate these maps from real geometry, e.g. baking high poly real displacement onto low poly models.
So, in the end of the day, normal maps may not be that much better, since you need to generate them from real geometry, and in my experience, a procedural bump can look absolutely as good (imagine using dozens of texture nodes and like four bump nodes for one material)!
So, in my humblest opinion, if you don’t have a normal map to begin with, you can safely go with a BW - procedural texturing solution, and if you bake it as normal, you will have a “normal” map anyways.
If you want, you can generate it, using real displacement, sculpting, etc… but it may not look considerably better, since a rock would need to be hundreds of thousands, or millions of faces, to match up an infinitely generated procedural texture, right?
Therefore, if we are talking about procedural texturing, you are most likely better off with a complex, fine tuned Bump system, and real displacement as well if you like, while using PBR texture maps, you can simply use the normal, and maybe try adding a bump and a height through their dedicated nodes if you like.
Also, keep in mind, PBR maps are not always perfectly fine-tuned. You also have the chance to tweak them procedurally as well
Alright. what about procedural textures?
If i create something from a wave/noise texture etc, i probably wont have a normal map. In that case is there a difference between Normal and Bump node?
Depends on the workflow. But Bump should be fine.
I would say, you use a Bump node or more. You don’t need to combine the BW maps beforehand, only if they thematically match. Usually the largest-deepest is first. Texture into Height, then you add another bump if needed, after that. Previous Bump into normal slot (since it is normal data at that stage), new BW setup into Height again.
Once done, the last one into Normal of the Principled shader, then you can bake it ofc as a normal map.
If you had a procedural height, that could be applied as geometry via displacement modifier (or sculpt or both), anyways, creating real geometry displacement. Multires modifier is helpful in these cases.
Then you can bake that hi poly into a low poly mesh, but again, the quality of normal depends on the geometry amount. So, unless you go insane on face count, a Bump setup can actually look better. Ofc you can combine both methods.
Long story short, IMO, go for a delicate Bump setup, and also use real Displacement if needed, that you can bake as a height map (real displacement BW map), but generating normal from geometry should not be needed