问题
I want to generate an intermediate mesh from several meshes like cups, but I didn't find any available paper, open source code, or another resource to do so. So, how can I generate such a mesh?
回答1:
I am not aware of any open source library for this. But research literature is very broad and deep.
Basically the ingredients are:
- Mesh parameterization
- Remeshing
Basically you need to parameterize (embed) all the surfaces to a canonical domain such as a plane, sphere or some suitable (genus compatible) domain. You can parameterize them individually or using a "compatible parameterization" which can give you some advantages. Then you need to remesh all your meshes so that all of them have the same combinatorics (same number of vertices and same connectivity). That process is known as "compatible remeshing". In the remeshing process the cannonical domain is used for mapping points from one surface to the other and at the end of the compatible remeshing a common parameterization is shared by all the meshes. A point in mesh A have different 3d coordinates than a point in mesh B but as they have the same UV-coordinates in the cannonical domain then they are the image of each other and there exist some mapping function F that can send points from mesh A to mesh B.
Now, that is the basic approach. Actually you need more. Usually you need to define feature points on all input meshes so the mapping function F can send, for instance, a point on the nose of cat mesh to a point on the nose of a dog mesh. If you don't enforce feature point correspondence then the "average" of surfaces that you want is likely to be undesirable.
You can search the internet for the keywords "compatible parameterization", "cross parameterization", "inter-surface mapping" and "3d morphing".
The following PhD thesis is reviewing some of the literature relevant for your task:
https://tel.archives-ouvertes.fr/tel-00836048/file/ThA_se_MocanuBogdan.pdf
来源:https://stackoverflow.com/questions/54645430/how-is-a-3d-morph-implemented-in-computer-graphics