ハクソク

世界を動かす技術を、日本語で。

スラッグの10年

概要

  • Slugアルゴリズムは、Bézier曲線から直接GPUでフォントをレンダリングする技術
  • 2016年に開発され、ゲーム業界や各種産業で広く採用
  • 動的ダイレーションなど、2017年以降も進化
  • 2026年3月17日、特許をパブリックドメイン化し誰でも自由に利用可能に
  • 最新のレンダリング技術とその変更点を解説

Slugアルゴリズムの10年と進化

  • Slugアルゴリズム:Bézier曲線から直接GPUでテキストやベクターグラフィックスをレンダリング
  • 2016年秋に開発、2017年にJCGTで技術論文発表
  • C4 Engineの高品質テキスト表示のために開発
  • ゲーム業界(Activision, Blizzard, id Software, 2K Games, Ubisoft, Warner Brothers, Insomniac, Zenimax, Adobe等)や、科学可視化・CAD・映像編集・医療機器・プラネタリウムなど多分野で採用
  • Radical Pie equation editorにも採用、数式・記号・ハイライト等の高品質表示を実現
  • GUIやダイアログ全体のフォント・UIレンダリングにも利用

レンダリング手法の進化

  • テクスチャマップ非依存で、Bézier曲線データから直接描画
  • ロバスト性:浮動小数点誤差によるアーティファクト(欠落ピクセル・スパークル・ストリーク等)を排除
  • 高速性:2016年当時のゲーム機でもフレームレートに影響しない設計
  • 高品質:アンチエイリアスされた滑らかなカーブとシャープな角、どんな拡大・視点でも美しい表示

変更点

  • バンド分割最適化の削除
    • 大型グリフでの速度向上のための最適化だったが、小型テキストでの性能低下や複雑化を招くため廃止
    • バンドデータのテクスチャが2コンポーネントに簡素化
  • スーパーサンプリングの廃止
    • 小さな文字サイズでのエイリアシング低減のため導入されていたが、効果が限定的
    • 動的ダイレーションの導入で役割を終え、シェーダーも簡素化
  • マルチカラー絵文字レンダリング手法の変更
    • レイヤーごとのバウンディングポリゴン使用で高速化・シェーダー簡素化

動的ダイレーション(Dynamic Dilation)

  • 動的ダイレーション:グリフごとに最適なバウンディングポリゴン拡張距離を自動計算
  • 従来手法の課題
    • 拡張距離が小さいと小型グリフでエイリアシング発生
    • 拡張距離が大きいと大型グリフで無駄な空間・GPUリソース消費
  • Vertex Shaderで毎回自動計算、視点・拡大率・各頂点ごとに最適化
  • MVP行列・ビューポート寸法を利用し、バウンディングを半ピクセルだけ拡張
  • 導出式:頂点座標・法線・MVP行列・ビューポート幅高さから二次方程式を解くことで最適距離dを算出
  • エムスペース補正:元のグリフサイズ維持のため逆ヤコビ行列で座標補正

特許のパブリックドメイン化

  • 2019年に特許取得(#10,373,352)
  • 2026年3月17日付でパブリックドメイン化を宣言
  • 今後は誰でもライセンス不要で自由に実装可能
  • 法的手続き(SB/43フォーム提出・費用支払い)済み
  • Slugアルゴリズムのオープンな普及促進

まとめ

  • SlugアルゴリズムはBézier曲線ベースの高品質・高速・堅牢なGPUテキストレンダリング手法
  • 継続的な改良により、よりシンプルかつ高性能な実装を実現
  • パブリックドメイン化により、誰でも自由に利用・拡張が可能
  • 今後のフォント・UIレンダリング技術の発展に大きく貢献

Hackerたちの意見

これは素晴らしいニュースですね!著者に心から感謝します。数年前にこのアルゴリズムを見つけたとき、すごくエレガントで魅力的だと思ったんですが、特許のせいでFOSSのプロジェクトには使えなくて残念でした。著者が適切な時間の後にパブリックドメインにすることを選んでくれたのは本当にありがたいですし、プロプライエタリの間に成功を収めたこともおめでとうございます!もし、いつか遊びでターミナルエミュレーターを書くことになったら、このアルゴリズムを使ってコードの美しさを楽しみたいですね。
ソフトウェア特許が8年有効って、実際賛成できるかも。
> 2019年にSlugアルゴリズムの特許を取得したんだけど、2038年まで独占的な権利があるんだ。でも、それは長すぎると思う。特許はもう十分役割を果たしたし、これ以上持っていても誰の得にもならないと思う。だから、今日からSlug特許を公共のものに永久に、かつ取り消し不可で寄付することにしたよ。
ShaderToyにはもう載ってるのかな? :D
複雑で役立つソフトウェアを作った人がその努力に報われるのを見るのが大好きです。こんな話がもっと増えるといいな!
グリフレンダラーをコンピュートシェーダーとして実装するのが役立ちそうな状況にいるんです。これを参考にできるのは素晴らしい機会…ワクワクする週末プロジェクトですね!
彼の最新プロジェクトは https://radicalpie.com/ です。Windows 10/11用のプロフェッショナルな数式エディタで、60ドルでSlugを使ってレンダリングしています。おそらく、彼は素晴らしいFGEDの本を書くために使っているのでしょう。
レンジェルは相変わらず素晴らしい人ですね、素晴らしい!
うわ、著者のゲームエンジン(C4)で20年くらい前に学校の時に働いたことがあるんだけど、まだその分野で活動してるなんて知らなかった!
すごい!ありがとう、エリック!
ありがとう!
> でも、それは長すぎると思う。特許はもう十分役割を果たしたし、これ以上持っていても誰の得にもならない。おいおい、特許に$10,000以上払ったんじゃなかったっけ?
弁護士なしで自分で全部やったから、結局いろんな手数料で$950くらい払ったよ。