TAA、SMAA、FXAA、MSAA、または SSAA ?あなたにピッタリなのはどれでしょうか?アンチエイリアシング技術には、安価なシェーダー フィルター (FXAA) から複雑な時間蓄積法 (TAA) まで、さまざまな形状とサイズがあります。最も一般的なアンチエイリアシング技術を詳しく見てみましょう。
アンチエイリアシング: MSAA vs SMAA vs TAA
ここまでで、アンチエイリアシングが何をするのかはすでにご存知でしょう。薄いオブジェクトのエッジと交差部に沿ったアーティファクトとジャギーをクリーンアップします。初期の頃は、マルチサンプリングとスーパーサンプリングが最も一般的な方法でした。それらは、パフォーマンスを犠牲にして(大まかに言えば)最高の画質を生成します。

スーパーサンプリングは 、画像全体をより高い解像度でレンダリングし、ターゲット解像度に合わせて拡大縮小します。基本的には、色と深度のサンプルをピクセルごとに 4 回サンプリングしています。SSAAの最も一般的なバリエーションは2倍と4倍です。最終的なピクセルの色は、4 つのサンプルの平均です。画質が大幅に向上し、エイリアシングがほぼ完全に除去されます。ただし、これは高価であり、リアルタイムレンダリングには適していません。

マルチサンプリング(MSAA) はSSAAと似ていますが、深度のみをサンプリングする点が異なります。 主な違いは、パイプラインの後半にあります。SSAA はピクセル シェーダーを各ピクセルに 2x または 4x 適用しますが、MSAA は 1 回だけ実行します。カバレッジテストと深度テストを使用して三角形のエッジの周りを「マルチサンプル」し、エッジを滑らかにします。

MSAAは、最近のゲームで非常に人気のあるディファードライティングでは使用できません。遅延ライティングは、頂点からフラグメントシェーダーへのライティング計算を遅らせます。これにより、ポリゴンベースではなくピクセルに適用することでパフォーマンスが節約されます。


ポストプロセス アンチエイリアシング: FXAA と SMAA
FXAA (Fast Approximate Anti-Aliasing)は、隣接するピクセルをブレンドすることでジャギーを減らし、画像をより滑らかにすると同時に、よりぼやけさせます。輝度またはコントラストベースのエッジ検出を使用し、輝度の差が特定のしきい値を超えるとAAが適用されます。これはあまり正確ではなく、過度のぼやけにつながる可能性があります。


SMAA (Subpixel Morphological Anti-Aliasing)はより正確で、関連するぼやけなしにエイリアシングを除去します。ただし、MSAAと同じ欠点があります:透明なテクスチャでは機能しません。


モルフォロジカル アンチエイリアシング (MLAA) は、最初のシェーダーベースのアンチエイリアシング手法の 1 つでした。不連続点を検索します (a の垂直な緑色の線を参照)。

- それらを事前定義されたパターン/形状(のセット)に従って分類します。
- その後、それらは仮想的に再ベクトル化され(青い線)、関連するピクセルのカバレッジ領域(可視の三角形/オブジェクト)を計算できます。
- これらの領域は、隣接する領域とブレンドするために使用されるため、領域が滑らかになります。
- 影付きのピクセル(ここではa)は、周囲のピクセルに応じて色を取得します。
- エッジ検出は、深度または輝度情報、パターン検出、およびカバレッジエリアの計算(Cで与えられる)を使用して実行されます。
- パターン検出は、エッジの両端を検索し、交差するエッジを分析します。

MLAA は、細い線が数本ある 複雑なジオメトリ ではうまく機能しません。オブジェクトのシルエットをアンチエイリアスするように設計されており、シャープな幾何学的特徴により、ぼやけた結果が生成されます。

SMAAは FXAAの欠点に対処します (ぼやけが多すぎる)とMLAA(カバレッジが限られている)であり、ほとんどのシナリオでうまく機能します。これは、色固有の輝度に基づくエッジ検出を活用することで機能します。

SMAA は、複数の交差線(シャープなジオメトリの場合は1ピクセル、斜めパターンの場合は複数ピクセル)を使用してエッジ検出を強化し、ぼやけを減らすだけでなく、カバレッジも向上させます。細い線やFXAA/MLAAでぼやけやすいオブジェクトでは、ピクセル長の交差エッジによって得られるカバレッジ領域をスケーリングする丸め係数が使用されます。

SMAA は、多くの場合、隣接するフレームからの時間データを使用してアンチエイリアシングの安定性と品質を向上させる テンポラル アンチエイリアシング (SMAA T1x/T2x) とペアになります。ピクセルごとに複数のサンプルを使用して品質を向上させます。通常、次のモードが使用されます。
- SMAA 1x: 正確な距離検索、ローカルコントラスト適応、シャープな幾何学的特徴、斜めパターン検出が含まれています。
- SMAA S2x: SMAA 1xのすべての機能に加えて、空間マルチサンプリングが含まれています。
- SMAA T2x: SMAA 1xのすべての機能に加えて、テンポラルスーパーサンプリングが含まれています。
- SMAA 4x: SMAA 1xのすべての機能に加えて、空間的および時間的なマルチ/スーパーサンプリングが含まれています
テンポラルアンチエイリアシング は最新かつ最も人気があります。それは、動きで最も明白な時間的なエイリアシングや揺らぎを取り除きます。テンポラルエイリアシングは、フレーム レートがシーン内のオブジェクトのトランジション速度に比べて低すぎる場合に発生し、オブジェクトの境界が動いて表示されます。TAAは、隣接するフレームを比較してブレンドし、動きのある画像をきれいに作成します。

TAAは近似値であり、2つの画像を使用して最終的な画像を推定し、多くの場合、テクスチャの詳細をぼかします。画像は特定の解像度で異なるフレームにまたがってレンダリングされ、画像が追加されるたびに、ジッター オフセット (数ピクセルのカメラ シフト) が適用されます。これにより、1つのフレームから複数の画像が生成され、スーパーサンプリングやアップスケーリングに使用されます。

テンポラル アップスケーリング は、低解像度の画像をアップスケールするのと同様の方法を使用します。主な違いは、TAA とは異なり、交互のピクセルは連続したフレームでレンダリングされ、補間と隣接するピクセルからのサンプルを使用してギャップを埋めることです。


NVIDIAのDLAA は、テンポラルアンチエイリアシングソリューションです。DLSSのように機能しますが、低解像度の入力ではなくネイティブ解像度の画像を使用します。これらの画像とモーションベクトルはニューラルネットワークに供給され、ネイティブよりも優れた品質を生成します。次に、結果のフレームは時間フィードバックとしてネットワークに供給され、将来のフレームを蓄積してブレンドします。