Blender Git Commit Log

Git Commits -> Revision 60ce95f

Revision 60ce95f by Janne Karhu (master)
March 18, 2011, 15:31 (GMT)
New particle collisions code:
* The old collisions code detected particle collisions by calculating the
collision times analytically from the collision mesh faces. This was
pretty accurate, but didn't support rotating/deforming faces at all, as
the equations for these quickly become quite nasty.
* The new code uses a simple "distance to plane/edge/vert" function and
iterates this with the Newton-Rhapson method to find the closest particle
distance during a simulation step.
* The advantage in this is that the collision object can now move, rotate,
scale or even deform freely and collisions are still detected reliably.
* For some extreme movements the calculation errors could stack up so much
that the detection fails, but this can be easily fixed by increasing the
particle size or simulation substeps.
* As a side note the algorithm doesn't really do point particles anymore,
but uses a very small radius as the particle size when "size deflect" isn't
selected.
* I've also updated the collision response code a bit, so now the particles
shouldn't leak even from tight corners.

All in all the collisions code is now much cleaner and more robust than before!

Commit Details:

Full Hash: 60ce95f5622d3947e30fe960eda22ea305660619
SVN Revision: 35614
Parent Commit: 7e53769
Lines Changed: +829, -429

7 Modified Paths:

/source/blender/blenkernel/BKE_particle.h (+48, -12) (Diff)
/source/blender/blenkernel/intern/boids.c (+20, -25) (Diff)
/source/blender/blenkernel/intern/particle_system.c (+606, -381) (Diff)
/source/blender/blenloader/intern/readfile.c (+1, -1) (Diff)
/source/blender/editors/physics/particle_edit.c (+144, -1) (Diff)
/source/blender/makesdna/DNA_modifier_types.h (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_collision.c (+9, -8) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021