[Bf-blender-cvs] [ff2c67d7e8e] master: Fluid: Disable subframes when using adaptive time-steps in the first frame
Sebastián Barschkis
noreply at git.blender.org
Wed Apr 8 13:43:17 CEST 2020
Commit: ff2c67d7e8ed334c482681e2342bf8cce0957546
Author: Sebastián Barschkis
Date: Wed Apr 8 13:42:40 2020 +0200
Branches: master
https://developer.blender.org/rBff2c67d7e8ed334c482681e2342bf8cce0957546
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.
===================================================================
M source/blender/blenkernel/intern/fluid.c
===================================================================
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;
}
More information about the Bf-blender-cvs
mailing list