Retopo: Can we apply shrink-wrap to multires subdivisions? An idea came to me recently that I think would be very effective for retopology. 

The dilemma

If you've tried doing Multires sculpts you've probably noticed that pinching, stretching, and uneven mesh density are common side effects, yet DynTopo, especially when used in Subdivide Collapse mode, doesn't have this issue. You can sculpt freely, but at the expense of having your nice quad mesh obliterated into a glob of tris. So we end up going back and painstakingly building another quad mesh over our DynTopo sculpt. 

For anyone not familiar with this, see Intro to Dynamic Topology Sculpting in Blender

The solution?

What I was thinking is that if we duplicate our mesh object to make a backup before breaking out the DynTopo, we can slap a Multires Modifier and then a Shrinkwrap Modifier on that original base mesh and it will conform very nicely to the sculpted mesh! But the big question is - how can we get that shrink-wrap deformation data into the subdivision levels of the multires so that we can have the dyntopo-sculpted detail at various levels in a clean quad mesh?

Visual aid - The red mesh was sculpted using DynTopo, the blue is the original with modifiers on it:



(X-ray display is being used so that we don't see ugly overlapping faces)



Since the Multires Modifier necessarily comes before the Shrinkwrap Modifier in the stack, we can't send the shrinkwrap vert position data backwards up the stack and into the multires subdivision levels. And if we apply the Multires Modifier then obviously that defeats the purpose because it's not Multires anymore.

So how?

Could there be a way to get the vertices within multires Sculpt Mode to snap to the same location as they are in when Shrinkwrap is used? And if it can't be done by some snapping method, could it perhaps be done (even more efficiently) by using a Python script? 

Imagine a script that gets the vertex position data from a version of the mesh that has had its Modifiers applied, and copy that vert position data into the not-yet-applied multires data of the other. Of course the subdivision levels would have to match. I am especially curious to hear from anyone familiar with how Python can manipulate vertex data. But Python or not, if this can be achieved by any means it would be extremely useful. What do you think?
After a few months I decided to revisit this and... I've got the answer!

It was right under my nose the whole time, right there in the interface - a button called 'Reshape'.

Reshape will... okay, I'll let the Blender Manual do the talking:


  Reshape - Copies vertex coordinates from another mesh. To use, first select a different mesh object with matching topology and vertex indexes,
  then Shift select the object you wish to copy vertex coordinates to
  and click Reshape.


So what's so exciting about this button and how does it further humanity's progress?

You can enjoy the flexibility of DynTopo and get great topology easily.

Here is the workflow: