9 puan yazan GN⁺ 2026-03-18 | 2 yorum | WhatsApp'ta paylaş
  • GPU üzerinde Bézier eğrisi tabanlı font render etme işlemi yapan Slug algoritması, doku kullanmadan vektör verisini doğrudan render eder ve oyun, CAD, video düzenleme, tıbbi cihazlar gibi çeşitli sektörlerde kullanılır
  • Münhasır haklardan 17/03/2026 itibarıyla vazgeçilerek patent tamamen kamu malı haline getirildi ve herkesin özgürce kullanabilmesi sağlandı
  • Son sürümlerde band split optimizasyonunun ve supersampling'in kaldırılması, emoji render etme yönteminin sadeleştirilmesi gibi değişikliklerle performans ve kod verimliliği iyileştirildi
  • En büyük değişiklik, glif boyutuna ve bakış açısına göre en uygun sınır genişletmesini otomatik hesaplayan dinamik genişleme (dynamic dilation) özelliği oldu
  • GitHub referans shader kodu MIT lisansıyla yayımlandı; böylece herkes bunu özgürce uygulayabilir

Slug algoritmasının geliştirilmesi ve yaygınlaşması

  • Slug algoritması 2016 sonbaharında geliştirildi ve 2017'de JCGT makalesi olarak yayımlandı
    • Sonrasında Slug Library 1.0 ticarileştirildi ve Activision, Blizzard, Ubisoft, Adobe gibi büyük şirketlere lisanslandı
    • Oyunlar, bilimsel görselleştirme, CAD, video düzenleme, tıbbi cihazlar, planetaryumlar gibi farklı alanlarda kullanıldı
  • Başlangıçta C4 Engine için yüksek kaliteli metin render etme amacıyla geliştirildi, ardından Radical Pie denklem düzenleyicisine de uygulandı
    • Formüller, parantezler, oklar gibi vektör grafik öğelerini yüksek çözünürlükte gösterebildi

Render etme yönteminin evrimi

  • Slug, önceden hesaplanmış dokular olmadan Bézier eğrisi verisini GPU üzerinde doğrudan render eder
    • Kayan nokta hatalarına karşı dayanıklıdır ve pürüzsüz eğriler ile keskin köşeleri korur
  • band split optimizasyonu büyük gliflerde hız kazancı sağladı, ancak küçük fontlarda performans düşüşü ve artan karmaşıklık nedeniyle kaldırıldı
    • Bunun sonucunda piksel shader sadeleşti ve band veri dokusunun boyutu yarıya indi
  • adaptive supersampling, küçük fontlarda aliasing'i azaltmak için kullanılıyordu; ancak etkisi sınırlı kaldı ve yeni genişleme tekniğiyle değiştirildiği için kaldırıldı
  • Çok renkli emoji render etme, her katmanı bağımsız bir glif olarak işleyen yapıya dönüştürüldü; böylece performans arttı ve kod sadeleşti

Dinamik genişleme (Dynamic Dilation)

  • Önceden glif sınırı genişletmesinin sabit bir mesafe olarak elle belirtilmesi gerekiyordu
    • Küçük fontlarda sınır kaybı, büyük fontlarda ise gereksiz alan israfı oluşuyordu
  • Dinamik genişleme vertex shader içinde otomatik hesaplanır ve her glif render edilirken en uygun genişletme mesafesini belirler
    • MVP matrisi ve viewport boyutu kullanılarak yarım piksel biriminde sınır genişletmesi yapılır
    • Bakış açısı değişimine göre her vertex için farklı genişleme mesafeleri uygulanabilir
  • Matematiksel olarak bu, viewport uzayında yarım piksel genişleme koşulunu sağlayan d mesafesini bulan ikinci dereceden bir denklemden türetilir
    • Nihai çözüm (d = \frac{s^3t \pm s^2\sqrt{u^2 + v^2}}{u^2 + v^2 - s^2t^2}) biçimindedir
    • Dışa doğru hareket için pozitif işaret seçilir
  • Glif boyutunu korumak için em-space koordinat düzeltmesi de yapılır ve her vertex'te ters Jacobian matrisi saklanır

