I’m developing a tool for animating sprites (importing from Spriter). I’m a bit concerned about performance. Right now what I do is create several PaperSpriteComponent and attach them to bones (USceneComponent) which I can rotate, translate, whatever.
Then, for each character in my game I can easily have 4 - 10 sprites (or more). And some of these characters are spawn several times in the scene. All the sprites are created from a single texture (2k x 2k). This work pretty well but my draw call count is really high (more than 200 for a very simple scene!).
Are the SpriteComponent rendering batched? are these draw calls very expensive? materials should be the same for almost every draw call in the scene and i only use 1 texture sampler -default unlit material used in sprite-.
I’m targeting mobile and I would like to get good performance in lower end devices (I don’t use expensive features like lightning etc).
I want to know the best way -performance wise- to improve what I’m doing.
If I use the “stat scenerendering” i can see each sprite increments Mesh draw calls and Dynamic path draw calls in 1. If one of my characters uses 4 sprites, then there are 4 draw calls. The materials are all MaskedUnlitSpriteMaterial and as I said, every sprite from the game uses the same texture which is currently 1k x 1k.
So I see there are no batch at all