概要
- 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レンダリング技術の発展 に大きく貢献