Cycles Upper Limit to Layered Alpha Image Textures?

I have a project involving one material calling up 30+ image textures, layering and positioning them to achieve various effects with UV Warping and alpha holdouts.

It’s a ridiculous amount of mixing, yes, but I built the thing in Eevee with no trouble. I switched over to Cycles for a test render, and found that at some point Blender just stops reading the image data and the material comes out solid black.

Being a cartoonish project, Eevee is fine (other than the terrible shadows), but is there some sort of hard limit on how many texture images you can mix together per material in Cycles? I’ve tried jacking all of the various light paths and bounces way up, to no effect.

Forgive the lack of a .blend, but it’s rather hefty. Along with all of the mapping data, I’m basically just creating two massive daisy chains. One for the RGB data, one for the Alpha.

EEVEE:

Cycles:

If you’re using normal maps, make sure your normal map’s Image Texture color space type is set to Non-Color:

It could also be possibly related to not you not using a correct Specular shader node setup:

https://www.reddit.com/r/blenderhelp/comments/r0dq77/comment/hlrq8bu/?utm_source=share&utm_medium=web2x&context=3

1 Like

You can set your Transparency depth in your render settings:
Depth

Sets the maximum number of transparent surfaces a single ray can travel through. There is no typical value. Transparent objects outside the Depth range will be rendered pitch black if viewed through the transparent object that the Depth is set for. In other words, if you notice black areas on the surface of a transparent object, the solution is probably to increase its Depth value (this is a common issue with ray tracing transparent objects). You may also need to turn on transparent shadows on the background object.

@RPaladin I’m not using normal maps, no. I have some bump going on, but the issue persists with that totally disconnected from the pipeline.

While the other issue with the Specular BSDF seems to be an identical outcome to mine, the only BSDF in this thing is already Principled. Thanks for the suggestions.

@joseph I’ve got all of the light pass related settings jacked up to their maximum value (see below) excluding stuff that I’m not using like Volume and Caustics. I tried to find information on setting “Transparency Depth” specifically, but only found references to the discontinued Blender Internal engine. I tried searching for the quote you provided, but again only found it in a reference to Blender Internal. Am I overlooking a setting somewhere?

I should also mention that, while there are a ton of alpha transparent Image Textures in the Material, there is only one material and only one mesh surface. I assume light bounces are concerned with 3D geometry, not textures themselves. I’d be interested to be proven wrong on that one.

What’s weird is that the Transparency Depth should have been replaced by Min Light Bounces, which you’ve got set pretty high… can you turn that up any higher?

Also try setting your Feature Set to Experimental

Hi there,
I had a similar issue with bump nodes quite a while ago, and it seems like a Cycles limitation, but only for GPU rendering:

So, you can go Window - Toggle System Console, and see if you have the same issue:
“Cycles: out of SVM stack space”.

As I found, CPU rendering solves the issue for Cycles too, but is obviously slower.

Alternatively, you may try to mix, or rather bake some parts of the setup, and then mix the baked results. If you plug any node to an Emission, and create an image texture for baking, then you can bake “Emit”, and it will bake the result of whatever node setup you plugged into the Emission node :slight_smile:

Hopefully, one of these solutions helps.
Cheers!

@joseph 1024 is a hard-coded upper limit for all those settings, and Experimental made no difference. Besides, I’ve got a lot of image textures getting mixed over each other, but not 1024.

After further poking and prodding, I still think there’s just some invisible limit in place. Maybe some sort of render cache issue? I don’t know how different Eevee and Cycles are in that regard, as it all still works fine in Eevee.

I’ve gone up each step of the daisy chain, and there’s just a point at which I get solid black. Interestingly, I can fiddle with certain node values (alpha sliders), and everything suddenly works for just a fraction of a second, then goes back to black. It’s like holding a light switch half way and watching a blub pop on and off.

@AgentTuron Very interesting suggestions. Unfortunately, the need for so many bitmaps is that they’re being handled like sprite sheets, so they all have dynamic positioning data that changes throughout the animation. A character is wearing one set of clothing at frame X, and changes costume on frame Y, etc. I would expect baking to make that dynamism impossible.

As to CPU rendering, it’s a curious limitation to be sure, but… no… just… just no…
tenor

Ultimately, it looks like a workaround is to just bypass a handfull of layers that ultimately don’t show up all that often (undergarments, mainly). It gets the overall count of layered textures down to something Cycles can apparently tolerate, which means I can have my accurate shadows and fancy lights back, at the expense of some attention to detail.

Besides, I’ve been doing the development here on a laptop. While it’s a fairly nice laptop I bought for video production in-the-field, it’s nothing next to my wife’s desktop PC where final rendering will take place. For all I know, I can transfer my work to that, plug the bypassed MixRGBs back in, and all wil lbe right with the world.

Thanks for all the suggestsion, everyone. Not entirely sure this is “solved” per se, so I’ll leave it open for the time being, but I’m able to continue my work either way.

1 Like