Real Physics Based Wind Simulation Over Terrain

I have the world mapped in Unreal Engine using the Cesium plugin and am wondering if its possible to perform basic fluid simulation over a mountain range. By performing the fluid simulation I want to only obtain the velocity of the particles (wind) at all locations (roughly every 10 m^3 voxels of air).

I have looked into performing this simulation using the fluids plugin for Niagara, however, the issue I am facing is how to make the emitter particles to collide with themselves. Atm, the particles collide with the obstacle and leave an empty space behind it (image 1). I do not need super accurate results such as something a CFD software would produce, I just need low accuracy results that simulate updraft and downdrafts.

flowsim

I have done research and people recommend to use Houdini to obtain a vector field and port it into unreal engine.

I am looking for something as follows:

Any help would be appreciated!

1 Like

this is still relevant and the topic is not covered at all today

I would be glad to hear any ideas, thx!

The engine can’t even do 2+2 correctly.
If anyone thinks you can get it to make the complex calculations required to even somewhat accurately simulate anything using Chaos you are either deluded, dreaming, or just wrong.

To do anything like this, OP had the right idea but didnt go far enough:

Simulate whatever it is in an external system that doesn’t suck, and import it to the engine - usually as an alembic cache.
Then only use the engine for what it is barely decent at: rendering (and not even that! Look at the mess they made with Nanite!).

Otherwise, which you always can, write your own C++ physics.
The calculations for it are indeed complex, but c++ is not like the engine. With it, 2+2=4 and not 22.
Most of the calculations and even code bits are generally even shared by entities like NASA.

Obviously if you think “oh. But then I can have real accurate runtime calculated physics” you are still dreaming. The calculations are complex. To get results in real time without hangups you have to simplify and make compromises.

Can you do better than epic? Yea. Doesn’t take much really. Can you do better than Nvidia? Probably not.

You can also (though i think at this point its almost more work than just writing clean c++) build from source and use Nvidia’s PhisX.

While doing that, maybe you want to use one of their other models with fluid simulations instead of physx. Game framework or some such.

I havent looked in a long time, but it is possible that as an Nvidia Developer you get leech access to pre-built physX engines like they do with the ray tracing they maintain for epic, since epic is just utterly incompetent.

Anyway.
A stupid solution to this for something like a blowing leaf would be to code a material shader for it.
Move the leaf using WPO. Have the material read a texture (x/y/z) that represents the same values as the vectorfield you produce for a specific volume.
If one pixel = 1cm you can get some pretty accurate stuff on up to 4m.
At the expense of ram and vram.

Doing anything cool with this to where its reactive probably gets crazy expensive.

So then you could try something like Fluid Ninja or similar potentially …