Page MenuHome

Thin mesh and hair particles
Closed, DuplicatePublic

Description

System Information
Operating system: Linux-5.4.73-1-lts-x86_64-with-glibc2.32 64 Bits
Graphics card: GeForce RTX 2070/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 455.38

Blender Version
Broken: version: 2.93.0, branch: master, commit date: 2021-06-02 11:21, hash: rB84da05a8b806

Short description of error
I add some hair particles on a thin surface (0.58 meter). The face orientation is in a good way.
But Hair come through the thin mesh (inverted). And causes different spot on it.


And with a simple cube

Exact steps for others to reproduce the error
Use this hair system particles or add a new hair particles on the surface of this mesh

Related Objects

Event Timeline

Can confirm that the interpolation of interpolated children does not ensure the hair stays on the same side of the emitting face.

This has been reported before though (and was not considered a bug), see T42884: Hairs Grow Backwards into Mesh

The problem is the way child particles are interpolated between parents, which does not work well with sparse sampling on thin geometry such as the ears and the throat area (which you modelled as a 2-sided tube). A child particle then often has to select parents from the opposite sides of the object, with diverging normals, which give it an unnatural direction.

Possible solutions/workarounds:

  • Add more parents! This reduces cases where parents with conflicting directions are interpolated. Ideally the distance between parents should be less than the thickness of the geometry.
  • Use "simple" instead of "interpolated" children. This not as smoothly distributed, so it may not be an option, but they avoid the interpolation pitfalls.
  • At least for the throat area: remove the particles on the inside, assuming you don't want a furry throat anyway. This will make children only interpolate between parents on the actual surface.

In the future we may want to implement nicer surface-distance methods instead of using the current euclidian distance for interpolating (see e.g. http://peterwonka.net/Publications/pdfs/2009.EGSR.Cline.PoissonSamplingOnSurfaces.pdf). This should solve many currently problematic cases, but it's not going to happen with the current particle system.

So thx reporting, will have to merge into T42884 though.