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
path: root/intern
diff options
context:
space:
mode:
authorSebastián Barschkis <sebbas@sebbas.org>2020-02-09 19:27:15 +0300
committerSebastián Barschkis <sebbas@sebbas.org>2020-02-09 19:27:15 +0300
commitf780057d52c1e5b76cd2a5d8b7c577db2374c95c (patch)
tree04af386e6859f71aa0930419b1b280206cb61222 /intern
parent19361bf2f46577e19412d3ad0f75787b178c2f69 (diff)
parent5e30bd43f873dc2b79f2c7fa2e6fb156b598a7a1 (diff)
Merge branch 'blender-v2.82-release'
Diffstat (limited to 'intern')
-rw-r--r--intern/mantaflow/intern/MANTA_main.cpp59
-rw-r--r--intern/mantaflow/intern/strings/fluid_script.h25
2 files changed, 46 insertions, 38 deletions
diff --git a/intern/mantaflow/intern/MANTA_main.cpp b/intern/mantaflow/intern/MANTA_main.cpp
index cd496ac0c01..91853ca566b 100644
--- a/intern/mantaflow/intern/MANTA_main.cpp
+++ b/intern/mantaflow/intern/MANTA_main.cpp
@@ -572,6 +572,29 @@ void MANTA::terminateMantaflow()
mantaInitialized = false;
}
+static std::string getCacheFileEnding(char cache_format)
+{
+ if (MANTA::with_debug)
+ std::cout << "MANTA::getCacheFileEnding()" << std::endl;
+
+ switch (cache_format) {
+ case FLUID_DOMAIN_FILE_UNI:
+ return ".uni";
+ case FLUID_DOMAIN_FILE_OPENVDB:
+ return ".vdb";
+ case FLUID_DOMAIN_FILE_RAW:
+ return ".raw";
+ case FLUID_DOMAIN_FILE_BIN_OBJECT:
+ return ".bobj.gz";
+ case FLUID_DOMAIN_FILE_OBJECT:
+ return ".obj";
+ default:
+ if (MANTA::with_debug)
+ std::cout << "Error: Could not find file extension" << std::endl;
+ return ".uni";
+ }
+}
+
std::string MANTA::getRealValue(const std::string &varName, FluidModifierData *mmd)
{
std::ostringstream ss;
@@ -815,6 +838,14 @@ std::string MANTA::getRealValue(const std::string &varName, FluidModifierData *m
ss << mmd->time;
else if (varName == "END_FRAME")
ss << mmd->domain->cache_frame_end;
+ else if (varName == "CACHE_DATA_FORMAT")
+ ss << getCacheFileEnding(mmd->domain->cache_data_format);
+ else if (varName == "CACHE_MESH_FORMAT")
+ ss << getCacheFileEnding(mmd->domain->cache_mesh_format);
+ else if (varName == "CACHE_NOISE_FORMAT")
+ ss << getCacheFileEnding(mmd->domain->cache_noise_format);
+ else if (varName == "CACHE_PARTICLE_FORMAT")
+ ss << getCacheFileEnding(mmd->domain->cache_particle_format);
else if (varName == "SIMULATION_METHOD") {
if (mmd->domain->simulation_method & FLUID_DOMAIN_METHOD_FLIP) {
ss << "'FLIP'";
@@ -987,29 +1018,6 @@ std::string MANTA::parseScript(const std::string &setup_string, FluidModifierDat
return res.str();
}
-static std::string getCacheFileEnding(char cache_format)
-{
- if (MANTA::with_debug)
- std::cout << "MANTA::getCacheFileEnding()" << std::endl;
-
- switch (cache_format) {
- case FLUID_DOMAIN_FILE_UNI:
- return ".uni";
- case FLUID_DOMAIN_FILE_OPENVDB:
- return ".vdb";
- case FLUID_DOMAIN_FILE_RAW:
- return ".raw";
- case FLUID_DOMAIN_FILE_BIN_OBJECT:
- return ".bobj.gz";
- case FLUID_DOMAIN_FILE_OBJECT:
- return ".obj";
- default:
- if (MANTA::with_debug)
- std::cout << "Error: Could not find file extension" << std::endl;
- return ".uni";
- }
-}
-
int MANTA::updateFlipStructures(FluidModifierData *mmd, int framenr)
{
if (MANTA::with_debug)
@@ -2001,6 +2009,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 +2021,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..477cf3ff789 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
@@ -692,12 +689,12 @@ if (GUI):\n\
gui.show()\n\
gui.pause()\n\
\n\
-cache_dir = '$CACHE_DIR$'\n\
-cache_resumable = $CACHE_RESUMABLE$\n\
-file_format_data = '.uni'\n\
-file_format_noise = '.uni'\n\
-file_format_particles = '.uni'\n\
-file_format_mesh = '.bobj.gz'\n\
+cache_resumable = $CACHE_RESUMABLE$\n\
+cache_dir = '$CACHE_DIR$'\n\
+file_format_data = '$CACHE_DATA_FORMAT$'\n\
+file_format_noise = '$CACHE_NOISE_FORMAT$'\n\
+file_format_particles = '$CACHE_PARTICLE_FORMAT$'\n\
+file_format_mesh = '$CACHE_MESH_FORMAT$'\n\
\n\
# Start and stop for simulation\n\
current_frame = $CURRENT_FRAME$\n\