Playing around with toys which is good.
And I got to the conclusion that stoke is pretty damn fast with working with Wind.
But when I use Ember with it - it’s pretty slow and it does not matter on the number of particles in the sim.
When I simulate 50K particles w/ wind across 500 frames it totals to 5-10 seconds. It’s really fast.
When I drive by ember with container 100x100x75 and resolution of 5 where I have just 2 different vertor noises applied on standard settings its very slow!
And the vector field even isnt dynamic, just a static one. It’s like 5-10s per frame regardless of whether I have 100 particles or 1K or 10K. Looks slower than PFlow in fact. What’s wrong?
SimEmber objects do a couple of things by default that will make them slower when evaluating simple static fields. For example, SimEmber will evaluate onto a grid and possible run a solver to make the velocity behave like a incompressible fluid.
Turning off “discretize” and switching “solver” to “none” will disable these features, though it comes at a risk of vastly increasing computation if your simulation has a dependency on time. For example if the Velocity is used as an input, and frame 30 is evaluated it will need to procedurally calculate the velocity from frames 0 through 29 as part of calculating frame 30 unless discretization is turned on. When discretize is enabled, the results of the last frame are stored on a grid in memory so calculation of time 30 only needs to look at the stored grid from time 29.
For a completely procedural velocity field like the Wind space warp we may need to introduce a new, simpler object. The SimEmber object was designed such that the defaults would be set up for tradition simulation with the velocity flowing around and being affected by forces like gravity or bouyancy.