Commit: b35a96e195b100dbad68721065f431b168b7945b Author: Philipp Oeser Date: Tue Aug 3 12:36:59 2021 +0200 Branches: master https://developer.blender.org/rBb35a96e195b100dbad68721065f431b168b7945b
Fix T90346: particle force field self effect amount off by one When calculating the particle step in `get_effector_tot`, we have to round up (otherwise we might get an extra round in the for-loop in `BKE_effectors_apply` for certain cases). Example from the report: - 10.000 particles, Effector Amount 3 - was rounding the step down to 3333 - going into the for-loop for 0, 3333, 6666 and 9999 (4 times) - now rounding the step up to 3334 - going into the for-loop for 0, 3334 and 6668 (3 times as desired) Maniphest Tasks: T90346 Differential Revision: https://developer.blender.org/D12113 =================================================================== M source/blender/blenkernel/intern/effect.c =================================================================== diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c index fc1721eaf3a..334118ddf3f 100644 --- a/source/blender/blenkernel/intern/effect.c +++ b/source/blender/blenkernel/intern/effect.c @@ -861,7 +861,7 @@ static void get_effector_tot( int totpart = eff->psys->totpart; int amount = eff->psys->part->effector_amount; - *step = (totpart > amount) ? totpart / amount : 1; + *step = (totpart > amount) ? (int)ceil((float)totpart / (float)amount) : 1; } } else { _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs