I’ve had an interesting idea while sleeping, so I had to give it a try this morning:
Obviously euclidian distances produce insufficient results. But when it comes to skin weighting you don’t look at the euclidian distances but at edge distances.
I mean, nomally one would start to set the weights for two bones in a transition area and move on to all the points that are close to that area. For those neighbouring points one would normally use a value less than the value of the transition area and so on.
According to that idea the new distance calculation algorithm takes every transition edge area and calculates the edge-distance for every other point. For example the points next to the transition area have a distance of 1, the points next to them have an edge distance to the transition area of 2 and so on…
Here is an image to visualize all three skinning methods.
Number 3 produces quite smoother results than Number 2 now.
Labbejason: Yeah, there needs to be a spinner. The new edge distance can be changed by the user. At the moment I have an edge distance of 4 for the skinning. But I guess it’s important to give the user a chance to vary it.
It seems flexible? Cool I’ll try to keep it flexible.