Fix for [#22128] particle sizes and physics
* size wasn't updated at all for particles with keyed or no physics
This commit is contained in:
@@ -401,11 +401,12 @@ class PARTICLE_PT_physics(ParticleButtonsPanel):
|
||||
else:
|
||||
row.prop(part, "physics_type", text="")
|
||||
|
||||
row = layout.row()
|
||||
col = row.column(align=True)
|
||||
col.prop(part, "particle_size")
|
||||
col.prop(part, "random_size", slider=True)
|
||||
|
||||
if part.physics_type != 'NO':
|
||||
row = layout.row()
|
||||
col = row.column(align=True)
|
||||
col.prop(part, "particle_size")
|
||||
col.prop(part, "random_size", slider=True)
|
||||
col = row.column(align=True)
|
||||
col.prop(part, "mass")
|
||||
col.prop(part, "sizemass", text="Multiply mass with size")
|
||||
|
@@ -4038,12 +4038,21 @@ void particle_system_update(Scene *scene, Object *ob, ParticleSystem *psys)
|
||||
case PART_PHYS_NO:
|
||||
case PART_PHYS_KEYED:
|
||||
{
|
||||
PARTICLE_P;
|
||||
|
||||
if(emit_particles(&sim, NULL, cfra)) {
|
||||
free_keyed_keys(psys);
|
||||
distribute_particles(&sim, part->from);
|
||||
initialize_all_particles(&sim);
|
||||
}
|
||||
reset_all_particles(&sim, 0.0, cfra, 0);
|
||||
|
||||
LOOP_EXISTING_PARTICLES {
|
||||
pa->size = part->size;
|
||||
if(part->randsize > 0.0)
|
||||
pa->size *= 1.0f - part->randsize * PSYS_FRAND(p + 1);
|
||||
|
||||
reset_particle(&sim, pa, 0.0, cfra);
|
||||
}
|
||||
|
||||
if(part->phystype == PART_PHYS_KEYED) {
|
||||
psys_count_keyed_targets(&sim);
|
||||
|
Reference in New Issue
Block a user