Pages

Friday, June 1, 2012

Wee!

The more I fiddle about with BEPU Physics, the more impressed I am with the library. It's written in .NET, so I already have a strongly-typed, managed way to access it. It's thread-safe, and has its own thread manager. It took me something like 10 seconds to set up multi-threading in my little test scene. About 10 more to have BEPU updating completely asynchronously from the render queue. 100 active crates? 280 FPS (which is kinda low -- but this is with an idletime rendering queue, rather than a dedicated render loop. A dedicated render loop would, no doubt, run much faster, but make it more difficult for me to let the OS handle mouse/window events. Perhaps that is an experiment.) 200 active crates, and another 60 inactive? 230 fps.

The only downside I can really see is its inability to serialize/deserialize mesh data. Granted, it allows for the creation of arbitrary meshes, I can't help but feel like pre-serialization would lower loading times -- passing the mall scene so far straight in is detrimentally slow. I've not actually had the patience to wait on it, but some of the chunks were taking 3 or 4 seconds apiece to generate a physics representation.

Granted, throwing some 350,000 vertices at it (among like 80 meshes) is a bad idea in general. The more I think about it, the more I can't help but feel like some sort of editing tool is warranted. Something that would allow me to configure a level layout, define/generate physics properties, etc. And some sort of actor studio, to let me make some preset configurations for NPCs or somethin'.

WE SHALL SEE.

No comments:

Post a Comment