Can't mix textures more than 15 times

Hi Friends,
I’m working on a 2d facial rig and i’ve 36 diffrent mouth shape textures to show.

i would plan to use a custom parameter to control mixRGB node’s fac. parameter.

all was good but after the 15th layer of textures, viewport stops drawing it and turns mesh compeltly a purple color.

Cycles renders it without problem but But evee and viewport shading shows it as a solid purple color.
i need to see it in viewport to be able to animate.

there are 50 layers to put together in the end,
is there any idea?


It’s a known limitation of EEVEE using OpenGL

Make several mesh layers and several materials instead

As has already been said, it’s a limitation of the engine.

Typically for this kind of rigging you should be using an atlas instead of individual textures.
You can then use that same atlas in the rig’s controls for easy pose selection.

Use UDIMs and pack all textures into one file. Then use texture offsets to use textures outside the 1 by 1 tile.

Thanks a lot friends!
Using an atlas seems the best solution for this situation, but is there a texture size limitation on this side?
Cos my textures was 4k and i can arrange them on a 8k atlas but it is nice to have them on 16k.

I think the limit is 16k for OpenGL (and presumably Eevee).
You should probably use a lower resolution proxy for everything but final render though.

thanx @init_pixel for the reply,
Using proxies are allways good choice, but I’m working on animated series and we are rendering lots of shots every day.
So i’m trying to keep manual operations at minimum.

how do you change the proxies to final texture at render step? is there an automated solution for that?

There’s a texture limit in preferences
Preferences > Viewport > Limit Size
Which presumably does it automatically. Though I don’t know the scope of it.
Otherwise I don’t think there’s an explicit proxy option beyond scripting it.

Alternatively, can what you are doing be represented by flat polygonal model? Poly strips for linework and such? This would be resolution independent and you could use bones and shapekeys