I'm working on a simulation toy, and I want to model wind on my world/levels.

I'm currently using playrho (a box2d fork) with gravity set to 0 to model a top down view.

I assume the wind will be represented as a vector field. But I'm unsure what method to use to get this field.

Could someone point me in the right direction? Should I be looking at the navier-stokes equation? Does anybody know of any relevant tutorials?

Thanks in advance!

  • Temporalin@programming.dev
    ·
    1 year ago

    I forgot most of my simulation subject, but we did a 2D particle simulator and yes, you will need Navier-Stokes if you want the effect to be physically correct. You will need to solve a numerical problem each frame to compute turbulences. Wind is a force with a source that will propagate depending on its parameters (like viscosity)

    If you don't implement that, you won't be able to implement things like walls that block wind and such, which I guess is something you might had in mind. Also, having a changing environment is probably pretty hard, so prepare yourself.

    I just took a look at the source code of The Powder Toy, and the class Air (src/simulation/Air.hpp/cpp) seems to implement what you need. Sadly it is not very well documented, so you'd have to work out the relation between code and physical formulation.

    Sometimes physically incorrect simulations are easier to implement, have lighter computations, give the designer more control of the game, and makes the player able to better predict how the game will behave and have more fun.