Sluggish
1.0.0
これは、CPUとGPUの両方でEric LengyelのSlugアルゴリズムを使用してグリフをレンダリングする方法を示すおもちゃ/実験プロジェクトです。
コードの前に、少なくとも参照セクションにリンクされたスライドを読むことをお勧めします。
| サブプロジェクト | 目的 |
|---|---|
| フォントジェネレーター | .ttf trueTypeフォントファイルを読み取り、.sluggishファイルを出力します |
| ソフトウェアレンダラー | .sluggishファイルを読み取り、指定されたコードポイントごとに.tgaイメージを出力します |
| ハードウェアレンダラー | .Sluggishファイルを読み取り、OpenGLを使用して最大6つの指定グリフをレンダリングします |
| 特徴 | サポート |
|---|---|
| 曲線テクスチャ(FP32) | はい |
| バンドテクスチャ(U16) | はい |
| グリフをバンドにカットする(パフォーマンス) | はい |
| ソート曲線(パフォーマンス) | はい |
| あらゆるものの高品質の実装 | いいえ |
| 高性能 | いいえ |
| 16ビットフローティングポイントエンコーディング | いいえ |
| データの複製と圧縮 | いいえ |
| テキストレイアウト | いいえ |
| 色付きの形 | いいえ |
| 適応スーパーサンプリング | いいえ |
| ガンマ補正 | いいえ |
| 境界ポリゴン | いいえ |
目標は、ひどいパフォーマンスを持っていない間、物事を非常にシンプルに保つことでした。たとえば、グリフをバンドにカットすることは、シンプルでパフォーマンスを大幅に向上させるため実装されています。
デフォルトでは、デバッガーのターゲット実行可能ファイルは、出力ディレクトリではなく、 SLUGGISH_APP_DIR環境変数によって指定されたディレクトリパスです。
.exeおよび.pdbファイルは、ビルドのたびにそのディレクトリにコピーされます。
このプロセスを簡単にするために、シンプルなバッチスクリプトを介してVisual Studioを起動できます。
:: This file would sit next to the Sluggish directory
cd Sluggishmakefilesvs2013
set SLUGGISH_APP_DIR=C:important_stuffsluggish
Sluggish.sln
Slugアルゴリズムの仕組みの詳細については、以下を参照してください。
Eric LengyelによるGlyphの概要から直接レンダリングするGPU中心のフォント
Journal of Computer Graphics Techniques(JCGT)、Vol。 6、いいえ。 2、31-47、2017
論文:http://jcgt.org/published/0006/02/02
スライド:http://terathon.com/i3d2018_lengyel.pdf
| プロジェクト/ファイル | ライセンス | ライセンスファイル |
|---|---|---|
| このプロジェクト | Unlicense(パブリックドメイン) | Unlicense.md |
| SDL 2 | Zlib | libs/sdl2/copying.txt |
| glew | 変更されたBSDライセンス MESA 3Dライセンス(MIT) クロノスライセンス(MIT) | libs/glew/license.txt |
| プレーム5 | プレーム5 | makefiles/premake_license.txt |
| STB_TRUETYPE.H | Pick-a-license: Unlicense(パブリックドメイン) mit | code/generator/stb_truetype.h |
| stb_image_write.h | Pick-a-license: Unlicense(パブリックドメイン) mit | code/renderer_sw/stb_image_write.h |
執筆時点でスラグアルゴリズムに特許はありませんが、エリックレンガイエルは1つの申請を行っており、プロセスはまだ進行中です...