Jump to content

  • Log In with Google      Sign In   
  • Create Account

- - - - -

Toasty Update #6

Posted by , 12 November 2013 · 608 views

engine sfml component based entity system toasty
Toasty Update #6 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.
Actually just talking about it I decided to do it, at the moment it just compares the bounds of all components against the current main view every update. I need to come up with a better way to cull objects though, a QuadTree comes to mind, but not sure how to update it I might have to add an isDirty flag to an entity and whenever it's position is changed update that.

So here is culling and sorting working on 7k+ entities:

Attached Image

Compared to no culling but sorting:

Attached Image

That's a difference of ~180 FPS!

Pretty good IMO!

January 2017 »

151617 18 192021

Recent Entries

Recent Comments

Latest Visitors