9 points par GN⁺ 2026-03-18 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • L’algorithme Slug, qui effectue un rendu de polices basé sur des courbes de Bézier sur GPU, rend directement les données vectorielles sans texture, et est utilisé dans de nombreux secteurs comme le jeu vidéo, la CAO, le montage vidéo et les équipements médicaux
  • Son exclusivité a été abandonnée à compter du 17/03/2026, ce qui signifie que le brevet a été entièrement versé dans le domaine public, et que tout le monde peut désormais l’utiliser librement
  • Les versions récentes ont amélioré les performances et l’efficacité du code grâce notamment à l’optimisation band split et à la suppression du supersampling, ainsi qu’à la simplification du mode de rendu des emoji
  • Le plus grand changement est la fonction de dilatation dynamique (dynamic dilation), qui calcule automatiquement l’extension optimale des bordures selon la taille du glyphe et le point de vue
  • Grâce au code de shaders de référence sur GitHub, publié sous licence MIT, chacun peut librement l’implémenter

Développement et diffusion de l’algorithme Slug

  • L’algorithme Slug a été développé à l’automne 2016 et présenté en 2017 dans un article du JCGT
    • Par la suite, Slug Library 1.0 a été commercialisée et concédée sous licence à de grandes entreprises comme Activision, Blizzard, Ubisoft et Adobe
    • Il est utilisé dans des domaines variés, notamment le jeu vidéo, la visualisation scientifique, la CAO, le montage vidéo, les équipements médicaux et les planétariums
  • À l’origine, il a été conçu pour le rendu de texte haute qualité du C4 Engine, puis a aussi été appliqué à l’éditeur d’équations Radical Pie
    • Il permet de représenter en haute résolution des éléments graphiques vectoriels tels que des formules, parenthèses et flèches

Évolution de la méthode de rendu

  • Slug rend directement sur GPU les données de courbes de Bézier sans texture précalculée
    • Il reste robuste face aux erreurs en virgule flottante tout en conservant des courbes lisses et des angles nets
  • L’optimisation band split apportait des gains de vitesse sur les grands glyphes, mais a été supprimée en raison de baisses de performances sur les petites polices et d’une complexité accrue
    • Cela a permis de simplifier le pixel shader et de réduire de moitié la taille de la texture des données de bande
  • Le supersampling adaptatif était utilisé pour atténuer l’aliasing sur les petites polices, mais son effet était limité et il a été remplacé par la nouvelle technique de dilatation
  • Le rendu d’emoji multicolores a été modifié pour traiter chaque couche comme un glyphe indépendant, ce qui a amélioré les performances et simplifié le code

Dilatation dynamique (Dynamic Dilation)

  • Auparavant, l’extension des bordures d’un glyphe devait être définie manuellement avec une distance fixe
    • Cela entraînait des pertes de bordure sur les petites polices et un gaspillage d’espace inutile sur les grandes
  • La dilatation dynamique est calculée automatiquement dans le vertex shader, ce qui détermine la distance d’extension optimale à chaque rendu de glyphe
    • Elle étend les bordures par demi-pixel à l’aide de la matrice MVP et de la taille du viewport
    • Selon le changement de point de vue, une distance de dilatation différente peut être appliquée à chaque vertex
  • Mathématiquement, elle est dérivée comme une équation du second degré permettant de trouver la distance d satisfaisant la condition d’extension d’un demi-pixel dans l’espace du viewport
    • La solution finale prend la forme (d = \frac{s^3t \pm s^2\sqrt{u^2 + v^2}}{u^2 + v^2 - s^2t^2})
    • Le signe positif est choisi pour déplacer le point vers l’extérieur
  • Afin de conserver la taille du glyphe, une correction des coordonnées dans l’espace em est également effectuée, avec stockage de la matrice jacobienne inverse pour chaque vertex

Abandon du brevet et annonce de publication

  • L’algorithme Slug a obtenu en 2019 le brevet américain (US10373352B1), mais a renoncé à son exclusivité à compter du 17 mars 2026, alors qu’elle devait courir jusqu’en 2038
    • La durée restante du brevet a été officiellement abandonnée auprès de l’USPTO par dépôt du formulaire SB/43 et paiement des frais
  • En conséquence, tout le monde peut désormais implémenter et utiliser librement l’algorithme Slug
    • Les usages commerciaux comme non commerciaux sont autorisés, sans risque de violation de propriété intellectuelle
  • Un dépôt GitHub a été publié comme référence d’implémentation : https://github.com/EricLengyel/Slug
    • Il est fourni sous licence MIT et comprend un pixel shader amélioré par rapport à l’article du JCGT, ainsi qu’un vertex shader intégrant la dilatation dynamique

Importance de Slug

  • Slug s’est imposé comme une implémentation emblématique du rendu de polices vectorielles sur GPU
  • Dix ans d’évolution ont permis d’améliorer à la fois les performances, la simplicité et la qualité
  • La levée du brevet ouvre la voie à une adoption et une extension libres à l’échelle de l’industrie

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.