Hi guys,
I invented a new method for automatic weights, it works pretty well and it’s very efficient.
Usually you choose one voxel size for the whole body (like 128^3) and it does the diffusion through it. Problem is that it doesn’t work well with thin areas like the fingers or the hairs. And if you increase the voxel size to 256 or 512 to support it, the traditional geodesic algorithms take forever as you have millions (even billions) of voxels.
So my method uses one voxel size for the whole body (92 per default) and if necessary it automatically break the big voxels into smaller ones (up to 1/368 or even more).
I’m super happy about the results and it runs on the gpu so it’s almost instant up to 368 voxels (usually less than 0.5s on my MacBook Air M4 so with a good GPU it should be even faster).
I did a benchmark against the other auto weights solutions so you can have a look: https://jessyleite.dev/posts/automatic-skinning-benchmark-comparison/
I’ll release a beta version and I’m looking for testers. Reply here or send me a DM for a copy when it’s ready in a few days.
In the meantime, feel free to share your feedbacks or models with a skeleton (skinned or not) so I can show you the result.
Cheers





