In this post I will do a summery of reading on a paper1 about shape optimization using offset surfaces. This paper is suggested by Campbell Barton(ideasman42) and it may be used to implement new solidify tools in the coming GSOC 2016.
In this paper1 the stated problem is modeled as an optimization problem using offset direction , and offset depth . The objective function and constraints are built based on .
A mean curvature flow based method is used to find the “shape skeleton” (or meso-skeletons in the paper), which we can take as an upper bound for how far we can offset from the shape surface. By using this upper bound we can also avoid self-intersection.
The offset direction can also be retrieved using the shape skeleton: we just take the direction from one vertex from contracted surface to its counterpart on the original surface.
If we try to solve the problem based on current setting, we would suffer from high complexity due to potential large number of vertices. So the author uses manifold harmonics to transform the explicit mesh representation into several discrete basis. And hence then the original problem of searching for gets transformed into searching for a vector of basis weights.
Starting from section 6 the author shows how to represent geometric/mechanic constraints.
Notes and thoughts
I have known the mean curvature flow problem before. And I learned it as a non-linear hyperbolic equation. In this paper, the approach used is slightly different2.
For manifold harmonics, which is used for order reduction, several (discrete)differential geometric tools will be used. I find this book3 really useful for implementation. Several concepts, such as Laplace-Beltrami operator, one-ring neighborhood, etc. are introduced in chapter 3.
For the future Solidify tools of Blender, I also consider other potential solutions than the one in this paper. The first idea I come up with is that I can compute the distance field for the given mesh, and solve a level-set problem(almost exactly a mean curvature flow problem) to contract or dilate the distance field, finally a iso-surface extraction method(e.g. marching cube or dual contouring) is used to get the mesh representation for the offset surface.
Tagliasacchi, Andrea, et al. “Mean curvature skeletons.” Computer Graphics Forum. Vol. 31. No. 5. Blackwell Publishing Ltd, 2012. ↩
Botsch, Mario, et al. Polygon mesh processing. CRC press, 2010. ↩