Repopulation density distribution


#1

Is repopulation supposed to increase density or redistribute it? It seems that in our tests it increases the density of the particles, which doesn’t make much sense to me. Shouldn’t the density be spread over the new particles so that user doesn’t have to change their render pass density multiplier? It’s unclear from the examples on the thinkblog how the density is affected.


#2

Bobo and I have discussed changing it, but this is how it currently works:

Currently incoming density is being ignored, and it is using the same density calculation as the PRT Volume would use (which normalizes density based on seeded particles per unit squared cubed). Then once that density is computed, a falloff factor is also included which can linearly cut down on the “outside edge” of the newly seeded volume to create a “softer” look. That falloff is user-controlled and is disabled when set to zero.

So the density you see is the above calculation, and currently incoming density is being ignored. I can perhaps include the incoming density as another multiplier for the final density. It is a little convoluted, but does that make things more clear?


#3

Whoa…

Oh, OK, that’s explains everything. Yeah, I was expecting instead of a levelset that you would be splatting the particles as ellipsoids to a voxel array and then sampling the new points’ densities against that filtered voxel array. Yeah, I was way off.

The Thinkblog mentioned the use of a Radius channel. This didn’t work for us, is it implemented?


#4

Per unit squared or per unit cubed?


#5

It is distance cubed, totally (:

Repopulation doesn’t use a radius channel, it uses a constant value. The radius is the voxel length of the underlying grid, so it must be constant. We can consider changing the way it works though.


#6

I assumed it was splatting ellipsoids to the grid, so I thought a radius channel would be appropriate, so we could make big splats in areas where there was a large inter-particle distance (and where the particle frequency was thus low) and make tiny splats where there are small inter-particle distances (and thus preserve high frequency detail).

Obviously the voxels would have to be the smaller size, but that’s why I was asking about if we could set them independently of the radius. But I was also confused as to what was happening so I have no idea if this makes sense to you.


#7

Hi Chad, in the latest build we changed the way we compute repopulation density. The original particle set’s incoming density is now respected, and the “repopulated” particles will share the same density distribution as the original particles. I hope you like the change!
See: viewtopic.php?f=166&t=9473


#8

The distribution seems off if the subdivision is 0. For anything higher, it looks fine.

Looks like the density might be copied to the new particles instead of getting divided among them.


#9

Emission also seems to be copied, not divided. Even with the subdivisions. As the particle count goes up, so does the emission amount.


#10

Oh yes! Setting subdivs to zero is currently buggy. That is my fault. I will fix it in the next build.

So, the density will look slightly different in the next build again. Thanks for pointing out the problem!