Patentten feragat ve kamuya açılma duyurusu

  • Slug algoritması 2019'da ABD patenti (US10373352B1) aldı, ancak 2038'e kadar sürecek münhasır haklardan 17 Mart 2026 itibarıyla vazgeçildi
    • USPTO'ya SB/43 formu sunulup ücret ödenerek patentin kalan süresinden resmen feragat edildi
  • Bunun sonucunda herkes Slug algoritmasını özgürce uygulayabilir ve kullanabilir
    • Hem ticari hem ticari olmayan kullanım serbesttir ve fikri mülkiyet ihlali endişesi yoktur
  • Gerçek uygulama için referans olarak GitHub deposu (https://github.com/EricLengyel/Slug) yayımlandı
    • MIT lisansı ile sunuluyor ve JCGT makalesine kıyasla geliştirilmiş piksel shader ile dinamik genişleme içeren vertex shader barındırıyor

Slug'un önemi

  • Slug, GPU tabanlı vektör font render etmenin önde gelen uygulamalarından biri haline geldi
  • 10 yıllık gelişim sürecinde performans, sadelik ve kalite birlikte iyileştirildi
  • Patentin kaldırılmasıyla birlikte sektör genelinde özgürce benimsenme ve genişleme olasılığı sağlandı

2 yorum

 
dalinaum 2026-03-22

Gerçekten harika bir haber.

 
GN⁺ 2026-03-18
Hacker News yorumları
  • Gerçekten harika bir haber. Eskiden bu algoritmanın zarafetine hayran kalmıştım, ama patent yüzünden FOSS içinde kullanılamaması üzücüydü
    Şimdi belli bir sürenin ardından onu kamu malına adaması gerçekten takdire değer. Bir gün bir terminal emülatörü yaparsam, kodun estetik çekiciliği nedeniyle bu algoritmayı denemek isterim
    • Yazarın kendi açıklamasına göre, 2019'da Slug algoritması için patent aldı ama 2038'e kadar tekel hakkını korumanın fazla uzun olduğunu düşündü. Bu yüzden bugünden itibaren Slug patentini kalıcı olarak kamu malına adıyor
    • Yazılım patentleri yalnızca yaklaşık 8 yıl geçerli olsa buna destek verilebileceğini düşünüyorum
  • En son projesi RadicalPie
    Windows 10/11 için profesyonel bir denklem düzenleyici; Slug'u render motoru olarak kullanıyor ve fiyatı 60 dolar. Muhtemelen FGED kitabını yazarken de bunu kullanıyordur
    • 25 yıl önce olsaydı buna gerçekten sevinirdim. Ama bugünlerde bu tür işleri Windows'ta yapan pek insan görmüyorum
      Yine de MathType için harika bir alternatif ve OLE entegrasyonu sayesinde Word'e iyi gömülmesi etkileyici
  • Önceki iş yerimde Slug kullanmıştım; gerçekten sanat eseri gibi tasarlanmış bir kütüphaneydi
    Yazılım mühendisliğinin zirvesi olduğunu düşünüyorum. Bunu kamu malı olarak bağışlayan yazara teşekkürler
  • Eric'e teşekkürler. Onun yaklaşımının Vello gibi projelerle karşılaştırıldığında nasıl farklılaştığını merak ediyorum
  • Karmaşık ama faydalı bir yazılım yapan birinin hak ettiği karşılığı aldığını görmek çok güzel
    Keşke bunun gibi daha fazla örnek olsa
  • İnanılmaz bir haber. Eric'e teşekkürler
    Bu arada Microsoft'un Loop-Blinn patenti (kübik eğriler için) de yakında sona erecek, bu da metin render etme dünyasını büyük ölçüde değiştirebilir
  • Gerçekten çok hoş. Daha önce Ruffle'ın GPU hızlandırmalı vektör grafikleri benzer şekilde uygulayıp uygulayamayacağını merak etmiştim
    O zamanlar eğrileri üçgenlerle yaklaşık gösterme yöntemi kullanılıyordu, hâlâ öyle mi bilmiyorum
  • Harika haber. Günümüz donanım hızlarını düşününce, glifleri doğrudan Bezier eğrilerinden render etmemek için bir neden yok
    Geçmişteki doku atlası ya da SDF yöntemleri geçici çözümler gibi geliyordu ve ölçek değiştiğinde kalite düşüyordu
    Slug'un açılmasıyla birlikte büyük kütüphanelerin ya da oyun motorlarının daha yüksek kaliteli render yöntemlerini benimsemesini umuyorum
  • Eskiden yazarın oyun motoru C4 ile çalışmıştım; üzerinden şimdiden 20 yıl geçmiş
    Onun hâlâ bu alanda aktif olduğunu bilmiyordum
  • Acaba ShaderToy'a yüklenmiş midir 😄