9 Punkte von GN⁺ 2026-03-18 | 2 Kommentare | Auf WhatsApp teilen
  • Der Slug-Algorithmus für Bezierkurven-basiertes Font-Rendering auf der GPU rendert Vektordaten direkt ohne Texturen und wird in vielen Branchen eingesetzt, darunter Spiele, CAD, Videoschnitt und Medizintechnik
  • Auf die Exklusivrechte wird zum 17.03.2026 verzichtet, wodurch das Patent vollständig in die Public Domain übergeht und von allen frei genutzt werden kann
  • In der aktuellen Version wurden Leistung und Code-Effizienz durch Entfernung der band split-Optimierung und von Supersampling sowie durch Vereinfachung des Emoji-Renderings verbessert
  • Die größte Änderung ist die Funktion Dynamic Dilation, die die optimale Grenzerweiterung abhängig von Glyphengröße und Blickwinkel automatisch berechnet
  • Mit dem unter MIT-Lizenz veröffentlichten GitHub-Referenz-Shader-Code kann jeder die Technik frei implementieren

Entwicklung und Verbreitung des Slug-Algorithmus

  • Der Slug-Algorithmus wurde im Herbst 2016 entwickelt und 2017 in einem JCGT-Paper vorgestellt
    • Danach wurde die Slug Library 1.0 kommerzialisiert und an große Unternehmen wie Activision, Blizzard, Ubisoft und Adobe lizenziert
    • Sie wird in vielen Bereichen eingesetzt, darunter Spiele, wissenschaftliche Visualisierung, CAD, Videoschnitt, Medizintechnik und Planetarien
  • Ursprünglich wurde er für hochwertiges Text-Rendering in der C4 Engine entwickelt und später auch im Radical Pie Formel-Editor eingesetzt
    • Damit lassen sich Formeln, Klammern, Pfeile und andere Vektorgrafik-Elemente in hoher Auflösung darstellen

Die Entwicklung des Rendering-Verfahrens

  • Slug rendert Bezierkurven-Daten direkt auf der GPU ohne vorab berechnete Texturen
    • Das Verfahren ist robust gegenüber Gleitkommafehlern und bewahrt glatte Kurven sowie scharfe Kanten
  • Die band split-Optimierung brachte bei großen Glyphen Geschwindigkeitsvorteile, wurde aber wegen Leistungsnachteilen bei kleinen Schriften und höherer Komplexität entfernt
    • Dadurch wurde der Pixel-Shader vereinfacht und die Größe der band-Datentextur halbiert
  • Adaptive Supersampling wurde verwendet, um Aliasing bei kleinen Schriftgrößen zu reduzieren, hatte aber nur begrenzte Wirkung und wurde durch das neue Dilatationsverfahren ersetzt
  • Das mehrfarbige Emoji-Rendering wurde so umgestellt, dass jede Ebene als unabhängige Glyphe behandelt wird, was Leistung steigert und den Code vereinfacht

Dynamische Dilatation (Dynamic Dilation)

  • Bisher musste die Erweiterung der Glyphengrenzen manuell mit einer festen Distanz angegeben werden
    • Bei kleinen Schriftgrößen gingen dadurch Randbereiche verloren, bei großen Schriftgrößen wurde unnötig Platz verschwendet
  • Dynamic Dilation wird automatisch im Vertex-Shader berechnet und bestimmt beim Rendern jeder Glyphe die optimale Erweiterungsdistanz
    • Mithilfe von MVP-Matrix und Viewport-Größe werden die Grenzen um einen halben Pixel erweitert
    • Je nach Blickwinkel kann auf jeden Vertex eine unterschiedliche Dilatationsdistanz angewendet werden
  • Mathematisch wird dies als quadratische Gleichung hergeleitet, die die Bedingung einer Halbpixel-Erweiterung im Viewport-Raum für die Distanz d erfüllt
    • Die endgültige Lösung hat die Form (d = \frac{s^3t \pm s^2\sqrt{u^2 + v^2}}{u^2 + v^2 - s^2t^2})
    • Es wird das positive Vorzeichen gewählt, um sich nach außen zu bewegen
  • Um die Glyphengröße beizubehalten, wird außerdem eine Korrektur der em-space-Koordinaten durchgeführt, wobei für jeden Vertex die inverse Jacobian-Matrix gespeichert wird

