1
$\begingroup$

Oftentimes, once I exceed a certain number of textures (or other certain nodes) in a material, the entire thing will become pink, in both the lookDev and the final EEVEE render—but not in Cycles.

I initially thought this was a bug—I think that it even got reported as such at one point—but it's persisted for so long, through so many versions, that I think there might be more to it. I'm currently using a recent build of v2.83, but the issue has persisted since before the initial launch of v2.80.

How can I fix this issue? Is there a setting I can change? Or is it, in fact, a bug that still has somehow not been fixed?

I'm using a Mac, if that is important.

$\endgroup$
1
  • 2
    $\begingroup$ That's not a bug, it's a limitation of Eevee in its current state. Whenever your materials get too complicated, Eevee just refuses to render them. Aidy Burrows has an interesting workaround in his Procedural Asphalt Texture in Eevee video. $\endgroup$ – metaphor_set May 7 '20 at 5:28
2
$\begingroup$

In addition to my comment above, I did a little research regarding what to expect in the future. It seems that it's not (only) a limitation in Eevee, but also depends heavily on the GPU/driver.

The Blender documentation states the following:

Memory Management

In Eevee, GPU Memory management is done by the GPU driver. In theory, only the needed textures and meshes (now referred as “the resources”) for a single draw call (i.e. one object) needs to fit into the GPU memory.

So if the scene is really heavy, the driver will swap things in and out to make sure all objects are rendered correctly.

In practice, using too much GPU memory can make the GPU driver crash, freeze, or kill the application. So be careful of what you ask.

There is no standard way of estimating if the resources will fit into the GPU memory and/or if the GPU will render them successfully.

Since Eevee is a real-time rendering engine (much like any other graphics engine found in modern games) based on OpenGL, it inherits all the limitations that come with OpenGL, the driver and the GPU.

The GPU drivers are designed to work as fast as possible, so they don't bother with sending messages back to the application to inform about a limit being reached.

Therefore it seems highly unlikely that we see any improvement of the current limitations in the near future.

$\endgroup$

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.