スラッグの10年
45日前原文(terathon.com)
概要
- 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レンダリング技術の発展に大きく貢献