diff --git a/source/blender/blenkernel/intern/effect.c b/source/blender/blenkernel/intern/effect.c index a43553ee89f..b6abb4fc75c 100644 --- a/source/blender/blenkernel/intern/effect.c +++ b/source/blender/blenkernel/intern/effect.c @@ -1043,6 +1043,7 @@ static void do_physical_effector(EffectorCache *eff, #endif break; } + // zero_v3(force); if (pd->flag & PFIELD_DO_LOCATION) { madd_v3_v3fl(total_force, force, 1.0f / point->vel_to_sec); diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index bec9cbbad79..2b9b52893d8 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -1421,6 +1421,7 @@ static void integrate_particle( ParticleKey states[5]; float force[3], acceleration[3], impulse[3], dx[4][3] = ZERO_F43, dv[4][3] = ZERO_F43, oldpos[3]; float pa_mass = (part->flag & PART_SIZEMASS ? part->mass * pa->size : part->mass); + printf("Size: %f\n", pa->size); int i, steps = 1; int integrator = part->integrator; @@ -1461,6 +1462,7 @@ static void integrate_particle( force_func(forcedata, states + i, force, impulse); /* force to acceleration*/ + printf("Mass: %f\n", pa_mass); mul_v3_v3fl(acceleration, force, 1.0f / pa_mass); if (external_acceleration) { @@ -2231,8 +2233,12 @@ typedef struct EfData { ParticleSimulationData *sim; ParticleData *pa; } EfData; +static int mycounter = 0; static void basic_force_cb(void *efdata_v, ParticleKey *state, float *force, float *impulse) { + mycounter++; + printf("Counter: %d\n", mycounter); + print_v3_id(state->vel); EfData *efdata = (EfData *)efdata_v; ParticleSimulationData *sim = efdata->sim; ParticleSettings *part = sim->psys->part; @@ -2270,6 +2276,8 @@ static void basic_force_cb(void *efdata_v, ParticleKey *state, float *force, flo if (part->flag & PART_ROT_DYN && epoint.ave) { copy_v3_v3(pa->state.ave, epoint.ave); } + + print_v3_id(force); } /* gathers all forces that effect particles and calculates a new state for the particle */ static void basic_integrate(ParticleSimulationData *sim, int p, float dfra, float cfra) @@ -3940,7 +3948,11 @@ static void dynamics_step(ParticleSimulationData *sim, float cfra) case PART_PHYS_NEWTON: { LOOP_DYNAMIC_PARTICLES { + if (p != 1) { + continue; + } /* do global forces & effectors */ + printf("Particle: %d\n", p); basic_integrate(sim, p, pa->state.time, cfra); /* deflection */