I am working with some very complex custom toon shaders in Eevee. This causes several problems. First, the compile times are atrocious. Second, I am in danger of hitting the node limit if I also use complex procedural textures. Third, when trying to use AOVs, I hit the GPU instruction limit. I am trying to find out if I can help any of these issues with custom nodes.

My experience with custom nodes is with this addon that adds many new procedural textures (its paid, so I can't share it directly.) I had been using a hexagon tile procedural texture from this addon, but wanted to share the file with others. Since I couldn't also share the addon, I re-created the same hexagon tile texture as a group out of regular nodes. This caused me to hit the node limit (I was using several of them). This leads me to believe that, for whatever reason, custom nodes only count as a single node against the node limit, whereas a node group doing exactly the same math counts as its full node count. Is this true?

I also noticed that my compile times when using the custom node were not too bad, but when I switched to the node group version, they became terrible. Are custom nodes somehow saving on compile time? If so, how? Could I save more by making a custom node version of my big shader group?

Are there any other options for optimizing my setup?

  • $\begingroup$ are you sure there was a difference, all shaders need to be compiled once, after that their cached $\endgroup$
    – Peter
    May 7 at 14:41
  • $\begingroup$ @Peter No, I'm not sure about the compile time differences. Its hard to judge them because I can't tell how much its re-compiling on any given test. Often I get very different compile times on the same node tree, even when it should be compiling the whole thing such as when opening a file and rendering for the first time. $\endgroup$
    – Ascalon
    May 7 at 18:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.