While HUDs are being faded in/out, MT is constantly generating new images on any cache miss.
You are using too many opacity steps, i.e. all 256 possible alpha values. You should probably reduce this significantly to like 16 or 32 possible steps by rounding.
Unrounded values in texturemods in general, like ^[opacity:128.4 will produce the same image output as their rounded variants like ^[opacity:128, but will cause a cache miss and the image will still be recomputed, causing a client-side lag spike and extra RAM to be used.
It's actually possible to trick MT into precaching HUD images by making dummy nodes and packing up to 6 HUD images (complete with opacity baked in) into each node definition. Minetest will precache these images at the "initializing nodes" phase of logging in, so they will display instantly when presented to the player instead of needing to be built. See ColourHop ch_flashscreen for an example.
This is causing:
Huge lagspikes while time-traveling, so you can't actually see the fade effect. The lagspikes don't get better over time as there are so many opacity steps that the chance you'll hit a new one and get stuck in a cache miss spiral is very likely.
Eventual OOM crashes, as memory fills up with full-screen HUD images.
While HUDs are being faded in/out, MT is constantly generating new images on any cache miss.
You are using too many opacity steps, i.e. all 256 possible alpha values. You should probably reduce this significantly to like 16 or 32 possible steps by rounding.
Unrounded values in texturemods in general, like ^[opacity:128.4 will produce the same image output as their rounded variants like ^[opacity:128, but will cause a cache miss and the image will still be recomputed, causing a client-side lag spike and extra RAM to be used.
It's actually possible to trick MT into precaching HUD images by making dummy nodes and packing up to 6 HUD images (complete with opacity baked in) into each node definition. Minetest will precache these images at the "initializing nodes" phase of logging in, so they will display instantly when presented to the player instead of needing to be built. See ColourHop ch_flashscreen for an example.
This is causing: