Normal maps cause immense lag during animation playback

Hi,

Here’s a simplified version of the .blend file.

There are 2 collections in the view layer, one called “harbinger”, the other “sovereign”. The main cause of the lag is the normal map in the material applied to the sovereign mesh.

I’ve made all these textures the exact same way, which is by smart UV unwrapping the mesh, and baking procedural materials to image textures. Which makes this issue even stranger, because the normal map in the harbinger material doesn’t cause basically any lag.

I’ve set the playback to 25 fps, and if I play back the animation in material preview mode with only the harbinger collection enabled, I get about 20 fps, while with only the sovereign collection enabled, I get around 8 fps. These values probably won’t be the same for you, but it’s still worse than half. (if you unplug the normal map from the shader, the lag goes away completely)

I’m really not sure what causes this lag, because as I said, I made both normal maps the same way, yet one causes a lot of lag and the other doesn’t. Now, this might not be that big of a deal for one object, but I plan to add array modifiers to the mesh to create a bunch of them, and… yeah.

I though I might just omit using normal maps for these because they’re really not that visible, and they won’t be super close to the camera anyway, but it’d be nice to know what’s causing this, so if you can offer any insight, I’d appreciate it!

Thanks!

Yeap, known problem. There is no solution, unfortunately.

Only workaround:
https://blenderartists.org/t/way-faster-normal-map-node-for-realtime-animation-playback-with-tangent-space-normals/

Thanks a lot! Any idea why only one of the normal maps cause lag though? And the other does not?

I’ve got slowdown for both models.
One is slower cause it got more tris (42k vs 19k).

Ah so that’s why. I was thinking maybe it was because there was something wrong with the normal map itself. Didn’t even think about the poly count. Thanks!