Something's off with hair conversion

Issue #1287 resolved
Maneki created an issue

It seems that in some cases the “Make Hair” conversion is more accurate on a negative X-axis than on a positive X-axises which results in more density on the negative X-axis side of the character than on the positive X-axis. The eyebrows I tested are completely mirrored. I used the G9 fibermesh eyebrows https://www.daz3d.com/genesis-9-starter-essentials-expansion
I tried seperating the eye brows in left and right but that doesn’t change anything.

Comments (10)

  1. Thomas Larsson repo owner

    This is probably an issue with uv coordinates, which the plugin uses to analyze the hair mesh. It is assumed that the hair uv coordinates are arranged in strips. You can specify if the strips (root - tip) run top-bottom, bottom-top, left-right, or right-left, but all strands must be arranged in the same way. I looked at the uvs for the G9 eyebrows, but they were covering a rectangular region with no obvious direction. If the left and right sides are oriented differently, you could split the brow mesh into two halves and choose different orientations on the two sides.

  2. Alessandro Padovani

    About this, it would be a nice improvement if the plugin can understand the uv direction without the user having to bother. Because some hair have both vertical and horizontal strips. Then I understand it can only be a guess because if the hair is not organized in uv strips then the conversion will have troubles anyway.

    Please let us know. If this is too complex to implement then we know that we have to deal with uv strips for the hair conversion, as explained in the docs.

  3. Thomas Larsson repo owner

    That would be very difficult, I think. One could use some heuristics, e.g. that the tip is below the root, but that is not always true even for ordinary hair and definitely not for brows. To deal with mixed uv directions you have to split the mesh into separate pieces, just as you should separate the skull from the hairs.

  4. Alessandro Padovani

    Ok thank you for the explanation. That’s a understandable limitation by the way and not hard to deal with by hand in most cases.

    Then I guess we can mark as invalid if there’s nothing to add, since this is explained in the docs.

  5. Maneki reporter

    I did a new test now since the post is a bit older. I don’t know if something significant changed with the hair tool but when I convert the brow now it’s exactly mirrored?
    Edit: I think I used fiber mesh on my example here but in the new test cards. Cards seem to work.

  6. Maneki reporter

    I did a test now with fiber mesh. It seems to convert pretty decent.

    Again, not sure if something changed with the hair tools the past 2-3 months.

  7. Alessandro Padovani

    The only thing that’s changed is it now uses the blender internal tool to separate by loose parts. That doesn’t affect the uv strips though.

    note for Thomas. One difference is that the blender tool doesn’t require uvs to separate by loose parts. May it be this is significant someway ?

  8. Thomas Larsson repo owner

    No, I’m pretty sure that there will be an error message if the hair mesh doesn’t have uvs.

  9. Alessandro Padovani

    I’m talking about the separate tool itself. The blender tool works even without uvs, the mesh doesn’t have to be uv mapped. While the diffeomorphic tool only worked with uvs, there was a python crash if the mesh wasn’t uv mapped, as reported in #1430.

    Not that this is important, the issue is resolved anyway.

  10. Log in to comment