how to control different particle radius when fluid sim

   1497   6   1
User Avatar
Member
144 posts
Joined: Feb. 2019
Offline
i want to control different particle radius when fluid sim , and then i want instance some geo to the points ,but i change pscale attibute not work , help please

what i want is like this pic

Attachments:
QQ图片20240811213209.png (1.3 MB)

User Avatar
Member
58 posts
Joined: Aug. 2014
Offline
A lot of the core functionality of the FLIP solver relies on assuming a fixed uniform particle size to speed up various parts of the solve. Variable particle size would probably require a *lot* of work to retrofit the solver (or building your own custom one from microsolvers), and would likely be a lot slower too.
Dan Wood
Vortex VFX Ltd
User Avatar
Member
9376 posts
Joined: July 2007
Offline
happybabywzy
i want to control different particle radius when fluid sim , and then i want instance some geo to the points ,but i change pscale attibute not work , help please
you will need to clarify what it means that pscale doesn't work

- picture clearly shows different pscale, so instancing should take it into account

- or have you expected the particles to also be repelling each other? Flip doesn't do that by default, but you can turn on Particle separation on the solver, which however does only uniform radius
So either turn it on, break inside and uncheck Assume Uniform Radius on gasparticleseparate1
OR
connect fresh Gas Particle Separate into Particle Velocity input with it unchecked and settings matching that of the internal one

- pscale itself doesn't contribute to the FLIP solve that much, it will likely be used during rasterization so may affect rasterized size and therefore cook time and weight of the values, but the actual solve is done on the grid so some pscale variation shouldn't be an issue
Tomas Slancik
CG Supervisor
Framestore, NY
User Avatar
Member
144 posts
Joined: Feb. 2019
Offline
VortexVFX
A lot of the core functionality of the FLIP solver relies on assuming a fixed uniform particle size to speed up various parts of the solve. Variable particle size would probably require a *lot* of work to retrofit the solver (or building your own custom one from microsolvers), and would likely be a lot slower too.

thank you ,and is there any tip can get same result as the pic?
User Avatar
Member
144 posts
Joined: Feb. 2019
Offline
tamte
happybabywzy
i want to control different particle radius when fluid sim , and then i want instance some geo to the points ,but i change pscale attibute not work , help please
you will need to clarify what it means that pscale doesn't work

- picture clearly shows different pscale, so instancing should take it into account

- or have you expected the particles to also be repelling each other? Flip doesn't do that by default, but you can turn on Particle separation on the solver, which however does only uniform radius
So either turn it on, break inside and uncheck Assume Uniform Radius on gasparticleseparate1
OR
connect fresh Gas Particle Separate into Particle Velocity input with it unchecked and settings matching that of the internal one

- pscale itself doesn't contribute to the FLIP solve that much, it will likely be used during rasterization so may affect rasterized size and therefore cook time and weight of the values, but the actual solve is done on the grid so some pscale variation shouldn't be an issue

thank you for reply , the pic is what i want to achieve , not my work . i have turn on particle separation on solver to keep every particle with uniform distance , but i want to random select some particles to make them more large particle distance , is there any tip can get same result as the pic?
User Avatar
Member
58 posts
Joined: Aug. 2014
Offline
The main issue with introducing large pscales along with separation into a FLIP solve is that FLIP specifically uses the particles as markers to track the fluid volume itself, and even more importantly, as a way to transfer velocity around the voxel grid - if you override it somehow and start introducing large particles that push other particles away, to the FLIP solve what you're left with is just points with large gaps between them - it'll interpret those gaps as missing fluid, and you'll probably find your fluid starts to collapse in on itself.
To get a solid, predictable FLIP solve, you ideally need a minimum of 3-4 particles to be in each and every voxel at all times - that's why the default is 8 per voxel - it allows for variability when particles move from one voxel to the next, without leaving empty cells.

I think the best approach to your problem would be to run a conventional FLIP simulation, saving the vel and surface fields... then later you could use the vel field cache to advect a new set of particles with wildly variable pscale, with some kind of separation/pushout function running on them to space them out properly... plus you could use the cached surface field to pull any of those advecting particles back inside the fluid if they get pushed out by the separation and/or advection processes. (If you wanted to get real complicated, you could probably set it up with a separate extra particle object inside the same DOP network as the FLIP solve, and run both concurrently...)

It's not a particularly simple setup, I know, but I suspect that'd be your best bet. If I wasn't crunching away on a project, I'd have a go setting it up myself, but I just don't have the time at the mo unfortunately.
Edited by VortexVFX - Aug. 12, 2024 04:36:01
Dan Wood
Vortex VFX Ltd
User Avatar
Member
31 posts
Joined: July 2018
Online
If your shot is more focused on the particle rather than a typical meshed flip, you can try vellum grain and uncheck the uniform pscale in the solver
MotionCOPs toolkit - pushing COPS into motion design and dynamic effects territory.
https://github.com/Boning1011/motion-cops [github.com]
  • Quick Links