Flickering in Hair.. what might cause this?

I did a render the other night in Cycles with decently high settings but the hair on my character has a slight aliasing flicker. I’m wondering what could cause this. The strange thing is that I’ve rendered this before without issue. This time, I have a camera move and I’m rendering at 50% resolution. Could either of those cause flicker in the hair? If so, that would be strange. I thought it might even be the physics needing a rebake but the motion looks correct on the ponytail part.

If you guys know of a setting which creates hair to flicker a bit, let me know. I don’t have the frames on me because I’m ALWAYS at work but I can render off a couple to show the issue. Let me try and get that done now.

Best guess without seeing the frames is AA issues due to the hairs being sub-pixel sized. This might be a little better at 100% res, depends on how small the hairs are. You can use the min pixel width feature in the particles tab to clamp the stand size so this isn’t as bad. Otherwise, you need to just throw more AA samples at it.

Is there an AA samples specific or do you just have to push overall samples? Where is the min pixel width? I’m looking at the hair render settings. I don’t have “strand render” on (edit* nevermind… I just looked at the description of that). Would that cause me an issue?

The other difference is my output frames. I was using jpeg this last time and not png. Would that matter? Do you think compression would do something like this?

Ok… here’s 2 frames. You’ll have to put them on top of each other and flip back and forth to see the flicker.



AA samples can only be controlled independently with Branched Path. If you’re deadset on using normal path tracing, you’ll just have to throw more samples at it overall.

Looking at those frames, antialiasing issues with the strands looks likely. It looks like the movement is causing strands to shift in and out of positions where they get smoothed away. Thus flickering. This is kind of an inherent problem with raytracing hair, unfortunately.

Min strand width lives in the particles tab, in the Cycles Hair Render rollout. It’s labeled “min pixels”.

Re: JPG. Maybe? Personally I’m not a fan of using lossy compression on raw frames if its at all avoidable.

AA samples: Sorta. If you are using branched path, there is. But by nature it just increases all camera rays thus becoming a scaling factor for all other sample types. The progressive path tracing mode doesn’t have any dedicated sampling controls, just the master sample count. You’d need to increase that.

I am using branched path. I don’t see anything that says AA specifically.

I see “Pixel:” under Adaptive render in the hair. Is that it?

Thanks for looking at this for me btw! I really appreciate the help.

Here’s my settings…


Look again, “AA Samples” is staring your right in the face.

Haha… ok yeah. In my defense that number multiplies the branch numbers so I just thought that was overall samples. I understand now.

8 is pretty high though. Honestly, I think the last render was 6 and I didn’t see this issue. I must be doing something else… let me see if it’s the jpg compression.

It really depends a lot on the size of your hair strands and more importantly tips. This is the exact reason the minimum pixel width feature exists in Cycles and Arnold.

I set min pixel to .5 with Max Ext to .1 and didn’t get any change. So strange because this thing was fine before I rendered a really simple version for testing animation. I think when I set things back up, I turned on something in the render settings that is causing this. Let me play with those settings a bit more. This wouldn’t be so bad if renders weren’t so long. :frowning:

I just went back to my original and did some tests and it does not have this issue. My old file actually has lower AA settings. Is there a way to do a dif on these .blend files?

Ok… I think I got it.

I was trying to upload the file and there must be a size limit so I started getting rid of all the cache dynamics. When I got to the hair, it was difficult to remove because I had the baked in local AND a file that I had baked to file earlier. I think there was some kind of conflict between the two. I deleted the reference and made a new one, baked some dynamic frames and rendered the same 2 frames with no flicker.

The reason I switched from the file cache to local bake was that I was rendering this on Render.st and they require the bake to be in the file (not external). No problem there and it rendered just fine on Render.st but somehow, I believe the next version of the file got corrupt where some frames were referencing local dynamics and some were referencing the file. I should probably send the whole thing off to a Blender engineer to take a look. I still have the bad file and cache. I’ll save a new version to save the bad one.

I’m going to render the whole thing out to make sure I’m right before marking this solved. If you guys know where I can send the files, let me know.

*Edit - Rendered a bunch of frames now and it’s for sure fixed. I’m pretty sure this is a bug in the dynamics.

Glad you got it figured out. Unfortunately I think bugs in hair code are the standard rather than the outlying case at the moment.