Particles and Collision Detection

Hello, I am new to the forums here and rather new to Panda3d.

I have been searching the forums, manual, and reference section in order to discover the best way to handle collision detection with Panda3d’s particles.

Thus far, I have not had much luck and the forum posts that seemed related have not been giving me the impression that Panda’s particles are capable of collision detection, at least as I initially hoped they would.

Here is my scenario: I have a smoke particle system set up. It looks and acts the way I would like until it reaches the ceiling of a building it is in. Once it hits the ceiling, I would obviously like to have it stop moving in the upwards (starting) direction. I would also like the particles to kind of seep/flow out of windows or doors that are open.

I thinking I would be able to send out a few collision solids (probably spheres) from their own emitter with the same general properties as the smoke particle system and when they collide with objects, their properties would be changed and would also change those of the smoke particles.

However, it seems that once the particles have been emitted, there is nothing I can do to act upon them. I think I am wrong and that I just have not found the correct methods with which to affect already released particles.

So, does anybody have any suggestions for getting particles to react with the environment (like a house) as I described before?

If I have to, I guess I can just have one smoke particle system emit them to the ceiling and then have another two or three smoke emitters send them along the ceiling and out the openings. But that is less dynamic than I want because it involves knowing more about the exact layout of the container.

Yes after particles leave there is nothing you can do about it. Thats why i made my own particle system where that is possible. Yet this manny collisions would probably kill fps.

Your best bet is setting up different particle emitters to approximate what you want.

Thank you very much treeform.

I’m digging up this terribly old thread. It’s been 13 years, but do I understand correctly that Panda3D’s Particles system is still not interacting with other objects? I tried the “particles” demo from the distribution of Panda3D (it is with a teapot) and I have the impression that the teapot is completely “transparent” for particles (particles seem to pass through it).
Maybe I will add what I would like to do, for example - let’s imagine that I have some transparent or semi-transparent object with a non-primitive shape:


I would like to place a particle emitter inside an object and watch the emitted particles gradually fill my object, swirling around inside the object.

I may be mistaken, but to the best of my knowledge Panda’s built-in particle system has no support for collisions.

I don’t know offhand whether there’s a way to gain access to the individual particles of a system and their velocities, but if you can find a way to do so then you might be able to use that to produce your own collisions. (Perhaps using line-segment colliders to approximate the particles.)

If not, then you may find that creating your own particle system is called for.