[Bf-blender-cvs] [ca7431c4835] fluid-mantaflow: more sanity checks for fluid guiding
Sebastián Barschkis
noreply at git.blender.org
Tue Jul 10 23:19:06 CEST 2018
Commit: ca7431c4835ca873fe39eda965607970c530118b
Author: Sebastián Barschkis
Date: Tue Jul 10 23:18:56 2018 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rBca7431c4835ca873fe39eda965607970c530118b
more sanity checks for fluid guiding
===================================================================
M intern/mantaflow/intern/FLUID.cpp
M source/blender/blenkernel/intern/smoke.c
===================================================================
diff --git a/intern/mantaflow/intern/FLUID.cpp b/intern/mantaflow/intern/FLUID.cpp
index 02f1ffd7fb9..3ba0c697d7e 100644
--- a/intern/mantaflow/intern/FLUID.cpp
+++ b/intern/mantaflow/intern/FLUID.cpp
@@ -50,7 +50,7 @@
std::atomic<bool> FLUID::mantaInitialized(false);
std::atomic<int> FLUID::solverID(0);
-int FLUID::with_debug(1);
+int FLUID::with_debug(0);
FLUID::FLUID(int *res, SmokeModifierData *smd) : mCurrentID(++solverID)
{
@@ -66,7 +66,7 @@ FLUID::FLUID(int *res, SmokeModifierData *smd) : mCurrentID(++solverID)
mUsingInvel = smd->domain->active_fields & SM_ACTIVE_INVEL;
mUsingNoise = smd->domain->flags & MOD_SMOKE_NOISE;
mUsingMesh = smd->domain->flags & MOD_SMOKE_MESH;
- mUsingGuiding = smd->domain->flags & MOD_SMOKE_GUIDING || smd->domain->active_fields & SM_ACTIVE_GUIDING;
+ mUsingGuiding = smd->domain->flags & MOD_SMOKE_GUIDING;
mUsingLiquid = smd->domain->type == MOD_SMOKE_DOMAIN_TYPE_LIQUID;
mUsingSmoke = smd->domain->type == MOD_SMOKE_DOMAIN_TYPE_GAS;
mUsingDrops = smd->domain->particle_type & MOD_SMOKE_PARTICLE_DROP;
@@ -83,6 +83,7 @@ FLUID::FLUID(int *res, SmokeModifierData *smd) : mCurrentID(++solverID)
mConstantScaling = 64.0f / mMaxRes;
mConstantScaling = (mConstantScaling < 1.0f) ? 1.0f : mConstantScaling;
mTotalCells = mResX * mResY * mResZ;
+ mResGuiding = smd->domain->res;
// Smoke low res grids
mDensity = NULL;
@@ -685,7 +686,7 @@ std::string FLUID::getRealValue(const std::string& varName, SmokeModifierData *
else if (varName == "USING_OBSTACLE")
ss << (smd->domain->active_fields & SM_ACTIVE_OBSTACLE ? "True" : "False");
else if (varName == "USING_GUIDING")
- ss << (smd->domain->flags & MOD_SMOKE_GUIDING || smd->domain->active_fields & SM_ACTIVE_GUIDING ? "True" : "False");
+ ss << (smd->domain->flags & MOD_SMOKE_GUIDING ? "True" : "False");
else if (varName == "USING_INVEL")
ss << (smd->domain->active_fields & SM_ACTIVE_INVEL ? "True" : "False");
else if (varName == "SOLVER_DIM")
diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index db11270ee33..68863e2052e 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -3228,8 +3228,8 @@ static void smokeModifier_process(
{
SmokeDomainSettings *sds = smd->domain;
int startframe, endframe, framenr;
- Object *guiding_parent;
- SmokeModifierData *smd_parent;
+ Object *guiding_parent = NULL;
+ SmokeModifierData *smd_parent = NULL;
bool is_first_frame;
framenr = scene->r.cfra;
startframe = sds->cache_frame_start;
@@ -3302,12 +3302,15 @@ static void smokeModifier_process(
{
if (sds->cache_flag & FLUID_CACHE_BAKING_DATA)
{
- /* Load guiding vel from flow object (only if baked) or domain object? */
- if (sds->guiding_source == SM_GUIDING_SRC_FLOW && sds->cache_flag & FLUID_CACHE_BAKED_GUIDING) {
- fluid_read_guiding(sds->fluid, smd, framenr, false);
- }
- else if (sds->guiding_source == SM_GUIDING_SRC_DOMAIN && smd_parent) {
- fluid_read_guiding(sds->fluid, smd_parent, framenr, true);
+ if (sds->flags & MOD_SMOKE_GUIDING)
+ {
+ /* Load guiding vel from flow object (only if baked) or domain object? */
+ if (sds->guiding_source == SM_GUIDING_SRC_FLOW && sds->cache_flag & FLUID_CACHE_BAKED_GUIDING) {
+ fluid_read_guiding(sds->fluid, smd, framenr, false);
+ }
+ else if (sds->guiding_source == SM_GUIDING_SRC_DOMAIN && smd_parent) {
+ fluid_read_guiding(sds->fluid, smd_parent, framenr, true);
+ }
}
/* Refresh all objects if we start baking from a resumed frame */
More information about the Bf-blender-cvs
mailing list