From 86e24ea10cba05dcb48eccc026530edab14dfe01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebasti=C3=A1n=20Barschkis?= Date: Sun, 9 Feb 2020 17:15:41 +0100 Subject: Fluid: Fixes for fluid guiding Fluid guiding functionality was broken in the bake / read cache loop in fluid.c. Committing this to the release branch as otherwise fluid guiding would not have worked as expected (i.e. not at all). --- intern/mantaflow/intern/MANTA_main.cpp | 5 ++++- intern/mantaflow/intern/strings/fluid_script.h | 13 +++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'intern') diff --git a/intern/mantaflow/intern/MANTA_main.cpp b/intern/mantaflow/intern/MANTA_main.cpp index cd496ac0c01..f13dc4e5f52 100644 --- a/intern/mantaflow/intern/MANTA_main.cpp +++ b/intern/mantaflow/intern/MANTA_main.cpp @@ -2001,6 +2001,9 @@ int MANTA::bakeGuiding(FluidModifierData *mmd, int framenr) std::string gformat = getCacheFileEnding(mmd->domain->cache_data_format); + bool final_cache = (mmd->domain->cache_type == FLUID_DOMAIN_CACHE_FINAL); + std::string resumable_cache = (final_cache) ? "False" : "True"; + BLI_path_join(cacheDirGuiding, sizeof(cacheDirGuiding), mmd->domain->cache_directory, @@ -2010,7 +2013,7 @@ int MANTA::bakeGuiding(FluidModifierData *mmd, int framenr) ss.str(""); ss << "bake_guiding_" << mCurrentID << "('" << escapeSlashes(cacheDirGuiding) << "', " << framenr - << ", '" << gformat << "')"; + << ", '" << gformat << "', " << resumable_cache << ")"; pythonCommands.push_back(ss.str()); runPythonString(pythonCommands); diff --git a/intern/mantaflow/intern/strings/fluid_script.h b/intern/mantaflow/intern/strings/fluid_script.h index f66f2fadcb1..babcdd7551e 100644 --- a/intern/mantaflow/intern/strings/fluid_script.h +++ b/intern/mantaflow/intern/strings/fluid_script.h @@ -559,12 +559,9 @@ def bake_particles_$ID$(path_data, path_particles, framenr, format_data, format_ const std::string fluid_bake_guiding = "\n\ -def bake_guiding_process_$ID$(framenr, format_guiding, path_guiding):\n\ +def bake_guiding_process_$ID$(framenr, format_guiding, path_guiding, resumable):\n\ mantaMsg('Bake fluid guiding')\n\ \n\ - if framenr>1:\n\ - fluid_load_guiding_$ID$(path_guiding, framenr-1, format_guiding)\n\ - \n\ # Average out velocities from multiple guiding objects at one cell\n\ x_guidevel_s$ID$.safeDivide(numGuides_s$ID$)\n\ y_guidevel_s$ID$.safeDivide(numGuides_s$ID$)\n\ @@ -582,13 +579,13 @@ def bake_guiding_process_$ID$(framenr, format_guiding, path_guiding):\n\ extrapolateVec3Simple(vel=guidevelC_s$ID$, phi=phiGuideIn_s$ID$, distance=4, inside=False)\n\ resampleVec3ToMac(source=guidevelC_s$ID$, target=guidevel_sg$ID$)\n\ \n\ - fluid_save_guiding_$ID$(path_guiding, framenr, format_guiding)\n\ + fluid_save_guiding_$ID$(path_guiding, framenr, format_guiding, resumable)\n\ \n\ -def bake_guiding_$ID$(path_guiding, framenr, format_guiding):\n\ +def bake_guiding_$ID$(path_guiding, framenr, format_guiding, resumable):\n\ if not withMPBake or isWindows:\n\ - bake_guiding_process_$ID$(framenr, format_guiding, path_guiding)\n\ + bake_guiding_process_$ID$(framenr, format_guiding, path_guiding, resumable)\n\ else:\n\ - fluid_cache_multiprocessing_start_$ID$(function=bake_guiding_process_$ID$, framenr=framenr, format_guiding=format_guiding, path_guiding=path_guiding)\n"; + fluid_cache_multiprocessing_start_$ID$(function=bake_guiding_process_$ID$, framenr=framenr, format_guiding=format_guiding, path_guiding=path_guiding, resumable=resumable)\n"; ////////////////////////////////////////////////////////////////////// // IMPORT -- cgit v1.2.3