Position jitter using partitions

Howdy,

I have particle data from another piece of software that I have converted to PRTs. I would like to increase the number of particles using Partitions and a Noise Modifier on the PRT loader. However, I only need the position of the particles jittered, not the velocities. When I render the partitioned particles with motion blur, the particles no longer have their initial velocity.

I have followed the tutorial here:
thinkboxsoftware.com/krak-pa … sting-fil/

At the end of the tutorial, there is a disclaimer about this behavior, but no recommendation for a good workaround.
"Since deformations are applied not only to the Positions of particles but also to their Velocity and Normal vectors, these channels (if available) will also be randomized by the Noise Modifier. "

Any recommendations on the simplest way to fix this?

Thanks!

-Jim

The trick is to copy the Velocity channel into a temporary vector channel, apply the noise to the particles and copy the velocities back into the Velocity channel.
To do this,

*Add a Krakatoa Channels Modifier to the PRT Loader.
*Set the Input node to Velocity, Output node to, say, MXSVector or Mapping2 (or a custom channel with type float16[3]).
*Add the Noise modifier on top of the KCM and set it up as usual.
*Add a second KCM on top of the Noise and set the Input to the channel you output to in the other KCM, and the Output node to Velocity.

That should solve it since the Vector will be restored to its original value after the noise is applied, and the Noise modifier does not apply to arbitrary vector channels, only the Positions, Velocities and Normals.

Worked like a charm! Thanks Bobo!

-Jim

So, while the partitions have successfully increased the density of the particle cloud, there is now a lot of flickering and particles popping on and off when an animated sequence is rendered. When rendering the original particles through Krakatoa, the animated results look very smooth. Does this flickering have to do with the way that I’m using the Noise modifier on the PRT loader? I’ll see about posting an image if I can, as an example.

I’ve attached a pair of images displaying the “exploding” particle cluster problem. They are consecutive frames in the sequence and show a cluster of particles that breaks apart from one frame to the next (circled in red on the first frame). Any idea what might be causing this?

-Jim

spray_245.jpg
spray_246.jpg

This does not look right. What is the scale and amount of Noise you used?
When using that approach, the idea is to get the particles moved a TINY bit around (typically around 0.1 unit or so), with a very high frequency noise . Your results look nothing like what I would expect, even on a single frame. Esp. if the chunk you circled is ONE particle after partitioning.

Can you post a frame with just one partition to get a better idea of what the original particle system looks like?
Can you also post the settings of the Noise modifier?

I imagine it has something to do with the settings on the Noise modifier that I applied, as I have the noise set fairly high in an attempt at greatly increasing the density of a particle sequence that has been delivered to me. I’ve included an image of the unpartitioned render sequence, below are the settings on my noise modifier:

Noise:
Seed: 0
Scale: 0.1
X Fractal
Roughness: 0.0
Iterations: 6.0

Strength:
X: 50.0cm
Y: 50.0cm
Z: 50.0cm

spray_245_single.jpg

Unless you particles are representing something 500m wide, your noise it too high strength. You only want them to offset into the tiny spaces between the existing particles.

What Chad said.

That being said, the particle distribution (density) is very very low, so the approach is not going to work very well anyway.
If you have 10000 particles, you cannot expect to get millions that look convincing.
In that case, you could use Frost to increase the count by creating blobs of points around the particles as shown here:
thinkboxsoftware.com/frost-c … -and-krak/
But Partitioning wants a relatively dense distribution to just fill in the gaps, assuming the gaps are approx. the size of a pixel.
In your case, the gaps are huge and no amount of Partitioning will make the stream look dense.

The reason your positions were spread that much was that the particle was shifted by a very strong Noise - a tiny change in the position leads to a huge displacement. If your Noise had a strength of, say, 0.5 cm, the offset would be tiny and all the partitioned particles would appear as a small fuzzy point, similar to what you get from Krakatoa DOF.