Patterns along strands in straight hair

What I am wondering for quite some time, seeing it often when working with hair is, where these weird patterns, brightness variations along the strands (looking somewhat like interference patterns), like in the image below come from. Renderer is Cycles.

I could only figure out that it has something to do with the number of path steps (more make the patterns finer), but that doesn’t really explain it for me. Also it only happens with geometry setting ‘thick’, not with ‘ribbons’. When creating just one individual hair and looking at it up close, shading looks fine, completely smooth. In any case, there shouldn’t be any reason for number of strand segments to matter, as the hair are completely straight.

hair-patterns.blend (1.0 MB)

Just a thought, but it may be to do with the number of segments your hair has - a slight artifact between one segment and the next.

Segments can be found in the top part of the particles properties. Try setting to 1 or a much higher number (depending on whether your hair needs to bend)

Yes, it happens at the connection between segments. That I already know. Unfortunately it often requires a lot of segments until the stripes become invisible.

Also I really would like to know the why they are there, as I cannot think of any reason for them to appear.

I think it must be to do with how Blender brakes hair down into triangles before it renders it.

Is your hair curved in the final scene? If it is, then you’ll need more segments for a smooth curve. If not, then you’ll only need one segment.

The fun part is, that the hair isn’t curved at all. No editing has been done, or random settings.

You noticed the blend file? Maybe you want to check yourself, whether I did any mistake?

I can see the hair is straight…


Do you want the hair to be straight? If so, you only need one segment.

I created that example above just as a simple, minimal setup to show the problem I mean, not as something being part of an actual project. But the issue can also be seen in more realistic hair configurations. I left the hair straight to check whether it is related to large kinks in the geometry due to too little segments. IMHO it would be weird even then, as for meshes with smooth shading, no matter how low-poly they are, nothing similar happens

Did some more renders from a different angle, where the glitch becomes way more prominent (same blend file):

Fun thing is, the render is not the same between CPU and GPU:

Looks like a rounding error glitch, huh?