Quantcast
Channel: User Pedro Ribeiro - Blender Stack Exchange
Viewing all articles
Browse latest Browse all 22

Answer by Pedro Ribeiro for Texture pink despite not missing any textures

$
0
0

Since you say you have like 150MB of textures and nodes, the problem could be that your material is too complex or has too many attributes and the GPU is overloading.

I made a question recently about attribute limits on the shader editor and basically there seems to be a limit of 14 readable atributes at the same time across the total of materials in an object, (one stops working if 15, for example), and if you go past 16, the shader breaks or, at least, stops receiveing the textures correcty, so it cannot display them and it turns pink (without them actually be missing from the project).

Attributes on your shader could be things like simply the outputs from "Attribute" nodes (example: if you're passing values from Geometry Nodes to the Shader Editor with Store Named Attribute nodes; on my Question I explain a trick to increase this by 4x max btw), but I noticed it is as well stuff like the output from Texture Coordinates nodes (with "Generated" outputting 2 attributes, and the rest 1), and image or procedural textures also seem to use some attributes.

When you connect that Mix Shader you're joining the attributes from both sides and it basically adds up to more than 16 (but some already stop working at +14, like I said, it just doesn't turn pink).

When you swapped one of the sides for a simple Principled Shader you removed all attributes coming from that side, that's why it worked again.

Unfortunately there's not much you could do, as this attributes limitation if built-in into EEVEE. The best solution I can give you is try making the same material but with less different textures (images, noises). Try re-using them - one feeding many - specially for similar noise types.

Note that even when you're using textures without connecting a Texture Coordinates node, it still gets the attribute from a "ghost" one - image textures default at UV, and procedural textures at Generated (which, keep in mind, use 2 attributes). So if you have a procedural texture without a Texture Coordinates node and you don't care about using "Generated" even once on your material, connect a coordinates node and change it to Object to spare 2 attribute slots.


Viewing all articles
Browse latest Browse all 22

Latest Images

Trending Articles





Latest Images