I've changed my mind on this a few times after fixing a broken algorithm implementation, but I'm starting to think a two pass approach to polygonization - fixed-step De Casteljau and then line simplification (using Visvalingam-Whyatt) - is almost always better for curve quality compared to adaptive subdivision. adaptive subdivision (in three-text's case the algorithm from Anti-Grain Geometry) makes locally optimal decisions per curve segment, but the oversample-then-simplify approach distributes points more evenly across the whole contour. and the cost to compute either is trivial. but it's possible I'll change my mind again, maybe when multiple glyphs with very different curvature are involved...
@tribby Triangle quality isn't great in either. I suppose doesn't matter here, but you could imagine a mesh without slivers, possibly achieving that by adding Steiner points.
@theohonohan interesting! I have been getting familiar with CDT via clipper2’s new triangulation module, but it doesn’t feature steiner points or refinement. there are probably tradeoffs to consider as I mostly care about speed and exterior/contour quality, but I’m still making changes to three-text based on things you told me about ages ago, so I have good reason to look into this one too 😅
@tribby Well I really don't imagine your "bad" triangles will ever be a problem, since you're not running finite element simulations on the mesh.
@theohonohan I guess it depends on how the steiner points get placed, but I wonder if it could be useful for better looking / more uniform deformation. the project did after all begin with a deeply american urge to shoot at text 😅