Sorry for the long delay in responding, I’m unfortunately currently pretty busy with finishing my PhD thesis (including new improved quad-meshing methods).
First of all, thank you all for your interest and your valuable feedback and comments. They gives us a much better picture what topics are most important to focus on in our research.
Also, thanks a lot for the suggested/provided meshes.
I’ve experimented with them a little bit with mixed results, I’ll make a separate post about this later.
By the way, I’m also testing my new (unpublished) algorithms on them, the results seem promising so far Unfortunately I can’t talk about that much yet in public, but will of course update you once I can.
Let me try to comment on commonly mentioned topics.
First of all, we need to talk about speed. Our paper that sparked this discussion did indeed speed up one part of the whole retopo algorithm by a large margin, however that unfortunately does not mean the whole tool is always fast - we merely eliminated one common bottleneck.
In the current tool, performance is most closely related to the number of input faces.
QuadWild has an (optional, default-on) automated initial triangle remeshing phase which is important for robustness, by repairing common defects and improving mesh quality to make it more suitable for the mathematical optimization algorithms (for example, “round”, close to equilateral triangles are much better than thin needles). This also includes mesh decimation that greatly improves runtime, however at the cost of geometric accuracy. For example, in the fireplace mesh, the default settings obliterate most interesting detail. On the other hand, disabling this preprocessing phase makes some steps (in particular the polygonal decomposition) very slow - multiple hours on a fine mesh based on the fireplace model (Indeed it is a good stress test). We’ll need a good way to set the desired tolerance here to not decimate too much.
Several comments directly or indirectly relate to what we would call “feature constraints”, so I’d like to talk about that a bit.
Feature constraints are typically used to preserve sharp edges from the input, but they can also be used to force arbitrary edge paths to be preserved as quad edges. This also influences cross field computation, which will be aligned to those features.
QuadWild currently either selects feature edges based on a dihedral angle threshold (very simple, but often pretty bad), or with list of edge indices as additional input. For a good integration, I guess we could make use of edges marked as “seam” or “sharp”, as well as material boundaries (i.e., edges whose incident faces are assigned different materials). This is unfortunately something you currently can’t try out without writing code for it
Soft edges. I made a shape similar to the screenshot of @JulianPerez, and unfortunately with the default settings, QuadWild doesn’t follow those soft edges well. There could be two (non-conflicting) remedies:
a) The cross field (indicating desired edge orientations) optimization should be improved to better follow those edges (this “curvature alignment” would also be beneficial in many other situations); or at least the user should be able to edit the cross field to encourage/enforce this alignment (similar to Instant Meshes)
b) Feature constraints by the user: One can directly mark paths as “features”; currently, they do need to be edges in the mesh, so one may have to subdivide the input (e.g. with the knife tool). Better tools to find and insert such paths/loops would be useful here.
Spiraling. Several of you mentioned spiraling as a big issue. There is a bunch of research into automatically fixing it or preventing it from occuring in the first place. However, my impression is that manual guidance will probably be more reliable for now, and is definitely much easier to implement. In fact, the “feature” handling of several retopology tools - including QuadWild - should in theory already suffice to allow the sort of manual control some of you mentioned, e.g. delineating a region from which no spirals can escape. A feature edge loop around Suzanne’s ear that is marked as feature would effectively prevent any spiraling from escaping the ear. We could also apply such constraints later in the process, e.g. marking mandatory edge loops in the polygonal decomposition.
Heatmap for quad density. There is some support in the QuadWild code (but not exposed/usable), however as far as I remember, it did not influence crossfield optimization, which I believe is crucial to get high quality here. (Note that several crossfield methods with support for sizing have been published, but I haven’t worked on that topic in particular). T-mesh quantization can take user-specified target densities into account, but it might result in excessive sizing singularities when strong emphasis is placed on adhering to those target densities. By the way: A generalization of a heatmap could allow different scales for both quad directions (anisotropic sizing), but visualizing and editing such a 2-D sizing field will be more difficult than a simple (isotropic) heatmap. Nevertheless, would anisotropic sizing even be something that is relevant for the artistic usecase?
I hope this already helps resolve some of your questions. I’ll try to squeeze in the time to show and discuss the results on your meshes soon