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
path: root/source
diff options
context:
space:
mode:
authorPhilipp Oeser <info@graphics-engineer.com>2021-08-03 13:36:59 +0300
committerPhilipp Oeser <info@graphics-engineer.com>2021-08-03 14:07:46 +0300
commitb35a96e195b100dbad68721065f431b168b7945b (patch)
treec03dc110b44d102fa58b23479ceb791eac88e883 /source
parent20d5d7b8ece6f5e24f75a486e24922e943131dde (diff)
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
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/effect.c2
1 files changed, 1 insertions, 1 deletions
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 {