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:
|
else:
|
||||||
row.prop(part, "physics_type", text="")
|
row.prop(part, "physics_type", text="")
|
||||||
|
|
||||||
if part.physics_type != 'NO':
|
|
||||||
row = layout.row()
|
row = layout.row()
|
||||||
col = row.column(align=True)
|
col = row.column(align=True)
|
||||||
col.prop(part, "particle_size")
|
col.prop(part, "particle_size")
|
||||||
col.prop(part, "random_size", slider=True)
|
col.prop(part, "random_size", slider=True)
|
||||||
|
|
||||||
|
if part.physics_type != 'NO':
|
||||||
col = row.column(align=True)
|
col = row.column(align=True)
|
||||||
col.prop(part, "mass")
|
col.prop(part, "mass")
|
||||||
col.prop(part, "sizemass", text="Multiply mass with size")
|
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_NO:
|
||||||
case PART_PHYS_KEYED:
|
case PART_PHYS_KEYED:
|
||||||
{
|
{
|
||||||
|
PARTICLE_P;
|
||||||
|
|
||||||
if(emit_particles(&sim, NULL, cfra)) {
|
if(emit_particles(&sim, NULL, cfra)) {
|
||||||
free_keyed_keys(psys);
|
free_keyed_keys(psys);
|
||||||
distribute_particles(&sim, part->from);
|
distribute_particles(&sim, part->from);
|
||||||
initialize_all_particles(&sim);
|
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) {
|
if(part->phystype == PART_PHYS_KEYED) {
|
||||||
psys_count_keyed_targets(&sim);
|
psys_count_keyed_targets(&sim);
|
||||||
|
Reference in New Issue
Block a user