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
diff options
context:
space:
mode:
authorAlex Fraser <alex@phatcore.com>2011-09-25 15:51:28 +0400
committerAlex Fraser <alex@phatcore.com>2011-09-25 15:51:28 +0400
commit558b646216feaa43abf44eb332d2449c68bf1b39 (patch)
treefd723cb9ceeef9bc715f08ab9ae62a8698f54a0d /source/blender/makesrna/intern/rna_particle.c
parent9931c9442e16867ac2117a60b5a41839df76a454 (diff)
Committing patch #27442: Adaptive time step for fluid particles. The number of
subframes can now be altered automatically while an SPH (fluid particle) simulation is running.
Diffstat (limited to 'source/blender/makesrna/intern/rna_particle.c')
-rw-r--r--source/blender/makesrna/intern/rna_particle.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/source/blender/makesrna/intern/rna_particle.c b/source/blender/makesrna/intern/rna_particle.c
index 5dc2f2ccac5..56738dd9f11 100644
--- a/source/blender/makesrna/intern/rna_particle.c
+++ b/source/blender/makesrna/intern/rna_particle.c
@@ -19,6 +19,9 @@
*
* Contributor(s): Blender Foundation (2008).
*
+ * Adaptive time step
+ * Copyright 2011 AutoCRC
+ *
* ***** END GPL LICENSE BLOCK *****
*/
@@ -2049,12 +2052,23 @@ static void rna_def_particle_settings(BlenderRNA *brna)
RNA_def_property_float_funcs(prop, "rna_PartSettings_timestep_get", "rna_PartSetings_timestep_set", NULL);
RNA_def_property_range(prop, 0.0001, 100.0);
RNA_def_property_ui_range(prop, 0.01, 10, 1, 3);
- RNA_def_property_ui_text(prop, "Timestep", "The simulation timestep per frame (in seconds)");
+ RNA_def_property_ui_text(prop, "Timestep", "The simulation timestep per frame (seconds per frame)");
RNA_def_property_update(prop, 0, "rna_Particle_reset");
-
+
+ prop= RNA_def_property(srna, "adaptive_subframes", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "time_flag", PART_TIME_AUTOSF);
+ RNA_def_property_ui_text(prop, "Automatic Subframes", "Automatically set the number of subframes");
+ RNA_def_property_update(prop, 0, "rna_Particle_reset");
+
prop= RNA_def_property(srna, "subframes", PROP_INT, PROP_NONE);
RNA_def_property_range(prop, 0, 1000);
- RNA_def_property_ui_text(prop, "Subframes", "Subframes to simulate for improved stability and finer granularity simulations");
+ RNA_def_property_ui_text(prop, "Subframes", "Subframes to simulate for improved stability and finer granularity simulations (dt = timestep / (subframes + 1))");
+ RNA_def_property_update(prop, 0, "rna_Particle_reset");
+
+ prop= RNA_def_property(srna, "courant_target", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_range(prop, 0.01, 10);
+ RNA_def_property_float_default(prop, 0.2);
+ RNA_def_property_ui_text(prop, "Adaptive Subframe Threshold", "The relative distance a particle can move before requiring more subframes (target Courant number). 0.1-0.3 is the recommended range.");
RNA_def_property_update(prop, 0, "rna_Particle_reset");
prop= RNA_def_property(srna, "jitter_factor", PROP_FLOAT, PROP_NONE);
@@ -2862,6 +2876,13 @@ static void rna_def_particle_system(BlenderRNA *brna)
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_ui_text(prop, "Edited", "Particle system has been edited in particle mode");
+ /* Read-only: this is calculated internally. Changing it would only affect
+ * the next time-step. The user should change ParticlSettings.subframes or
+ * ParticleSettings.courant_target instead. */
+ prop= RNA_def_property(srna, "dt_frac", PROP_FLOAT, PROP_NONE);
+ RNA_def_property_range(prop, 1.0f/101.0f, 1.0f);
+ RNA_def_property_ui_text(prop, "Timestep", "The current simulation time step size, as a fraction of a frame.");
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_struct_path_func(srna, "rna_ParticleSystem_path");
}