We can see this thing: GitHub - InitialPrefabs/InitialPrefabs.Msdf: MSDF Font Rendering for Unity · GitHub
I’ve also made something similar but fully C# / Burst based : GitHub - mitay-walle/com.mitay-walle.textmeshpro-msdfa: Proof-of-concept. Unity3d package TextMeshPro dynamic MSDFA atlas / shader · GitHub
But both solutions need to save original byte[] data from fonts. it force Font duplication in memory size.
If any time Unity give us public API to extract font contours, we can make this possible and profitable for everyone
MSDF rendering need more textures channels → x3-x4 more memory by default. But need to fully duplicate Font file - in multilanguage mobile game it’s close to x30-40 times (for example Arial Unicode we use for fallback languages, it’s size 23 mb → 46 mb with duplication) - it’s make MSDF rendering pointless
What we need?
We need public API to get Font Glyph Contours, or support for MSDFA / MSDF render mode
GlyphRenderMode.MSDF
GlyphRenderMode.MTSDF
or
public static FontEngineError TryLoadFontFace(Font font, int pointSize);
public static bool TryGetGlyphIndex(uint unicode, out uint glyphIndex);
public static bool TryGetGlyphOutlineIntoBuffer(
uint glyphIndex,
GlyphLoadFlags flags,
NativeList<GlyphOutlinePoint> points,
NativeList<int> contourEnds,
out GlyphMetrics metrics,
out GlyphRect glyphBounds);


