Hi,
I am very new to BEPU, and have just implemented the full character demonstration from the playground demo. I must say that I am impressed how fast it is to setup. However, I am curious how BUPU (or rather the Space object) handles spatial partitioning, or if I am supposed to implement my own (Octtree for example) and use the Add/Remove opitions of the Space object. I would like to import a FBX file as a kind of BSP layout, and other FBX files as detailed object, possibly culled using frustum culling in a heirarchical bounding setup.
Also, in regards to the character setup, which uses a Cylinder with a option for setting the mass (dynamic). I can change every setting in all the relevant source files after creating the intial CharacterControllerInput object in the XNA boilerplate, but the program crashes if I set the Body.Mass property, even if I give it the very same value. The only time it doesn't crash is when I give it a negative value, which simply turns it kinetic (which isn't what I want right now). Is there something I must call?
Chris
Some questions about spatial partitioning
Re: Some questions about spatial partitioning
The default BroadPhase implementation is the DynamicHierarchy. It's a gradually-adapting binary bounding volume tree which provides quick queries and object overlap testing.However, I am curious how BUPU (or rather the Space object) handles spatial partitioning, or if I am supposed to implement my own (Octtree for example) and use the Add/Remove opitions of the Space object. I would like to import a FBX file as a kind of BSP layout, and other FBX files as detailed object, possibly culled using frustum culling in a heirarchical bounding setup.
For physics in particular, you don't have to add any additional acceleration structures for the built-in types to work. The 'BSP layout' fbx file could be used to create StaticMesh. The other tinier placed objects could be InstancedMeshes (if there are a lot of the same mesh with different transforms) or just more StaticMeshes. If there's a lot of static objects, using the StaticGroup of the development version to bundle them together would help performance.
If you're wondering about graphics and culling using the built-in structure, it's possible. The Space.BroadPhase.QueryAccelerator exposes a frustum query (in the XNA version, at least). It may be more efficient to use a graphics-specialized structure. If there's anything that needs culling and queries that isn't a part of the simulation, it would need a special structure anyway.
This is probably a known bug in v1.1. Setting the mass with a zeroed out LocalInertiaTensorInverse requires adaptive inversion that was missing at the time, if I remember right. It should be fixed in the development version.but the program crashes if I set the Body.Mass property, even if I give it the very same value. The only time it doesn't crash is when I give it a negative value, which simply turns it kinetic (which isn't what I want right now). Is there something I must call?
Re: Some questions about spatial partitioning
Thanks for explanation. I've just downloaded the latest source and have noticed the changes in the sourcefiles i'm using, which is most welcoming. I'm also looking over some of the internal classes of the DLL (just rebuilt), which should be a good reference. 
