I think I’ve mentioned this before on the forum, but I can’t remember. I’ve mentioned it to Bobo a couple of times. I’d love to be able to add particles to a PRTLoader or a PRTVolume using a magma flow.
Example: On a PRTVolume, magma modifier, add distance to another object using get nearest point, multiply by a 3D texture, plug into new magma PRT generator node and PRTs are added using that logic.
At the moment I have to do the reverse, delete PRTs and it makes things very slow because you first have to generate all these PRTs that you don’t need before deleting them using the selection channel and Krakatoa Delete modifier.
It is not that simple, and it would require a separate PRT Generator object or something like that that runs the Magma, has logic when to stop looping, and can store and manage the resulting particles. I don’t think a Magma modifier will ever be able to give birth to new particles, because it has no place to store them in. All Krakatoa modifiers are being run by the base object in a highly hacky way, totally abusing the 3ds Max Modifier Stack. So there is no data that lives on the stack, all data lives in the base object. The Magma modifier itself does an implicit loop over the particles that the base object hands over to it, and just outputs existing or new channels of these existing particles.
To implement a way to make new particles, we would need a dedicated base object (similar to the PRT Maker or the Stoke Particle Simulator), but one where a Magma loops N times based on some logic, and gives birth to particles that are then stored and managed by that base object. The Magma could of course reference a PRT Volume or PRT Loader or any other scene objects to make decisions about the particle birth, but the actual new particles will never be stored together with the PRT Volume or PRT Loader’s particles, they would be a separate stream.
As you mentioned, right now it is possible to create N particles and then delete the ones that are not needed as an inverse approach to making particles. I agree that it is a bit slower, but in the end it has about the same end result - a PRT Maker (or whatever PRT object) that stores the particles you wanted. So if we would implement a PRT Generator that can give birth to particles, it might be a bit faster than the current workaround, but that would be it. Except for some performance gain, it would not offer any other benefit. This is why it has not happened yet, and might not happen soon.
In PFlow, a Spawn operator has the ability to add new particles to either the current Event, or send them out to a new Event. However, PFlow Events are technically Particle Containers. A Magma modifier is not a Particle Container, and we simply cannot make it into one. However, a more advanced version of the Stoke Particle Simulator could probably work that way, adding more particles to the existing stream and marking them as part of a specific group at birth. So your request might be better suited for the Stoke Wish List… I think I will put it there.