[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