I have a question about the Krakatoa PRT Cloner. My idea was to use this modifier to increase the particle densitiy of a sand animation. But it seems like the Cloner changes the distribution of moving particles on every frame. Is there a way to make the distribution consistent? If not, is it possible to add such a feature? I´ve attached a short sequence to show the problem.
If you are using the new Repopulation feature in v2.3, then the distribution will change as particles move because this method uses a grid and random particle seeding within the grid. If you are using actual cloning to replace each particle with a pre-defined particle source, I would expect the new particles to stick and move with the originals. But then it would be rather difficult to produce a smooth volume due to intersections, and the shape(s) used could become too obvious.
The Repopulation was meant for situations where the individual particles are not really distinguishable on screen (which is the case with most Krakatoa renders, but unfortunately not with sand simulations which can appear noisy).
Thanks for the explanation!
For the example sequence I´ve used the “Spherical Distribution”, but in this mode the distribution is changing too. Would it be possible to integrate a feature that locks the pattern for each particle? This would be very helpful in such special cases.
I´ve also tried the cloning method, with a PRT Volume. This works very well, but there are some problems I can´t solve yet and I think Magma is the solution. I need to give each particle a random rotation, size and color that stays the same over the lifespan. Is this the right task for Magma?
I’m currently trying to find the best solution to make this task of multiplying existing low res sim and make it very high res. As I was testing stoke, prt cloner, partitioning, etc, I got into krakatoa prt surface. This would be the perfect solution if I could add a prt loader to it! Since it follows surface animation (without changing position per frame like prt cloner) and we can make instant copy’s using random seeds. What do you think Bobo?
my solution so far is to use Pflow on the lowres particle sim to give each particle random rotation, scale and color (Data Operator of Box3) and export it to PRT. Then I use the PRT Cloner to replace the particles with a PRT Volume (Sphere) and because every particle has its unique rotation and so on, there is no visible pattern or flickering.
I don´t know if this is possible with Magma too. Regarding to this tutorial thinkboxsoftware.com/krak-pa … sing-magma it should work, but not in network render mode and that´s why I can´t use it.
Frost also has a feature to give each particle a random value like rotation, scale etc, maybe that could be a solution too. I will test it, but I still think that the PRT Cloner should also have the ability to give each “clone” a random rotation and scale.
Edit: Unfortunately Frost doesn´t really accept a PRT Volume object as Custom Geometry, but it was worth a try
You can set the Orientation channel of the PRT Cloner using Magma and the clones will rotate.
Producing an unchanging “random” orientation requires an unchanging channel that is unique per particle. Using the ID channel (if available) would be one possibility. The attached scene does that:
*I created a PRT Volume from a GeoSphere (but you can use any particle source).
*I created another PRT Volume from a Teapot and gave it a Color channel based on the Normals to visualize the orientation better
*I added a PRT Cloner to distribute Teapot volumes to the GeoSphere’s particles.
*I added a Magma before the Cloner and set the output channel to Orientation.
*I used the Index channel (since PRT Volume does not have an ID channel) as the unchanging per particle value.
*I created a Noise using the Index as Float divided by a Float with some decimal places because integer values produce the same noise distribution, and we want to avoid that.
*I used the resulting noise value multiplied by a large number (1000) as the Angle of an AngleAxisToQuat operator.
*Then I needed 3 random values for the Axis. I used the Index itself as the axis value, and flipped its sign based on a Modulo operator - the one axis got flipped every second time, the other every third and the third every fourth time. Then I combined them into a Vector and passed it as the rotation axis.
The resulting Orientation channel is not the best random distribution ever made, but good enough for what you are after…