0
$\begingroup$

I am trying to emulate wind blowing dust in a desert scene, and try as I might I cannot stop the particles falling through the emitter object (a simple terrain).

  • The particle emitter is set to "size deflect" as per this answer: Particles fall through collision object ...and the solidify modifier also does not stop particles passing through the mesh.
  • Gravity is turned down for the dust particles to 0.1
  • The emitter has some damping and friction.
  • I checked the normals and they are pointing the right way, so the particles are should be being emitted along them which is roughly globally Z in direction - as it should be.
  • The size of the particle returned to its default size 0.05 as per another recommendation and the source object scaled up.

Is there ANY solution to this? Any other tips of hacks?

Particles Falling Through

$\endgroup$

1 Answer 1

1
$\begingroup$

The problem is that the particles (depending on the velocity you give them and other parameters) are to a great part generated directly at the surface, not above. And when the emitter is also a collision object for the particles, a lot of them can or will be reflected below the face, the opposite side of what you want.

What I do in those cases is duplicating the emitter object and placing the second slightly above the first. The bottom one gets the collision, the top one the particle system (with Show Emitter disabled). This way I'm sure the particles are above the collision object and are not reflected below the surface.

Here for example a setup with a 10 × 10 m "dune surface". The emitter object (still visible) is at a height of 0.00 m, the collision object slightly below at -0.01 m:

sand emitter & collision

And this is the result with particles and some wind and the emitter set to be invisible (there are just a few particles falling off to the side, that's because they are blown beyond the border of the surface). Sorry for the bad quality, the file size here is limited to 2 MB:

sand animation

$\endgroup$
6
  • $\begingroup$ Thanks for this very useful response. I have done this in the past to try and get around the problem and it does not work. Also - technically the particles are given a velocity along the normal (which is pointing upwards) and so should be emitted before falling or being blown back against the geometry. My solution was to use a cube which I then switched off for rendering. It seems particles in blender cannot handle complex geometry in certain circumstances. $\endgroup$ Commented May 9, 2023 at 8:35
  • 1
    $\begingroup$ @DrIgnatiusCole You did what in the past, what I show in my answer? It works as you can see, depending on the particle size and the gap between upper and lower surface... About the normal velocity: the problem is not that they are falling or being blown back against the geometry. In the moment they are emitted they are directly on the geometry which has the collision and get repelled immediately. Depending on simulation steps and substeps some might not emit exactly at the surface but slightly above or below it, so all this might cause complications with the emitter being the collider. $\endgroup$ Commented May 9, 2023 at 9:04
  • $\begingroup$ @DrIgnatiusCole Additionally to what I mention about particles being emitted below the surface, as you can see in this answer to a different problem, they are not always generated on or above a surface: Hair particle system forming square gaps $\endgroup$ Commented May 9, 2023 at 9:07
  • $\begingroup$ I have tried this in the past and still found the particles breaking through - I think even reported it as a bug. However, trying it again now it worked well. The trick is instead of using vertex groups for the emission, duplicate the part of the mesh you want the particles to emit from and then hide emitter. Have the emitter just slightly above the surface for safety. $\endgroup$ Commented May 11, 2023 at 16:01
  • 1
    $\begingroup$ @DrIgnatiusCole You didn't mention vertex groups in the question ;) At least from my experience with hair I would have definitely advised against using vertex groups... $\endgroup$ Commented May 11, 2023 at 18:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .