[Bf-blender-cvs] [e8c3498] fluid-mantaflow: better noise integration - especially wavelet noise
Sebastián Barschkis
noreply at git.blender.org
Thu Jan 28 12:37:32 CET 2016
Commit: e8c34986ed024e0f04050744f0f46d8fe2db23d2
Author: Sebastián Barschkis
Date: Thu Jan 14 13:55:11 2016 +0100
Branches: fluid-mantaflow
https://developer.blender.org/rBe8c34986ed024e0f04050744f0f46d8fe2db23d2
better noise integration - especially wavelet noise
===================================================================
M intern/smoke/intern/MANTA.cpp
M intern/smoke/intern/scenarios/smoke.h
M release/scripts/startup/bl_ui/properties_physics_smoke.py
M source/blender/blenkernel/intern/smoke.c
M source/blender/makesdna/DNA_smoke_types.h
M source/blender/makesrna/intern/rna_smoke.c
===================================================================
diff --git a/intern/smoke/intern/MANTA.cpp b/intern/smoke/intern/MANTA.cpp
index 5984f1a..0169bd9 100644
--- a/intern/smoke/intern/MANTA.cpp
+++ b/intern/smoke/intern/MANTA.cpp
@@ -427,9 +427,9 @@ std::string Manta_API::get_real_value( const std::string& varName, SmokeModifier
else if (varName == "WLT_STR")
ss << smd->domain->strength ;
else if (varName == "RES")
- ss << smd->domain->maxres;
+ ss << smd->domain->maxres;
else if (varName == "RESX")
- ss << smd->domain->fluid->_xRes;
+ ss << smd->domain->fluid->_xRes;
else if (varName == "RESY")
if (is2D) { ss << smd->domain->fluid->_zRes;}
else { ss << smd->domain->fluid->_yRes;}
@@ -438,12 +438,14 @@ std::string Manta_API::get_real_value( const std::string& varName, SmokeModifier
else { ss << smd->domain->fluid->_zRes;}
else if (varName == "SOLVER_DIM")
ss << smd->domain->manta_solver_res;
+ else if (varName == "USE_NOISE_CLAMP")
+ ss << ((smd->domain->flags & MOD_SMOKE_NOISE_CLAMP) ? "True" : "False");
else if (varName == "NOISE_CN")
- ss << smd->domain->noise_clamp_neg;
+ ss << smd->domain->noise_clamp_neg;
else if (varName == "NOISE_CP")
- ss << smd->domain->noise_clamp_pos;
+ ss << smd->domain->noise_clamp_pos;
else if (varName == "NOISE_VALSCALE")
- ss << smd->domain->noise_val_scale;
+ ss << smd->domain->noise_val_scale;
else if (varName == "NOISE_VALOFFSET")
ss << smd->domain->noise_val_offset;
else if (varName == "NOISE_TIMEANIM")
diff --git a/intern/smoke/intern/scenarios/smoke.h b/intern/smoke/intern/scenarios/smoke.h
index edc97ae..13a95d9 100644
--- a/intern/smoke/intern/scenarios/smoke.h
+++ b/intern/smoke/intern/scenarios/smoke.h
@@ -61,7 +61,7 @@ const string noise_low = "\n\
# noise field low\n\
noise = s.create(NoiseField, loadFromFile=True)\n\
noise.posScale = vec3(45)\n\
-noise.clamp = True\n\
+noise.clamp = $USE_NOISE_CLAMP$\n\
noise.clampNeg = $NOISE_CN$\n\
noise.clampPos = $NOISE_CP$\n\
noise.valScale = $NOISE_VALSCALE$\n\
@@ -105,7 +105,7 @@ const string noise_high = "\n\
# noise field high\n\
xl_noise = xl.create(NoiseField, fixedSeed=256, loadFromFile=True)\n\
xl_noise.posScale = vec3(20)\n\
-xl_noise.clamp = False\n\
+xl_noise.clamp = $USE_NOISE_CLAMP$\n\
xl_noise.clampNeg = $NOISE_CN$\n\
xl_noise.clampPos = $NOISE_CP$\n\
xl_noise.valScale = $NOISE_VALSCALE$\n\
@@ -121,9 +121,16 @@ const string wavelet_turbulence_noise = "\n\
# wavelet turbulence noise field\n\
xl_wltnoise = s.create(NoiseField, loadFromFile=True)\n\
xl_wltnoise.posScale = vec3(int(1.0*gs.x)) * 0.5\n\
-xl_wltnoise.timeAnim = 0.1\n\
+xl_wltnoise.clamp = $USE_NOISE_CLAMP$\n\
+xl_wltnoise.clampNeg = $NOISE_CN$\n\
+xl_wltnoise.clampPos = $NOISE_CP$\n\
+xl_wltnoise.valScale = $NOISE_VALSCALE$\n\
+xl_wltnoise.valOffset = $NOISE_VALOFFSET$\n\
+xl_wltnoise.timeAnim = $NOISE_TIMEANIM$\n\
if(upres>0):\n\
- xl_wltnoise.posScale = xl_wltnoise.posScale * (1./upres)\n";
+ xl_wltnoise.posScale = xl_wltnoise.posScale * (1./upres)\n\
+ xl_wltnoise.timeAnim = xl_wltnoise.timeAnim * upres\n";
+
//////////////////////////////////////////////////////////////////////
// ADDITIONAL GRIDS
diff --git a/release/scripts/startup/bl_ui/properties_physics_smoke.py b/release/scripts/startup/bl_ui/properties_physics_smoke.py
index b00165f..ee3f52b 100644
--- a/release/scripts/startup/bl_ui/properties_physics_smoke.py
+++ b/release/scripts/startup/bl_ui/properties_physics_smoke.py
@@ -456,13 +456,16 @@ class PHYSICS_PT_smoke_manta_settings(PhysicButtonsPanel, Panel):
split = layout.split()
col = split.column()
col.label("Noise Settings")
- col.prop(domain, "noise_clamp_neg", text="Clamp Neg")
- col.prop(domain, "noise_clamp_pos", text="Clamp Pos")
- col.prop(domain, "noise_time_anim", text="Time Anim")
+ col.prop(domain, "noise_clamp", text="Clamp")
+ sub = col.column()
+ sub.active = domain.noise_clamp
+ sub.prop(domain, "noise_clamp_neg", text="Clamp Neg")
+ sub.prop(domain, "noise_clamp_pos", text="Clamp Pos")
col = split.column()
col.label("")
col.prop(domain, "noise_val_scale", text="Scale")
col.prop(domain, "noise_val_offset", text="Offset")
+ col.prop(domain, "noise_time_anim", text="Time Anim")
if __name__ == "__main__": # only for live edit.
bpy.utils.register_module(__name__)
diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index 404c7b6..49d9d84 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -583,14 +583,15 @@ void smokeModifier_createType(struct SmokeModifierData *smd)
/*mantaflow settings*/
smd->domain->manta_solver_res = 3;
- smd->domain->manta_sim_frame = -1;
+// smd->domain->manta_sim_frame = -1;
smd->domain->manta_start_frame = 1;
smd->domain->manta_end_frame = 10;
smd->domain->noise_clamp_neg = 0;
smd->domain->noise_clamp_pos = 1;
- smd->domain->noise_val_scale = 0.;
- smd->domain->noise_val_offset = 0.075;
- smd->domain->noise_time_anim = 0.2;
+ smd->domain->noise_val_scale = 1.;
+ smd->domain->noise_val_offset = 0.;
+ smd->domain->noise_time_anim = 0.;
+ smd->domain->noise_clamp = 1;
BLI_make_file_string("/", smd->domain->_manta_filepath, BKE_tempdir_base(), "manta_scene.py");
}
else if (smd->type & MOD_SMOKE_TYPE_FLOW)
diff --git a/source/blender/makesdna/DNA_smoke_types.h b/source/blender/makesdna/DNA_smoke_types.h
index 82fd6f8..f372802 100644
--- a/source/blender/makesdna/DNA_smoke_types.h
+++ b/source/blender/makesdna/DNA_smoke_types.h
@@ -172,7 +172,8 @@ typedef struct SmokeDomainSettings {
float noise_val_scale;
float noise_val_offset;
float noise_time_anim;
- int manta_sim_frame;/*current simulation frame number. If not simulating-> manta_sim_frame == -1*/
+ int noise_clamp;
+ //int manta_sim_frame;/*current simulation frame number. If not simulating-> manta_sim_frame == -1*/
float mock_var; /*not used*/
// float mock_var2; /*not used*/
} SmokeDomainSettings;
diff --git a/source/blender/makesrna/intern/rna_smoke.c b/source/blender/makesrna/intern/rna_smoke.c
index fe63f17..a251344 100644
--- a/source/blender/makesrna/intern/rna_smoke.c
+++ b/source/blender/makesrna/intern/rna_smoke.c
@@ -634,10 +634,10 @@ static void rna_def_smoke_domain_settings(BlenderRNA *brna)
"Directory/name to save Mantaflow scene for further simulations");
// RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Smoke_manta_write_settings");
- prop = RNA_def_property(srna, "use_manta_liquid", PROP_BOOLEAN, PROP_NONE);
- RNA_def_property_boolean_sdna(prop, NULL, "flags", MOD_SMOKE_MANTA_USE_LIQUID);
- RNA_def_property_ui_text(prop, "MantaFlow Liquid", "Use Mantaflow liquid");
- RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Smoke_reset");
+// prop = RNA_def_property(srna, "use_manta_liquid", PROP_BOOLEAN, PROP_NONE);
+// RNA_def_property_boolean_sdna(prop, NULL, "flags", MOD_SMOKE_MANTA_USE_LIQUID);
+// RNA_def_property_ui_text(prop, "MantaFlow Liquid", "Use Mantaflow liquid");
+// RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Smoke_reset");
prop = RNA_def_property(srna, "manta_solver_res", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "manta_solver_res");
@@ -646,11 +646,11 @@ static void rna_def_smoke_domain_settings(BlenderRNA *brna)
RNA_def_property_ui_text(prop, "Solver Res", "Solver resolution(2D/3D)");
RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Smoke_manta_switch2D");
- prop = RNA_def_property(srna, "manta_sim_frame", PROP_INT, PROP_NONE);
- RNA_def_property_int_sdna(prop, NULL, "manta_sim_frame");
- RNA_def_property_range(prop, -1, 250);
- RNA_def_property_ui_range(prop, -1, 250, 1, -1);
- RNA_def_property_ui_text(prop, "Current Simulation Frame", "-1, if not simulating");
+// prop = RNA_def_property(srna, "manta_sim_frame", PROP_INT, PROP_NONE);
+// RNA_def_property_int_sdna(prop, NULL, "manta_sim_frame");
+// RNA_def_property_range(prop, -1, 250);
+// RNA_def_property_ui_range(prop, -1, 250, 1, -1);
+// RNA_def_property_ui_text(prop, "Current Simulation Frame", "-1, if not simulating");
prop = RNA_def_property(srna, "manta_start_frame", PROP_INT, PROP_NONE);
RNA_def_property_int_sdna(prop, NULL, "manta_start_frame");
@@ -671,47 +671,47 @@ static void rna_def_smoke_domain_settings(BlenderRNA *brna)
RNA_def_property_range(prop, 0, 4);
RNA_def_property_ui_range(prop, 0, 4, 1, -1);
RNA_def_property_ui_text(prop, "UVs number", "Number of UV coordinate grids to use (Better not more than 2)");
-// RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Smoke_reset");
+ RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Smoke_reset");
- prop = RNA_def_property(srna, "manta_clamp_noise", PROP_BOOLEAN, PROP_NONE);
+ prop = RNA_def_property(srna, "noise_clamp", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_boolean_sdna(prop, NULL, "flags", MOD_SMOKE_NOISE_CLAMP);
- RNA_def_property_ui_text(prop, "MantaFlow", "Use Mantaflow");
-// RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Smoke_resetCache");
+ RNA_def_property_ui_text(prop, "Clamp Noise", "");
+ RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Smoke_resetCache");
prop = RNA_def_property(srna, "noise_clamp_neg", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "noise_clamp_neg");
RNA_def_property_range(prop, 0.0, 2.0);
RNA_def_property_ui_range(prop, 0.0, 1.0, 1.0, 5);
RNA_def_property_ui_text(prop, "Clamp Negative Noise", "");
-// RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Smoke_resetCache");
+ RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Smoke_resetCache");
prop = RNA_def_property(srna, "noise_clamp_pos", PROP_FLOAT, PROP_NONE);
RNA_def_property_float_sdna(prop, NULL, "noise_clamp_pos");
RNA_def_property_range(prop, 0.0, 2.0);
RNA_def_property_ui_range(prop, 0.0, 1.0, 1.0, 5);
RNA_def_property_ui_text(prop, "Clamp Positive Noise", "");
-// RNA_def_property_update(prop, NC_OBJECT | ND_MODIFIER, "rna_Smoke_resetCache");
+ RNA_def_property_update(prop, NC_OBJECT | ND_MODI
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list