I haven't used irrlicht properly in a while, but from what I know of it
biggest suggestion i can make for improving performance with irrlicht:
Use as less Nodes as possible!
this includes:
- batching polygons to minimise drawcalls (each node is equivalent to a single drawcall at best!)
- only render what you need (cull nodes that are not visible)
- sort nodes by shader (or renderpass), followed by material (or textures)
- instead of using irrlicht animators, perform animations on GPU
other noticeable gains will come from trivial C/C++ optimizations like unrolling small For loops, using smallest possible variable types, const-correctness, etc
Ofcourse, it also depends mostly on WHAT game (or application) irrlicht is being used to make, because there would be a tonne of other performance optimising options available depending on specific requirements (such as transparency sorting, managing lights, LOD, terrains, etc)
