I have 2 3D surface meshes. These meshes have vertex-correspondence and have the same topology (same edges and triangles connecting the vertices). However, the vertex positions (3d coordinates) are different - that is, the meshes are a vertex deformation of each other. They are pose 1 and pose 2 of the same surface mesh (for example a 3D human or animal).

I'm looking for ways to interpolate between the 2 poses and generate intermediate poses. A naive way to do this is to linearly interpolate the vertex coordinates of each corresponding vertex between the two meshes, with some small step size, to generate intermediate vertex positions. However, this can cause implausible poses in between as it won't preserve local geometry.

Another, better way is to find the global transformation matrix for each triangle of poses 1 and 2, then interpolate in the transformation space (the space of 4x4 transformation matrices), and reconstruct the intermediate vertex positions using the interpolated transformations.

Are there, other better methods, papers that have been published in Siggraph/Cvpr that are known to be better than these naive methods? Can someone link same papers or classical methods that are available for this problem?

  • $\begingroup$ Are you trying to rotate/scale/translate the first mesh so that it would result as the second mesh ? Or are you trying to deform the first mesh so that it would appear as the second mesh ? $\endgroup$
    – Kaan E.
    Commented Aug 1, 2021 at 23:14
  • $\begingroup$ Either are fine, but semantic/plausible deformations in between are what I want.. $\endgroup$
    – sanjeev mk
    Commented Aug 2, 2021 at 1:40
  • $\begingroup$ You might want to look into animation rigging. Most 3d game engines give you the capacity to rig the animation so that the mesh deforms in a plausible way. $\endgroup$
    – Kaan E.
    Commented Aug 2, 2021 at 12:11


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.