How to fix "Invalid UV Map: UV Islands must not overlap"

I’m adding fur using Empty Hair Curves and I’ve run into a bald patch. I’m not adding fur to the palms of the hands or their stomach, but the bald patches in question are a triangle shape on the thighs as seen in the pictures.

The error that shows up when I try to add more fur using Density is: “Invalid UV Map: UV Islands must not overlap”. It’s UV unwrapped and All Transforms were applied. When I use Smart UV Project, half of the fur floats off of the mesh.

How do I fix an invalid UV Map?

Thanks!

Hi,

I might be wrong, but you could to unwrap your object once again, but this time using different method. Also,try to select your model, switch to Edit Mode, press Shift+N, expand the “Recalculate Normals” tab at the left bottom corner and check the “Inside” option. Then try to add your hairs again.

Thanks. I’ll try that, but I think I have already, several times. I also Merged by Distance…

Oh, there is also the fact that whenever you change the UV unwrap/packing you need to restart placing the hair and re-groom - sorry. :cry:

The solution is fairly simple. The cause is a bit more complex but important.

As all of us know, UV unwrapping can be confusing and complicated. By necessity, meshes require Seams to be marked to help flatten the UV map so that textures are not stretched. Those seams separate UVs from neighboring UVs and the unwrapping process will overlap parts of the mesh on top of each other.

In the UV Editor, under Select, click on Select Overlap and that’ll show you what part of the mesh is overlapping. Then you can select those verts that are overlapping and move them aside. You have to be careful not to suddenly stretch your textures by moving the verts too far… That’s why strategically planning your seams is important.

The triangle area in question accidentally had an incomplete and unnecessary seam, which I cleared and that helped solve the overlapping UVs problem.

I was then able to add more fur to that bald spot.

Grant Abbitt’s tutorial was what led me to the answer: https://youtu.be/g9FTp8vTwfw?si=H98OV2rf51tAvfCM&t=117