Why is my bump map pixelated?

Ok, I’ve registered on developer.blender.org, ready to do this. But I found this thread.
Here people were adviced to use Smart interpolation for bump instead of Linear. I tried it, and it did nothing. But the thread itself is 3 years old.

Cubic interpolation works better, but it’s still blocky

Ah, I see. You are solely talking about cycles renders? I’ve mostly focused on the viewport and eevee.

i suggest you can add smooth modifier and adjust parameters to get smooth final result.

if you use quad mesh for cloth simulation, you also can see the similar result if you do not add smooth modifier.

It affects both, Cycles and EEVEE.

to qomolangma: the model already have subdivision modifier with 4 level of subdivisions.

Might be because my build is over a week old, but for me the image texture nodes interpolation value makes no difference in eevee. In cycles the bump mapping doesn’t respect the UV’s.

Anyways, I know I had seen something about this somewhere:

That explains the eevee part of it.

edit: cycles part was just a strange update issue. Guess I just don’t have the same issue as you.

texPaintTest.zip (258.2 KB)
Here’s a simple scene for testing.

edit2: I do. But only then using a very soft brush stroke.

yep, I confirm that eevee has this odd filtering:

Yeah, and after carefully making very soft strokes with my wacom pen I can get the issue you are having, and as per your above post switching the texture node to cubic interpolation does soften the texture filtering. Doesn’t fix the issue but does soften it. I’m still of the opinion it’s mostly to do with the brushes.

edit: there is an option for adding dithering to the strokes though, might be worth experimenting with it. Find it at project paint drop-down panel at the right end of the top bar when in texture paint after activating the brush tool.

To me it looks like Interpolation is as it should but you simply have a too low texel resolution. Check your uv mapping.

Texel resolution my friend. It doesn’t matter if you have a 2k, 4k or even 8k map. What matters is the ratio between that map and the space it really occupy on the screen (or the print) once viewed (or rendered).

Kind of. In order to depict a normal at some angle, a bumpmap needs a continuous gradient whereas a normal map needs a single color. A normal map will show pixel issues only where the gradient changes, whereas a bump map will show pixel issues for each “elevation”.

The best thing you can do is to increase the contrast of/normalize your image and then blur it. However, it doesn’t matter how big the resolution of the bump map is if you zoom in past the “pixel information density” (not sure what to call it), and by the zoom level in the image it appears you are well past this point. Any image based bump map will look crappy when you zoom in. Cubic interpolation helps along the edges, but doesn’t smooth it out completely.

If this is the “shot you want” (extreme zoom), you can rearrange your UV so that the zoomed in portion is covered by more pixels.

Alternatively you can use a painted mask (resolution not that important) and paint in effects from procedurally created bumps which is waaay more harder (then it’s floating point accuracy issues) to get into resolution and “bit depth” problems.

Set the bump distance to 0.001 in node editor.

1 Like

Bump Mapping

As of now, bump mapping is supported using OpenGL derivatives which are the same for each block of 2x2 pixels. This means the bump output value will appear pixelated. It is recommended to use normal mapping instead.


Wasn’t this recently updated (2.81 beta perhaps?).

Yes. Bump maps will not be pixelated anymore starting with 2.81. This is a thing of the past.

1 Like

Well, they may still be pixelated due to interpolation mode or bad texture, but at least not from engine point of view.

Just tested in 2.81. Still artifacts…

What’s the source? Image or procedural?
Previously procedural bumps was “unusable”, but I have other reasons not to use Eevee yet.

Make distance around 0.01 or even around 0.001
and strength around 1. High distance makes you lose data.

1 Like

Hello, these are my results. No change when using image texture as bump (probably has more to do with the image resolution), but procedural are improved.