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
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.
-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;
}