Powrót do strony głównej

GPU-renderowanie czcionek Slug: dynamiczna dylatacja i licencja MIT

Algorytm Slug do GPU-renderowania czcionek z krzywych Beziera otrzymał kluczowe ulepszenie — dynamiczną dylatację, automatycznie optymalizującą rozszerzenie poligonów. Po ewolucji kodu i usunięciu przestarzałych optymalizacji patent na metodę został otwarty pod licencją MIT, umożliwiając swobodne użycie w projektach.

Slug: GPU-renderowanie czcionek z dynamiczną dylatacją — teraz pod MIT
Advertisement 728x90

Renderowanie czcionek na GPU z użyciem algorytmu Slug: dynamiczna dylatacja i otwarcie patentu

Algorytm Slug, opracowany w 2016 roku, umożliwia renderowanie czcionek i grafiki wektorowej na GPU bezpośrednio z krzywych Beziera, bez użycia map tekstur. Przez dziesięć lat metoda ewoluowała, uzyskując kluczowe ulepszenie – dynamiczną dylatację, a obecnie jego patent jest otwarty do swobodnego wykorzystania na licencji MIT.

Ewolucja algorytmu Slug

Slug rozwiązuje złożone zadanie niezawodnego, szybkiego i wysokiej jakości renderowania tekstu w czasie rzeczywistym. Niezawodność wyklucza artefakty takie jak pominięte piksele, szybkość zapewnia renderowanie bez spadku FPS na konsolach z 2016 roku, a wysoka jakość – płynne krzywe i wyraźne kąty przy dowolnej skali i perspektywie.

Od publikacji w JCGT w 2017 roku kod przeszedł kilka zmian:

Google AdInline article slot
  • Usunięto optymalizację podziału pasów, która przyspieszała duże glify, ale wprowadzała dywergencję w shaderach i podwajała ilość danych.
  • Wykluczono adaptacyjne supersamplowanie, ponieważ jego wpływ był zauważalny tylko dla ledwo czytelnego tekstu, a aliasing małych rozmiarów jest skutecznie łagodzony przez dylatację.
  • Przerobiono podejście do renderowania wielokolorowych emoji: zamiast pętli w shaderze pikselowym teraz stosuje się zestaw niezależnych glifów z własnymi wielokątami ograniczającymi, co upraszcza kod i zwiększa wydajność.

Te poprawki uprościły shader pikselowy, zmniejszyły ilość danych i poprawiły ogólną efektywność renderowania.

Dynamiczna dylatacja: automatyczna optymalizacja

Przed wprowadzeniem dynamicznej dylatacji użytkownik ręcznie ustawiał stałą odległość dla rozszerzania wielokątów ograniczających glify. To prowadziło do dwóch problemów: artefaktów aliasingu przy małych rozmiarach i nadmiernego zużycia zasobów GPU przy dużych. Dynamiczna dylatacja rozwiązuje oba, automatycznie obliczając optymalne przesunięcie w shaderze wierzchołkowym na podstawie macierzy model-widok-projekcja (MVP) i rozmiarów widoku.

Obliczenie gwarantuje, że centra częściowo pokrytych pikseli trafiają do wnętrza wielokąta, przechwytywane przez rasteryzator, bez zbędnego wypełniania. Formuła jest wyprowadzona z warunku rozszerzenia o połowę piksela w widoku i sprowadza się do równania kwadratowego:

Google AdInline article slot
d = (s³t + s²√(u² + v²)) / (u² + v² - s²t²)

gdzie s = m₃₀p_x + m₃₁p_y + m₃₃, t = m₃₀n̂_x + m₃₁n̂_y, a u i v – pochodne od parametrów MVP i normalnej. Znak «+» daje przesunięcie na zewnątrz wzdłuż jednostkowej normalnej.

Aby zachować oryginalny rozmiar glifu, współrzędne próbkowania na płaszczyźnie kegela są korygowane za pomocą odwrotnej macierzy Jacobiego 2×2, która przekształca przesunięcie w przestrzeni obiektu.

Otwarcie patentu i licencjonowanie

W 2019 roku autor otrzymał patent na algorytm Slug, ale teraz otwiera go do swobodnego wykorzystania na licencji MIT. To pozwala deweloperom integrować metodę w swoich projektach bez ograniczeń prawnych. Biblioteka Slug jest już licencjonowana przez firmy takie jak Activision, Adobe i Ubisoft do gier wideo, wizualizacji naukowej, CAD i innych dziedzin, demonstrując swoją praktyczną wartość.

Google AdInline article slot

Co jest ważne

  • Slug renderuje czcionki i grafikę wektorową na GPU bezpośrednio z krzywych Beziera, zapewniając niezawodność, szybkość i wysoką jakość.
  • Dynamiczna dylatacja automatycznie optymalizuje rozszerzanie wielokątów ograniczających, eliminując artefakty i nadmierne zużycie zasobów.
  • Algorytm ewoluował: usunięto optymalizację podziału pasów i supersamplowanie, uproszczono renderowanie emoji.
  • Patent na Slug jest teraz otwarty na licencji MIT, umożliwiając swobodne użycie w projektach komercyjnych i niekomercyjnych.
  • Metoda jest stosowana w branży gier wideo, wizualizacji naukowej, CAD i innych obszarach, potwierdzając swoją efektywność.

— Editorial Team

Advertisement 728x90

Czytaj dalej