Commit: 55b9eebedef82bc64109a741bea87a98ee1bb25c Author: Luca Rood Date: Fri Jan 6 04:27:29 2017 -0200 Branches: cloth-improvements https://developer.blender.org/rB55b9eebedef82bc64109a741bea87a98ee1bb25c
Implement rest planarity factor option =================================================================== M release/scripts/startup/bl_ui/properties_physics_cloth.py M source/blender/makesdna/DNA_cloth_types.h M source/blender/makesrna/intern/rna_cloth.c M source/blender/physics/intern/BPH_mass_spring.cpp =================================================================== diff --git a/release/scripts/startup/bl_ui/properties_physics_cloth.py b/release/scripts/startup/bl_ui/properties_physics_cloth.py index fc14855fe8..09f13b9a03 100644 --- a/release/scripts/startup/bl_ui/properties_physics_cloth.py +++ b/release/scripts/startup/bl_ui/properties_physics_cloth.py @@ -105,6 +105,7 @@ class PHYSICS_PT_cloth(PhysicButtonsPanel, Panel): layout.prop(cloth, "structural_yield_factor") layout.prop(cloth, "bending_plasticity") layout.prop(cloth, "bending_yield_factor") + layout.prop(cloth, "rest_planarity_factor") split = layout.split() diff --git a/source/blender/makesdna/DNA_cloth_types.h b/source/blender/makesdna/DNA_cloth_types.h index 2480caa279..a2213a67f2 100644 --- a/source/blender/makesdna/DNA_cloth_types.h +++ b/source/blender/makesdna/DNA_cloth_types.h @@ -86,6 +86,7 @@ typedef struct ClothSimSettings { float struct_yield_fact; /* Factor of how much length has to change before plastic behavior kicks in (1-inf) */ float bend_plasticity; /* Factor of how much the rest angle will change after reaching yield point (0-1) */ float bend_yield_fact; /* How much angle has to change as a factor of a full circle before plastic behavior kicks in (0-1) */ + float rest_planar_fact; /* Factor of how planar rest angles should be, 0 means the original angle, and 1 means totally flat */ /* XXX various hair stuff * should really be separate, this struct is a horrible mess already @@ -108,7 +109,7 @@ typedef struct ClothSimSettings { short presets; /* used for presets on GUI */ short reset; - char pad0[2]; + char pad0[6]; struct EffectorWeights *effector_weights; } ClothSimSettings; diff --git a/source/blender/makesrna/intern/rna_cloth.c b/source/blender/makesrna/intern/rna_cloth.c index c107b8e4cc..84bd375e48 100644 --- a/source/blender/makesrna/intern/rna_cloth.c +++ b/source/blender/makesrna/intern/rna_cloth.c @@ -660,6 +660,12 @@ static void rna_def_cloth_sim_settings(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Bending Yield Factor", "How much cloth has to bend before plasticity takes effect"); RNA_def_property_update(prop, 0, "rna_cloth_update"); + prop = RNA_def_property(srna, "rest_planarity_factor", PROP_FLOAT, PROP_NONE); + RNA_def_property_float_sdna(prop, NULL, "rest_planar_fact"); + RNA_def_property_range(prop, 0.0f, 1.0f); + RNA_def_property_ui_text(prop, "Rest Planarity Factor", "How planar the rest shape should be, 0 is the original shape, and 1 is totally flat"); + RNA_def_property_update(prop, 0, "rna_cloth_update"); + prop = RNA_def_property(srna, "sewing_force_max", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, NULL, "max_sewing"); RNA_def_property_range(prop, 0.0f, 10000.0f); diff --git a/source/blender/physics/intern/BPH_mass_spring.cpp b/source/blender/physics/intern/BPH_mass_spring.cpp index 6eacf19520..830ade1c37 100644 --- a/source/blender/physics/intern/BPH_mass_spring.cpp +++ b/source/blender/physics/intern/BPH_mass_spring.cpp @@ -353,8 +353,9 @@ BLI_INLINE void cloth_calc_spring_force(ClothModifierData *clmd, ClothSpring *s, scaling = parms->bending + s->ang_stiffness * fabsf(parms->max_bend - parms->bending); k = scaling * s->restlen * s->lenfact * 0.1f; /* multiplying by 0.1, just to scale the forces to more reasonable values */ - BPH_mass_spring_force_spring_angular(data, s->ij, s->kl, s->pa, s->pb, s->la, s->lb, s->restang, &s->angoffset, - k, parms->bending_damping, bend_plast, parms->bend_yield_fact * M_PI * 2); + BPH_mass_spring_force_spring_angular(data, s->ij, s->kl, s->pa, s->pb, s->la, s->lb, + s->restang * (1.0f - parms->rest_planar_fact), &s->angoffset, k, + parms->bending_damping, bend_plast, parms->bend_yield_fact * M_PI * 2); #endif } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs