Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastián Barschkis <sebbas@sebbas.org>2020-04-08 14:42:40 +0300
committerSebastián Barschkis <sebbas@sebbas.org>2020-04-08 14:42:40 +0300
commitff2c67d7e8ed334c482681e2342bf8cce0957546 (patch)
tree5020c706eac62f3a98ddd812620dfa66296821f6 /source/blender/blenkernel/intern/fluid.c
parentc2cb87f8976b813821a5166686d7625fbe384ba8 (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.c6
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;
}