Eevee rendered animation performance issues with normal maps

Hello there! I use Eevee for character animations, but I’m very surprised that we’re two versions down the line and still nothing was done to improve the rendered viewport animation playback performance with armature driven models with a normal map.

To replicate the issue:

  • Take an armature driven mesh (like a game engine optimised character for example).
  • Add any action to the armature (doesn’t even have to move!).
  • Observe the rendered viewport playback FPS difference with Normal map connected and disconnected. It can easily go from 60 FPS to 8 FPS by just connecting the normal map on an animated model.

The “workaround” I’m using is to manually disconnect all the normal maps from the materials while animating and reconnect them before rendering, but it gets very tedious very fast.

I understand general performance improvements are a long term process, however as a short term solution I would love, at the very least, a button in “Simplify” panel allowing us to disable normal maps in viewport.

2 Likes

This is not considered as bug by developers as I can see from these reports: T64458, T60613. (Thus it should be noted in the documentation as a known issue in my opinion)

Some useful workarounds appeared at those reports: BlenderNormalGroups, ToggleNormalMaps.

2 Likes

Thanks, I was looking for an add-on like those last year and didn’t find anything. I’m glad someone made them.

I still think it should be an built-in option though.