Quote:What do you mean by "a modified BSP format"?
BSP Particle Collision Format. It would adhere to most of what I describe in this post.
Quote:I have a very little experience with BSPs so please forgive me if what I am about to say is nonsense.
Classic BSP is used to partition space, so I guess that in order to incorporate BSP in a particle collision scheme you should enclose the particles with some sort of a convex polyhedron, say AABB.
No, its not nonsense, very good questions.
Quote:(1) If we choose AABB, we have 6 partitioning planes for every particle.
I am considering that each of the following should be attributed to a dimension, or aspect, of each particle. I feel that the node based structure of BSP lends to that application. Saving state information, from a particular point of view (i.e. a particular electron) can be achieved using the 'Neighbouring Entities'. One thing I think is not studied enough in partical collisions is relativity and this method just seems nice and flexible for that application.
Velocity
Direction
Orientation
Energy State
Temperature (K)
Neighbouring Entities (optimisation trick)
Charge
Spin
(Numerous Others...)
"The partitioning can be represented as a tree, which has the partitioning planes at the internal nodes and objects of interest at the leaves."
http://66.102.9.104/search?q=cache:peBGp8xJ6CkJ:www.cc.gatech.edu/classes/AY2006/cs4451b_fall/bsp.pdf+partitioning+planes&hl=en
Quote:(2) While traversing the BSP, we have to perform some (relatively fast)computation for each plane that we encounter, in order to determine where the colliding object stands relative to the plane.
I did briefly consider this during my post, however, I felt that most simulations are pre-computed to provide accuracy and speed. I also felt that considering the number of dimensions, or aspects, to each particles current state, that the node structure would allow flexibility to alter, add or remove those. Finally, it also allows flexibility to increase the physical dimensions, 4, 10 or 26.
Quote:(3) When the colliding object intersects with the partitioning plane, we have to traverse the BSP in both directions.
Actually, with Neighbouring Entities, the BSP would be traversed in both directions multiple times. Again, I see this as acceptable for pre-computed data, especially because of the flexibility.
Quote:(4) Classic BSP was not designed to handle dynamic data. In fact, you would have to reconstruct it all over again for each frame.
Most of the dynamic aspect would be carried out in main memory, much like a standard BSP. The way I was thinking about this implementation was that the BSP file would be loaded into memory and manipulated by another file to achieve pre-computation of a desired reaction/collision. This would allow separation of the simulated test environment and the data used to manipulate it. Otherwise, a new test environment would need to be composed each and every time a new simulation was run. I don't view that lack of re-usability as acceptable.
Quote:Also, consider the following example:
All of your particles lie on the ground which is aligned with the X-Z plane.
If your particles have the same radius and we use AABB to encapsulate them,
then ALL of the particles have two identical planes!!! This means that performing the collision will be roughly a O(n^2) process because of (3).
I'm afraid this is one of the problems with collision simulation. This is why most of it, even with super-computers, is pre-computed as much as possible. If you do not perform those calculations, your accuracy is questionable.
Quote:I am not sure how well the algorithm scales because of (1), (2) and (3) as the number of particles become larger when compared to loose AABB and spatial hashing. Any thoughts on that?
Moreover, one has to understand that (3) might have a considerable impact in the event where we have dense clustering of the particles.
Neither am I, that is why I used the term 'modified' loosely.
Quote:As for my example. Unless you have a solution to that, I wouldn't touch BSP with a 10 inch stick. :)
There's life in that old BSP horse yet... :)