Toasty Update #6
engine sfml component based entity system toasty
So in this update the big change is proper depth ordering, until now the depth of things drawn on screen using the SFMLRenderSystem was based on what order the component was added to the system. The new way just utilises the z component in the entities position property and sorts the vector every update and while may not be that great in my tests has almost no performance loss.
I also changed the render system so that it no longer directly handles the texture caching responsibility and it is now handled by the TextureResourceLoader which it holds, I also plan on doing the same thing with culling and sorting which will sort of work like this:
- User adds a bunch of render components to some entities, then on every update:
- RenderSystem request a cull by the assigned CullingMechanism (If one is assigned).
- RenderSystem requests a sort from the culled components using the SortingMechanism (If one is assigned).
- RenderSystem draws the culled and sorted vector.
So here is culling and sorting working on 7k+ entities:
Compared to no culling but sorting:
That's a difference of ~180 FPS!
Pretty good IMO!