How to simulate pressure with particles?
Members - Reputation: 125
Posted 20 July 2012 - 06:21 PM
- The goal is to fill a constantly changing 2d space/void with small, frictionless spheres. The game is trying to simulate the ever-growing pressure of more objects being shoved into this space.
- The level itself is constantly scrolling from left to right, meaning if the space's dimensions are not changed by
the user it will automatically get smaller (the leftmost part of the space will continually scroll off-screen).
I'm wondering what some approaches are that I can take to tackling these problems...
1. Knowing when to detect when there is space to fill and then add spheres to the space.
2. Removing spheres from the space when it is shrinking.
3. Strategies to simulate pressure on the spheres such that they "explode outwards" when more space is created.
The current approach I am contemplating is using a constantly moving wall, that is off screen and moves with the screen, as the attached image illustrates.
This moving wall will push and trap the spheres into the space. As for adding new spheres, I was going to have either (1) spheres replicate themselves upon detecting free space, OR (2) spawn them at the left side of the space (where the wall is) - pushing the rest of the spheres to fill the space. I foresee problems with idea #1 because this likely wouldn't really create/simulate pressure; idea #2 seems more promising, but raises the question of how to provide a location for these new sphere particles to spawn (and the ramifications of spawning them when there IS no space).
Thanks so much in advance for your wisdom!
Members - Reputation: 158
Posted 20 July 2012 - 07:21 PM
You can use coulomb's law between all the particles, and then they will repel each other.
More particles will give more tension or pressure.
Edited by Lars-Kristian, 20 July 2012 - 07:23 PM.
Members - Reputation: 681
Posted 20 July 2012 - 07:47 PM
Members - Reputation: 287
Posted 23 July 2012 - 02:34 AM
To calculate the vector flow fiekd id have the same sort of grid but this one would be a scalar field that sources its values from the scene. Then calculate the flow vectors.'technically a tensor field' and it's done
typos phone and some body probably already said this.