diff options
author | Sebastián Barschkis <sebbas@sebbas.org> | 2020-04-08 14:42:40 +0300 |
---|---|---|
committer | Sebastián Barschkis <sebbas@sebbas.org> | 2020-04-08 14:42:40 +0300 |
commit | ff2c67d7e8ed334c482681e2342bf8cce0957546 (patch) | |
tree | 5020c706eac62f3a98ddd812620dfa66296821f6 /source/blender/blenkernel/intern/fluid.c | |
parent | c2cb87f8976b813821a5166686d7625fbe384ba8 (diff) |
Fluid: Disable subframes when using adaptive time-steps in the first frame
First frame should only produce inflow once and not compute the emission for the frame before the first frame. Problem became evident in T74062.
Diffstat (limited to 'source/blender/blenkernel/intern/fluid.c')
-rw-r--r-- | source/blender/blenkernel/intern/fluid.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/fluid.c b/source/blender/blenkernel/intern/fluid.c index 985d0a79b23..e96f65751de 100644 --- a/source/blender/blenkernel/intern/fluid.c +++ b/source/blender/blenkernel/intern/fluid.c @@ -1250,7 +1250,8 @@ static void update_obstacles(Depsgraph *depsgraph, /* Set scene time */ /* Handle emission subframe */ - if (subframe < subframes || time_per_frame + dt + FLT_EPSILON < frame_length) { + if ((subframe < subframes || time_per_frame + dt + FLT_EPSILON < frame_length) && + !is_first_frame) { scene->r.subframe = (time_per_frame + (subframe + 1.0f) * subframe_dt) / frame_length; scene->r.cfra = frame - 1; } @@ -2763,7 +2764,8 @@ static void update_flowsfluids(struct Depsgraph *depsgraph, FluidObjectBB bb_temp = {NULL}; /* Set scene time */ - if (subframe < subframes || time_per_frame + dt + FLT_EPSILON < frame_length) { + if ((subframe < subframes || time_per_frame + dt + FLT_EPSILON < frame_length) && + !is_first_frame) { scene->r.subframe = (time_per_frame + (subframe + 1.0f) * subframe_dt) / frame_length; scene->r.cfra = frame - 1; } |