So I took @warrenm's MetalSlug (https://github.com/metal-by-example/MetalSlug) - itself an implementation of the https://sluglibrary.com paper…

Ported it to https://metalsprockets.com

Optimised it so it renders all text in a single draw call (from an original 40,000 draw calls…)

And then entered the matrix?

Every glyph is vector. Whoa.

(Code needs a cleanup - it got messy but will put it online soon)

@schwa @warrenm Why Slug and not the Loop/Blinn technique (which I believe is faster).

@alexr @warrenm Because warren's code caught my attention and i had a "hmm what if" thought at just the right time…

Links?

@schwa @warrenm The PS3's GPU was exceptionally fast at this because the final 16 or 4:1 anti-aliasing can be done using the on-board stencil buffer.
@alexr @schwa @warrenm Loop-Blinn is indeed faster, but that speed comes with some serious trade-offs, just as SDFs are even faster but have their own limitations. Compared to Slug, Loop-Blinn is much harder to implement due to the one-curve-per-triangle design. The triangulation phase can be impractical for even moderately complex fonts because you can end up generating hundreds of tris. With Slug, you just need one quad per glyph no matter what.
@alexr @schwa @warrenm The simple triangulation makes Slug better suited for things like decaling onto 3D surfaces where clipping might be necessary. Slug also doesn't need an extra indirection in the vertex shader to reference the per-glyph meshes. And because it considers multiple curves per pixel, the rendering quality is significantly higher at smaller font sizes. You also get at least 256 coverage levels without any need for stencil.
@EricLengyel @alexr @warrenm Thanks for the info and making it public domain. Much appreciated.
@EricLengyel @schwa @warrenm Do the different amounts of vertex vs fragment computation matter for any GPU still worth targeting? We didn’t have Slug back when we did our PS3 work and it came out a whole hell of a lot better than the cargo-culted SDF all the teams were using then.
@alexr @schwa @warrenm When it comes to speed? Probably not. But I have found that a lot of people are still concerned with memory usage, and all that vertex data can add up fast, especially for a CJK font. Also consider that people want to create arbitrary vector graphics at run time, and having to go through that triangulation step on the CPU every time would be prohibitive.
@alexr @schwa @warrenm The GPU in the PS3 can't handle Slug, unfortunately. But it runs great on the PS4!
@EricLengyel @schwa @warrenm Our PS3 solution compressed all the vertex data by converting from TrueType’s 16+16 vertices to a 10-bit Hilbert distance. (I should have patented that.) 10 bits was enough for every full Unicode font we measured. Much less if you didn’t want CJK, etc.