A glyph is an outline before it is a texture.
TrueType and OpenType fonts describe glyph outlines with line and curve segments. A renderer must shape text, select glyphs, place them, and turn those outlines into covered pixels. The rendering technique changes the last part. It does not remove shaping, fallback, line breaking, or font licensing.
AlphaPixel's recent comparison is useful because it puts five GPU paths beside one another. It also comes from the maker of Slughorn, an implementation built around the Slug technique. Treat its method descriptions as engineering guidance and its product judgments as vendor claims.[1]
An atlas trades change for speed.
A bitmap atlas rasterizes glyphs into a shared texture and draws each character as a textured quad. It is simple and fast when sizes and glyph sets are known. Large magnification exposes the baked resolution. New sizes, scripts, or glyphs require more texture space or runtime atlas work.[1]
A signed distance field stores distance to the nearest edge instead of final coverage. The shader reconstructs the edge at draw time. A multi-channel signed distance field stores several edge distances so sharp corners survive better than they do in a single channel. The msdfgen project documents this goal and ships an MIT-licensed generator and library.[2]
A sharper sample is not a workload decision.
Outline methods move cost instead of deleting it.
Eric Lengyel's 2017 JCGT paper describes GPU-centered rendering directly from glyph outlines. The paper includes downloadable shader source and explains its winding and curve-intersection method.[3] AlphaPixel's Slughorn repository is a current MIT-licensed implementation with CMake, Python bindings, examples, tests, and active work items. This pass inspected the repository and its current status. It did not build or benchmark it.[4]
Tessellation-based renderers turn paths into geometry or coverage work that the GPU can draw. Rive's current C++ runtime includes GPU backends for Metal, Vulkan, Direct3D, OpenGL, and WebGL. That makes it relevant to animated vector graphics. It does not make it the automatic choice for a terminal or code editor.[5]
Test the ugly edges.
- Use the smallest text that must remain readable.
- Use the largest scale and hardest perspective transform.
- Load the real scripts, fallback fonts, and glyph churn.
- Measure texture memory, generation time, frame time, and cache misses on target hardware.
- Inspect hinting, kerning, shaping, selection, accessibility, and copy behavior outside the shader.