|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hi,
I've been exploring different methods for keeping particles spaced from one
another. There are many ways to go about it, so as a matter of course I thought
I'd try using a square falloff function for each particle. It works fairly well
and is less likely to produce abrupt changes than other methods. Initially the
square falloff was clipped between 0.0 - 1.0.
On a whim I thought I'd try changing 0.0 to a small negative value based on the
current particle's radius. What occurred next confirmed my suspicions: the
particles gravitate toward each other while still keeping their distances.
I might use this for dumping piles of rocks onto/into objects, making jars of
marbles, or whatever. In addition to the particle-particle square falloff
function, other types of collision detection *will* need to be used since it is
very difficult to make functions from, say, a mesh.
For this animation, the following rules were applied:
1) a particle must always keep a relative distance between itself and another
particle
2) a particle will become less responsive to change at higher masses (sizes)
3) a particle will gravitate toward another particle based on the square
falloff determined by any particle's position and mass (size)
Momentum is not a factor here.
The reason they all go toward the center is because the averaged positions of
all particles would be around <0,0,0>.
An interesting thing to note is that the smaller particles will eventually reach
the center of the mass. This is partly caused by the instability of the system,
but it is also largely due to granular convection.
http://en.wikipedia.org/wiki/Granular_convection
I think I explained myself sufficiently ;) Sorry about the low video quality!
~Sam
Post a reply to this message
Attachments:
Download 'particles-2m_46s.mpeg.mpg' (674 KB)
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hello again,
Here's a 3D version of the same particle simulation. Notice how the particles
slow down as they come near other particles and the global particle mass center.
This is /not/ realistic... The apparent gravitational influence these particles
exhibit is all due to a quick hack I made to the overall behavior. My goal was
not to make an entire physics sim; my intention was merely to keep the particles
from intersecting each other...
If you're used to huge, high-quality animations, I'm sorry :P I'm using
1/2-speed dial up over here :(
~Sam
Post a reply to this message
Attachments:
Download 'particlesc-5m_07s.mpeg.mpg' (512 KB)
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Last post here for a while...
Slightly different scene settings: 4X the number of particles (200 pts), and
twice the number of generations per-frame...
Higher-count point sets really slow things down. This animation (48 frames
total) took around 20 minutes to render. Most of that time was spent parsing
(over 20 seconds per-frame) :( I need some sort of relevance map to determine
when to evaluate other points, and when when /not/ to. Maybe if I devise a 3D
array where each unit cell has n-amount of points, I could just pick from
that...
~Sam
Post a reply to this message
Attachments:
Download 'particlesc-19m_36s.mpeg.mpg' (324 KB)
|
|
| |
| |
|
|
|
|
| |
| |
|
|
> Hello again,
>
> Here's a 3D version of the same particle simulation. Notice how the particles
> slow down as they come near other particles and the global particle mass center.
> This is /not/ realistic... The apparent gravitational influence these particles
> exhibit is all due to a quick hack I made to the overall behavior. My goal was
> not to make an entire physics sim; my intention was merely to keep the particles
> from intersecting each other...
>
> If you're used to huge, high-quality animations, I'm sorry :P I'm using
> 1/2-speed dial up over here :(
>
> ~Sam
>
Realistic or not is all relative.
Here, you have atractive AND repulsive forces at work. At larger
distance, the atractive part is dominent. At small distance, it's the
repulsive aspect that dominate.
When the surfaces just touch, the two cancels each other.
It's somewhat similar to what appens at a very small scale, like at the
molecular level.
It also can simulate your spheres been in a viscous medium. The fluid
only have a small effect when the particles are far apart, but have an
increasignly strong dampening effect as the particles get closer from
each another.
Alain
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
On 3/28/2011 11:50 AM, Alain wrote:
>>
>> the particles slow down as they come near other particles and the
>> global particle mass center. This is /not/ realistic...
>>
>
> It also can simulate your spheres been in a viscous medium. The fluid
> only have a small effect when the particles are far apart, but have an
> increasignly strong dampening effect as the particles get closer from
> each another.
>
I kind of thought so too. With gravity and environmental CD applied, all
sorts of viscous fluids could be modeled (if only partially). Each
particle's influence would have to be very local, though. Certain
effects could be added to it, such as coloring each particle
independently which would look awesome (though potentially
disgusting)... I wouldn't even have to worry about different particle
sizes, which would save a few calculations.
But I'm stuck with low-count point sets until I can find a way to
optimize the interactions. I may look into using an octree, but I'm not
sure POV is up to the task of expanding arrays on the fly. There's a
macro for expanding an array in arrays.inc, and if I copy it into the
main source file it might just perform reasonably.
Another idea is to use some sort of nested pigment_map of spherical
pigments, but I then would be limited to only 96 particles.
Another idea yet would be to use a blob pattern and test against it, but
POV doesn't have one of those (MegaPOV might though).
If nothing else, it was a fun experiment :)
Sam
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
|
|