[Bf-blender-cvs] [070d9da1e80] fluid-mantaflow: improvements to keyframe parameters
Sebastián Barschkis
noreply at git.blender.org
Wed Jul 11 00:24:11 CEST 2018
Commit: 070d9da1e80eca920f1f58b6fb0eafd66570a259
Author: Sebastián Barschkis
Date: Wed Jul 11 00:24:04 2018 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rB070d9da1e80eca920f1f58b6fb0eafd66570a259
improvements to keyframe parameters
===================================================================
M intern/mantaflow/extern/manta_fluid_API.h
M intern/mantaflow/intern/FLUID.cpp
M intern/mantaflow/intern/FLUID.h
M intern/mantaflow/intern/manta_fluid_API.cpp
M source/blender/blenkernel/intern/smoke.c
M source/blender/makesrna/intern/rna_smoke.c
===================================================================
diff --git a/intern/mantaflow/extern/manta_fluid_API.h b/intern/mantaflow/extern/manta_fluid_API.h
index ab06f5f2025..1d51231b583 100644
--- a/intern/mantaflow/extern/manta_fluid_API.h
+++ b/intern/mantaflow/extern/manta_fluid_API.h
@@ -182,7 +182,6 @@ int fluid_bake_mesh(struct FLUID* fluid, struct SmokeModifierData *smd, int fram
int fluid_bake_particles(struct FLUID* fluid, struct SmokeModifierData *smd, int framenr);
int fluid_bake_guiding(struct FLUID* fluid, struct SmokeModifierData *smd, int framenr);
void fluid_update_variables(struct FLUID* fluid, struct SmokeModifierData *smd);
-void fluid_update_variables_high(struct FLUID* fluid, struct SmokeModifierData *smd);
int fluid_get_frame(struct FLUID* fluid);
float fluid_get_timestep(struct FLUID* fluid);
void fluid_adapt_timestep(struct FLUID* fluid);
diff --git a/intern/mantaflow/intern/FLUID.cpp b/intern/mantaflow/intern/FLUID.cpp
index 3ba0c697d7e..e85fe585532 100644
--- a/intern/mantaflow/intern/FLUID.cpp
+++ b/intern/mantaflow/intern/FLUID.cpp
@@ -1393,7 +1393,7 @@ int FLUID::bakeGuiding(SmokeModifierData *smd, int framenr)
return 1;
}
-void FLUID::updateVariablesLow(SmokeModifierData *smd)
+void FLUID::updateVariables(SmokeModifierData *smd)
{
std::string tmpString, finalString;
std::vector<std::string> pythonCommands;
@@ -1403,20 +1403,17 @@ void FLUID::updateVariablesLow(SmokeModifierData *smd)
tmpString += smoke_variables;
if (mUsingLiquid)
tmpString += liquid_variables;
- finalString = parseScript(tmpString, smd);
- pythonCommands.push_back(finalString);
-
- runPythonString(pythonCommands);
-}
-
-void FLUID::updateVariablesHigh(SmokeModifierData *smd)
-{
- std::string tmpString, finalString;
- std::vector<std::string> pythonCommands;
-
- tmpString += fluid_variables_noise;
- if (mUsingSmoke)
+ if (mUsingGuiding)
+ tmpString += fluid_variables_guiding;
+ if (mUsingNoise) {
+ tmpString += fluid_variables_noise;
tmpString += smoke_variables_noise;
+ }
+ if (mUsingDrops || mUsingBubbles || mUsingFloats || mUsingTracers)
+ tmpString += fluid_variables_particles;
+ if (mUsingMesh)
+ tmpString += fluid_variables_mesh;
+
finalString = parseScript(tmpString, smd);
pythonCommands.push_back(finalString);
diff --git a/intern/mantaflow/intern/FLUID.h b/intern/mantaflow/intern/FLUID.h
index d308789b70f..2ac158da543 100644
--- a/intern/mantaflow/intern/FLUID.h
+++ b/intern/mantaflow/intern/FLUID.h
@@ -91,8 +91,7 @@ public:
int bakeMesh(SmokeModifierData *smd, int framenr);
int bakeParticles(SmokeModifierData *smd, int framenr);
int bakeGuiding(SmokeModifierData *smd, int framenr);
- void updateVariablesLow(SmokeModifierData *smd);
- void updateVariablesHigh(SmokeModifierData *smd);
+ void updateVariables(SmokeModifierData *smd);
// IO for Mantaflow scene script
void exportSmokeScript(struct SmokeModifierData *smd);
diff --git a/intern/mantaflow/intern/manta_fluid_API.cpp b/intern/mantaflow/intern/manta_fluid_API.cpp
index c201a3c80f2..91d4f8874dc 100644
--- a/intern/mantaflow/intern/manta_fluid_API.cpp
+++ b/intern/mantaflow/intern/manta_fluid_API.cpp
@@ -906,13 +906,7 @@ extern "C" int fluid_bake_guiding(FLUID* fluid, SmokeModifierData *smd, int fram
extern "C" void fluid_update_variables(FLUID* fluid, SmokeModifierData *smd)
{
if (fluid)
- fluid->updateVariablesLow(smd);
-}
-
-extern "C" void fluid_update_variables_high(FLUID* fluid, SmokeModifierData *smd)
-{
- if (fluid)
- fluid->updateVariablesHigh(smd);
+ fluid->updateVariables(smd);
}
extern "C" int fluid_get_frame(FLUID* fluid)
diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index 68863e2052e..b68b7738dee 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -3139,7 +3139,6 @@ static void smoke_step(
// loop as long as time_per_frame (sum of sudivdt) does not exceed dt (actual framelength)
while (time_per_frame < dt)
{
- fluid_update_variables(sds->fluid, smd);
fluid_adapt_timestep(sds->fluid);
sdt = fluid_get_timestep(sds->fluid);
time_per_frame += sdt;
@@ -3300,6 +3299,9 @@ static void smokeModifier_process(
/* Simulate step and write cache. Optionally also read py objects once from previous frame (bake started from resume operator) */
if (is_baking)
{
+ /* Ensure fresh variables at every animation step */
+ fluid_update_variables(sds->fluid, smd);
+
if (sds->cache_flag & FLUID_CACHE_BAKING_DATA)
{
if (sds->flags & MOD_SMOKE_GUIDING)
diff --git a/source/blender/makesrna/intern/rna_smoke.c b/source/blender/makesrna/intern/rna_smoke.c
index f1a4ff06fde..a6960ea54a3 100644
--- a/source/blender/makesrna/intern/rna_smoke.c
+++ b/source/blender/makesrna/intern/rna_smoke.c
@@ -1705,14 +1705,12 @@ static void rna_def_smoke_domain_settings(BlenderRNA *brna)
RNA_def_property_int_sdna(prop, NULL, "guiding_beta");
RNA_def_property_range(prop, 1, 50);
RNA_def_property_ui_text(prop, "Size", "Guiding size (higher value results in larger vortices)");
- RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Smoke_reset");
prop = RNA_def_property(srna, "guiding_vel_factor", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "guiding_vel_factor");
RNA_def_property_range(prop, 0.0, 100.0);
RNA_def_property_ui_text(prop, "Weight", "Guiding velocity factor (higher value results in bigger guiding velocities)");
- RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Smoke_reset");
prop = RNA_def_property(srna, "guiding_source", PROP_ENUM, PROP_NONE);
More information about the Bf-blender-cvs
mailing list