Patentfreigabe und Offenlegung

  • Der Slug-Algorithmus erhielt 2019 das US-Patent (US10373352B1), doch auf die Exklusivrechte bis 2038 wird mit Wirkung zum 17. März 2026 verzichtet
    • Durch Einreichung des Formulars SB/43 beim USPTO und Zahlung der Gebühr wurde die verbleibende Patentlaufzeit offiziell aufgegeben
  • Damit kann jeder den Slug-Algorithmus frei implementieren und verwenden
    • Sowohl kommerzielle als auch nichtkommerzielle Nutzung ist erlaubt, ohne Sorge vor Verletzungen von Schutzrechten
  • Als Referenz für reale Implementierungen wurde das GitHub-Repository (https://github.com/EricLengyel/Slug) veröffentlicht
    • Es steht unter der MIT-Lizenz und enthält gegenüber dem JCGT-Paper verbesserte Pixel-Shader sowie einen Vertex-Shader mit Dynamic Dilation

Bedeutung von Slug

  • Slug hat sich als prägende Implementierung für GPU-basiertes Vektor-Font-Rendering etabliert
  • Über zehn Jahre hinweg wurden Leistung, Einfachheit und Qualität zugleich verbessert
  • Durch die Patentfreigabe ist der Weg für freie Übernahme und Weiterentwicklung in der gesamten Industrie offen

2 Kommentare

 
dalinaum 2026-03-22

Das sind wirklich großartige Neuigkeiten.

 
GN⁺ 2026-03-18
Hacker-News-Kommentare
  • Wirklich großartige Neuigkeiten. Früher war ich von der Eleganz dieses Algorithmus beeindruckt, aber wegen des Patents war es schade, dass man ihn in FOSS nicht verwenden konnte
    Dass er ihn nun nach einer gewissen Zeit der Public Domain gewidmet hat, ist sehr dankenswert. Falls ich irgendwann einmal einen Terminal-Emulator baue, würde ich diesen Algorithmus allein wegen seiner ästhetischen Code-Qualitäten gern ausprobieren
    • Der Autor sagt selbst, dass er 2019 zwar ein Patent auf den Slug-Algorithmus erhalten hat, es ihm aber zu lang vorkam, die Exklusivrechte bis 2038 zu behalten. Deshalb widmet er das Slug-Patent ab heute dauerhaft der Public Domain
    • Wenn Softwarepatente nur etwa 8 Jahre gültig wären, könnte ich sie durchaus befürworten
  • Sein neuestes Projekt ist RadicalPie
    Ein professioneller Formeleditor für Windows 10/11, der Slug als Rendering-Engine verwendet und 60 Dollar kostet. Vermutlich nutzt er das auch beim Schreiben des FGED-Buchs
    • Vor 25 Jahren hätte ich mich darüber sehr gefreut. Aber heutzutage kenne ich kaum noch jemanden, der solche Arbeit unter Windows macht
      Trotzdem ist es ein großartiger Ersatz für MathType, und die OLE-Integration wirkt beeindruckend, weil es sich gut in Word einfügen lässt
  • Ich habe Slug in einem früheren Job verwendet, und es war wirklich eine kunstvoll entworfene Bibliothek
    Für mich ein Höhepunkt des Software Engineering. Danke an den Autor, dass er es der Public Domain gespendet hat
  • Danke an Eric. Mich würde interessieren, wie sich sein Ansatz von Projekten wie Vello unterscheidet
  • Ich freue mich sehr, Geschichten darüber zu sehen, dass Menschen, die komplexe und nützliche Software gebaut haben, angemessen entlohnt werden
    Davon sollte es mehr geben
  • Erstaunliche Neuigkeiten. Danke an Eric
    Übrigens läuft auch Microsofts Loop-Blinn-Patent (für kubische Kurven) bald aus, was die Landschaft des Text-Renderings stark verändern könnte
  • Wirklich klasse. Ich hatte mich früher gefragt, ob Ruffle GPU-beschleunigte Vektorgrafik auf ähnliche Weise umsetzen könnte
    Damals wurde ein Ansatz verwendet, bei dem Kurven durch Dreiecke angenähert wurden; ich weiß nicht, ob das immer noch so ist
  • Hervorragende Neuigkeiten. Wenn man die Geschwindigkeit heutiger Hardware bedenkt, gibt es keinen Grund, warum man Glyphen nicht direkt aus Bezier-Kurven rendern sollte
    Die früheren Texture-Atlas- oder SDF-Ansätze wirkten immer wie Behelfslösungen, und bei anderer Skalierung ließ die Qualität nach
    Jetzt, da Slug offen ist, hoffe ich, dass wichtige Bibliotheken und Game Engines stärker auf höherwertige Rendering-Verfahren setzen
  • Ich habe früher mit der Game Engine C4 des Autors gearbeitet, und das ist schon 20 Jahre her
    Mir war gar nicht klar, dass er in diesem Bereich immer noch so aktiv ist
  • Ich frage mich, ob es das schon auf ShaderToy gibt 😄