Currently, if a force field is created with a //Surface// shape, particles (and hair and cloth) will be attracted or repelled along the normals of the mesh. With a positive force, particles are always repelled away from the nearest face. This works well for surface meshes, i.e. where the faces are two-sided. However, it is not useful for simulating solid meshes.
For a solid mesh, the faces should be considered to be single-sided: the direction of the force should not change when the particle crosses the face, as shown in B in the following diagram.
{F83729}
- A: Current behaviour: force direction always reverses at face boundary and at midpoint between faces. Particles can get trapped inside solid objects.
- B: Proposed behaviour: force direction is consistent across face boundary, but still reverses at midpoint. Allows particles to be repelled from surface and pushed out from inside.
This `.blend` file demonstrates the problem: if the particles or cloth end up inside the cube, they never escape. Under this proposal they should be repelled, because the force field strength is positive.
{F83726}
If this is option is implemented, it could be exposed as a new option, or the //Both Z// / //+Z// / //-Z// options could be reused for it.