Maya/Max GDC08 Presentations at The Area

Great info Francois. Thanks for sharing that. I’ve also thought about ways to compare two meshes in the past, mainly after seeing Gator in action in XSI and wondering how they managed to match two different meshes that didn’t exactly overlap.

Your way of using edges is great and I hadn’t thought of that. But a different method I though about would be to do a distance comparison to find the closest verts, but then also a normal comparison. So you would start with any vert on Mesh1 and look for a vert on Mesh2 that is not just the closest, but has the best match of its normal. That way the meshes wouldn’t necessarily need to completely overlap. And to cut down on processing time so that you don’t have to go through every vert in Mesh2, you could use a volume select modifier on Mesh1, set to use a sphere of a certain size for the mesh gizmo and just keep moving it around to match the position of the vert you’re testing for at that time.

Hope that makes sense. There would be that issue of scale with this method, that you mentioned you don’t have to worry about, but I did a quick prototype test in the past and it worked pretty good overall.

I believe the Skin Utilities used for transferring skin weights from one mesh to another only use a distance comparison, and so you end up with with strange weighting at times if the meshes aren’t really set up correctly to match each other as close as possible. And that’s why the Gator method was so impressive, because it did such a better job at matching dissimilar meshes. So I’m guessing they use something more the distance, possibly even a combination of both of our methods, using edges and normals as well as distance.