[Feature Request] Distance Field based Particle Behaviors

Wouldn’t it be sweet if GPU particles could sample the distance field and change their behaviors according to it?

Each particle could sample the field in a tetrahedral pattern (to keep texel samples down) and do things like flow around environmental elements without the need for a clunky/hard to make vector field.


Ground hugging clouds that flow over terrain, windy particles that flow around obstacles, environmental collisions that don’t rely on the depth buffer, rivers of particles, static meshes that absorb particles particles from the environment…

Tons of neat effects!

Hi zalo,

Thank you for your request, we will take this into consideration.

Hi zalo,

Adam entered a ticket for this to be considered by the engineers. For your reference the JIRA # is UE-8297.



Oh wow, I really like this suggestion!

Yeah, this would be pretty cool. I could imagine using the SDF to help generate an implicit global vector field in the world thereby re-using that code path for the most part. If you don’t want a vector field that big, scope it to a volume and allow the user to place them with the editor.

I just realized that if the particles have a persistent state, they could compare the current DF value to the previous one and do even cheaper gradient finding since the DF is in the same coordinate space
(i.e. one unit the particle moves is one unit in the distance field; if the particle moves one unit, but detects a half unit change in the distance field, it can realize it’s traveling at a 45 degree angle or something normal to the distance field gradient (possibly using Lagrangian multipliers)).

This would make behaviors like clinging to a certain “altitude” in the DF much cheaper; it would be possible to have a lot more particles (among other things).

Yep you can do a ton of cool things with a global SDF. I’ve been wanting to expose it for a while but haven’t gotten around to it yet. The main challenge is in the culling to make it fast.

This would be such an awesome addition… I can think of dozens of ways I would use this if implemented. Hope the culling isn’t too difficult Daniel, this would be so much fun to use.

Might even make a great showcase feature for introducing the power of Niagra! hint hint… :smiley: