How to avoid Moire (wave-like noise)


I am facing a render issue of “Moire” (wave-like noise)
Left shows Moire, Right shows no Moire because of big scale of one tile.

My current setting is like this:
Renderer : Cycles
Resolution : 1000px
Pixel Filter : Blackman 0.50 px
Lighting : Default

All I know about Moire is, I can decrease it by having larger value in Pixel Filter(like 2.00)
However, I don’t want to make a whole render result blurry.
I just want to blur the tiling map ( I use 3dsMax, and it has blur setting in the texture )
I also configured ; Texture Interpolation : Linear > Closest, but it doesn’t make much change.
Of course, if I have a large resolution or larger tiling repeat, it’s gone, but I need to maintain current resolution for my workflow.
So, if there are any clue about Moire, I really appreciate it.

In fact, this is a common problem that most solve by rendering higher and then scaling down in the pixelapp. In addition, I would try to use a 16bit map or more for the normal map and get as many shades of gray between white and black as possible (better a procedural solution).

1 Like

This looks like more of an optical illusion. This means that you have to break the repeating texture pattern so it appears irregular ways. (I got this idea from Andrew Price where he created a mountain of donuts in a tutorial).

You would for example have this textures with varied parameters and then you would use a noise texture as a blend factor in some color node.

1 Like

That’s moire all right. And it’s very easy to achieve with such a low filter size. If possible, I would render with default filter size of 1.5, and render at twice (or more if required) the resolution and downsample it. Possibly twice; one with sharpen applied to get some sharpening back from the filter size, and one without sharpening applied if moire becomes an issue, and then paintblend the two. Why? Because if you’re having moire issues, then you probably won’t be able to run any denoise on it anyway.

There is no way to blur the texture in Blender. For giggles, I tried now using the blur texture coord trick and a texture mixer (slightly offset versions mixed together) - none worked - at all. Back in the day in a completely nonrelevant renderer we had access to a “density” parameter. We could use this to do manual anti aliasing where we had such issues. I’m not sure if that is a parameter we could “build” using nodes.

1 Like

Can you share a test file so we can look into it ?

I whould I’ve tried Cubic or Smart, but I’m not sure it’s relevant.

What you can do if you really need to get rid of that, is to make some variations of the texture and let them appear according to distance from the camera. This way you can have a nice result far from camera , and a more detailed / crisp one when you’re closer.

1 Like

Thank you, all of you, for quick and detailed procedure.
Having twice large size resolution, is the simplest solution with slow rendering time, I need to think about it.
I may fake the texture size until I get rid of the Moire, too.
Thank you again for the support, I really appreciate it !