Bump/Normal map leaving ridges?

Hey Blender community. I’m a long time Blender user, but always learning better (correct) ways of doing things.

Recently I’ve noticed something off with my bump and normal maps. More specifically how they’re rendered out. I end up with these weird ridges. (Please see attached picture.) It was like this in 2.79, so I know it’s not 2.8 specific. As far as I know I’m feeding textures through proper nodes? For normal maps I’ll use a normal map node. All non-color data. Height maps go through a bump node.

I don’t believe it’s an issue with the maps themselves. I’ve run the same maps through Arnold’s shader system in Maya and haven’t seen the same issues.

Any suggestions? How do you run your bump / normal maps? Am I missing a button or setting somewhere?

Thank you!

@Riley_Brown Do you have a reference of what the bump texture is supposed to look like?

Sure thing. Here’s the only reference I have.

Should be like that pattern swatch on the upper right.

I’ve managed to get it close, but I’m dealing with those same issues. I’ve isolated it in the first image above, to show what I’m referring to when I say “ridges.” This is something I have come across many times, and I assume I’m doing something wrong with my node setup.

Hmmmm I am trying to figure it out as well. I figured it might be artifacts in the texture used for the bump but if you say it doesn’t do it in other software then I am not quite sure. So I took a 100% white background and put a bunch of black to grey dots all over it in Gimp then brought that into Blender as a bumpmap texture and I don’t seem to be getting any artifacting or rogue bumps. Have you tried a vector mapping node to adjust the scale of the texture at all?

Nevermind. I just zoomed way in on it and I can see those ridges now just like yours shows.

I also gave it a test render to see if it was just a viewport rendering issue but it looked actually worse and more pronounced. Think it is more of a limitation of using a bump vs geometry or at minimum a displacement modifier however the latter uses a lot more geometry. But I noticed it was only noticable when zoomed extremely close to the actual object.

1 Like

Scale of the texture seems to be an unrelated factor. I did try multiplying scale by a factor of 5x just to be thorough. The ridges are still there.

Blender (cycles) seems to have trouble calculating proper bump for image files that are blurred, or fade from one value to another. Here is the image file that’s causing issues with my render:

As you can see the pattern has been blurred in Photoshop. The purpose of this was to spread the effect of the bump over a larger, less focused area. While there are no “ridges” in the original image, Blender seems to be putting them in as it uses the image for bump.

I hope I’m just missing a setting somewhere.

Your bump map has 1/1 set. This is extremely high.

The image you supplied in the last post is jpg, I won’t even be bothered trying it. When you need high quality bumpmaps, use 16 bit grayscale and save non lossy to avoid ridges from compression artefacts.

To depict a normal at an angle using a bumpmap, you need a continuous gradient of “elevations”. Using a normal map, the same could be achieved using a single color. For a good looking continuous change in gradient, possibly also the normal map should be high bit depth.

Bump map are usually sufficient only when you don’t zoom close enough to see individual pixels, as there will be a (smoothed, but not perfectly) ridge between each pixel. Zoom out and it all blends together.

I’ve also seen cases where the mathematical accuracy just doesn’t cut it; the texture generator itself goes awry, sometimes even break completely until you replace it with a new one with same settings. But I don’t think those apply in your case, it’s just a natural limitation of bump maps, more so in low bit depth ones.

2 Likes

It’s stair stepping from the bad use of available value range, plus jpeg compression artifacts won’t help. Try to have pixel values as close to normalised as possible when baking a bump map. A map going from 0-1 has better fidelity than one going from 0.5-1 for example. As CarlG said higher bit depths can help too.

Edit: Could also be a bug in 2.8

Yes, sorry for the confusion. The image above is a screenshot of the texture file. (for quick upload.)

Original for texturing is PNG. (actual file)

Again… I’m not using jpeg. It’s 16 bit, and shouldn’t be losing any details there.

The image you have might be 16 bit, but it needs to have been made with 16 bit processes the whole way through production or you will loose the value range that you need. And even if you did do 16 bit the whole time, as Tommy said, you are not using much of the range… even your deepest/darkest values are quite high. You probably need to use more of the value range to smooth out the transitions and avoid the stepping.

As I mentioned at the first, the same issue has come up in 2.79. I do not believe it is a 2.8 bug.

I’ve also used the very same bump maps accross Cycles and Arnold for Maya. The issues did not surface in Arnold. Which leads me to believe the issue does not sit with the files themselves, but perhaps the way I approach bump maps in Blender.

Thank you. I have been careful to keep the information through out the texturing pipeline.

I would also try a color ramp to clip the high end of the values. That should create a flat top and clear out the stepping.

1 Like

I guess the big questions is, why would this same process (same images) work in Maya with Arnold, yet I get the “ridges” “stepping” or “artefacts” in Blender? That’s really what I hope to answer. I’m not implying that Maya is better in any way… In fact I hesitate to make the comparison because Blender has proven itself for me again and again. I just have to wonder if I’m doing something wrong here. I hope you can appreciate the trial and error I’ve put my images through. I hope you’ll also appreciate the fact that this isn’t a one-time issue for me, but rather a recurring problem with Blender and bump/normal maps.

Here’s an example of a similar map I had going in Maya. As you can see, no artifacts. (forgive the low resolution I’ve zoomed in.)


Furthermore here is a typical node setup when I do bump maps.

I understand there are a lot of factors at play here. It’s become apparent that perhaps the solution is not immediately apparent and will require further testing on my part. I appreciate everyone’s shared solutions.

The “tile2_blur_most2.jpg” is also a jpg. Try uploading to a different place if BA converts the file unintentionally, maybe also the original file you start with. Also, examining it using a normalizer custom node group as non color data cubic, I get the range 0.919 - 0.921, that could end up in accuracy problems - I don’t know.

Even if used as displacement your get steppy artefacts. Have you tried rebuilding the texture from scratch? Some texture generator program or (possibly very difficult) using Blender nodes? Synaglows nodes or bricks’n’tricks might help as I see some hexagonal stuff going on.

Indeed you did, apologies. Maybe crop and upload a smaller image from the texture in 16 bit png / tif / exr so others can give it a shot?

Not good news. Upload please. Might need to zip it to avoid conversion.

Yeah the website converts automatically to jpg. Know this from uploading entries into the weekend challenge.

I suspect BA is converting the file. Here is an external link: https://ibb.co/fP4k19

Typically I use substance painter for my textures. The maps that I export from there are then used with the principled BSDF shader in Cycles. In most cases This works great. Except of course with these ridges. Again, it’s not something I see in other programs with the same images. I know Blender is better than that. Thanks for taking a look at my files.

I can confirm the stairstepping from this image, but I see the same stairstepping in the .png, if I adjust the levels:

This .png is 8 bit, which is probably your problem.

Interesting… I thought I had saved out at 16 along every step… Apparently not.

At it’s source it’s an illustrator vector file. I’ll get it all saved again and see if I can figure that bit out. Still puzzled as to why this works elsewhere as a bump map.