diff options
author | Daniel Genrich <daniel.genrich@gmx.net> | 2012-05-27 22:45:16 +0400 |
---|---|---|
committer | Daniel Genrich <daniel.genrich@gmx.net> | 2012-05-27 22:45:16 +0400 |
commit | 1e13168183361e65e01c7613f094407780d0967e (patch) | |
tree | 3280df668a40b1d1be227bb9338133e3fced26e2 /intern/smoke | |
parent | d4b6927179e3a6ac5d4d3efa4b0bb8b785dd1822 (diff) |
Smoke:
a) Another boundary fix. Resulted in smoke getting "sucked" back into the domain
b) Disabling substeps (internal thing). Fixes arbitrary explosions/instabilities.
Part of my Blender Smoke Development.
Diffstat (limited to 'intern/smoke')
-rw-r--r-- | intern/smoke/intern/FLUID_3D_STATIC.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/intern/smoke/intern/FLUID_3D_STATIC.cpp b/intern/smoke/intern/FLUID_3D_STATIC.cpp index 74c2c9c7e2d..c7a0ddcd04c 100644 --- a/intern/smoke/intern/FLUID_3D_STATIC.cpp +++ b/intern/smoke/intern/FLUID_3D_STATIC.cpp @@ -153,9 +153,13 @@ void FLUID_3D::setNeumannZ(float* field, Vec3Int res, int zBegin, int zEnd) index = x + y * res[0]; field[index] = field[index + 2 * slabSize]; /* only allow outwards flux */ - if(field[index]>0.) field[index] = 0.; - index += slabSize; - if(field[index]>0.) field[index] = 0.; + + // DG: Disable this for z-axis. + // The problem is that smoke somehow gets sucked in again + // from the TOP slab when this is enabled + // if(field[index]>0.) field[index] = 0.; + // index += slabSize; + // if(field[index]>0.) field[index] = 0.; } } |