リアルタイムアンチエイリアスアルゴリズム

画像






エイリアシングは、おそらく最も基本的で最も広く議論されている3Dレンダリングの成果物です。 ただし、ゲームコミュニティでは、多くの場合誤解されています。 この記事では、アンチエイリアシング、アンチエイリアシング、AAのトピックについてリアルタイムで、特にゲームについて詳しく説明すると同時に、すべてをかなりシンプルな言語で説明します。



この記事で説明したさまざまな種類のエイリアスとアンチエイリアスは、エイリアスのアーティファクトのバリエーションを示すために設計されたOpenGLプログラムのスクリーンショットを主に使用して説明します。



このプログラムはこちらからダウンロードできます



開始する前に、パフォーマンスに関するいくつかの言葉を話しましょう。それはリアルタイムグラフィックスの最も重要な側面であるため 、現在アンチエイリアスが実装されている理由方法に主に焦点を当てます。 パフォーマンスの特性に言及しますが、実際の使用のさまざまなケースでこの記事に示されているすべてのアンチエイリアシング方法の厳密な評価は、投稿には広すぎるトピックになります。



エイリアシングの性質



「自分を知っていて敵を知っていれば、100回の戦闘で危険にさらされることはありません」


孫子が私たちに教えているように、敵を打ち負かすためには、まず彼を理解する必要があります。 敵-あまりにもドラマティックであることを許してください-エイリアシングアーティファクトは平滑化方法です。 したがって、最初に理解する必要があるのは、エイリアシングがどこからどのように発生するかです。



エイリアシングという用語は、信号処理の分野で最初に導入されました。そこでは、サンプリング中に異なる連続信号が区別できなくなった(または互いに歪み始めた)ときに発生する効果を最初に説明しました。 3Dレンダリングでは、この用語は通常、より具体的な意味を持ちます。3Dシーンが固定ピクセルグリッドで構成される画面に表示するためにレンダリングされるときに発生する可能性のある多くの望ましくないアーティファクトを指します。



この場合、3Dシーンは連続信号であり、各ピクセルのカラー値を生成するプロセスはこの信号をサンプリングしてレンダリング出力を作成します。 アンチエイリアシング方法の目的は、視覚的に歪むアーチファクトを最小限に抑えながら、出力を可能な限り正確にピクセルの特定のグリッド上のシーンに似せることです。



図1は、黒い背景に1つの白い三角形で構成される単純なシーンでのエイリアシングを示しています。 標準レンダリングのラスタライズの段階で、各ピクセルの中心位置がサンプリングされます。三角形内にある場合、ピクセルは白く塗られ 、そうでない場合は黒に塗られます。 その結果、最も認識可能なエイリアシングアーティファクトの1つである、はっきりと見える「はしご」効果が得られます。



各ピクセルの完全な平滑化により、その面積のどれだけが三角形で覆われているかが決まります。 ピクセルが50%閉じている場合、白と黒の間の50%の色(中間の灰色)で塗りつぶす必要があります。 閉じられている量が少ない場合は、比例して暗くなり、閉じられている場合は比例して明るくなります。 完全に閉じたピクセルは白、完全に閉じていないピクセルは黒です。 このプロセスの結果を4番目の図に示します。 ただし、この計算をリアルタイムで実行することは一般的に不可能な作業です。



図1 最も単純なエイリアシング。









1-1。 中心がマークされた8x8グリッド









1-2。 三角形の8x8グリッド









1-3。 ラスタライズされた三角形の8x8グリッド









1-4。 完全に平滑化された出力を備えた8x8グリッド



GIFと同じ






エイリアシングの種類



すべてのエイリアシングアーティファクトは、限られた数のピクセルで構成される固定グリッドで連続信号の表現をサンプリングする問題に減らすことができますが、それらの発生の特定の理由は、それらを除去する効果的な平滑化方法を選択するために非常に重要です。 後で説明するように、一部のアンチエイリアス方法は、図1に示す単純な幾何学的エイリアスに理想的に対処できますが、他のレンダリングプロセスによって作成されたエイリアスを修正できません。



したがって、アンチエイリアシング技術の相対的な長所と短所を完全に議論するために、3Dレンダリング中に発生するエイリアシングアーティファクトを5つの個別のカテゴリにグループ化しました。 このグループ化は、成果物を生成するための正確な条件に依存します。 図2は、OpenGLを使用してレンダリングされた実際の例を使用して、これらのタイプのエイリアシングを示しています。









図2 :さまざまな種類のエイリアシング。 左から右、上から下:

•部分的に透明なテクスチャを備えた、画面に揃えられた唯一の長方形。

•「ミル」、画面に対して相対的に配置された可変の白と黒の三角形で構成されます。

•上から1ピクセルから下から0.4ピクセルまでの幅の異なる複数の黒い線と、正弦波を表す0.5の太さの白い線。

•6つの平らな塗りつぶされた長方形で構成されるキューブ

•高周波の草のテクスチャでテクスチャされた傾斜面。

•サイン関数に基づいて各ピクセルの色を定義するピクセルシェーダーを備えた、画面に合わせた長方形。



すでに説明したエイリアスの最も一般的なタイプは、 幾何学的エイリアスです。 このアーティファクトは、シーンプリミティブ(通常は三角形)がピクセルと部分的に交差するときに発生しますが、レンダリングプロセスではこの部分的なオーバーラップは考慮されません。



透明エイリアシングは、部分的に透明なテクスチャプリミティブで発生します。 図2の左上の画像は、部分的に透明なメッシュフェンステクスチャで塗りつぶされた単一の長方形を使用してレンダリングされます。 テクスチャ自体はピクセルの固定グリッドであるため、レンダリングイメージの各ピクセルが重畳されるポイントでサンプリングする必要があり、そのようなポイントごとに透明度が必要かどうかを判断する必要があります。 その結果、ソリッドジオメトリで既に遭遇した同じサンプリング問題が発生します。



サブピクセルエイリアシングは実際には幾何学的エイリアシングの一種であるという事実にもかかわらず、最近ではゲームのレンダリングで非常に人気が高まっている分析スムージングメソッドに固有のタスクをもたらすため、特別な考慮が必要です。 これらについては、記事で詳しく検討します。 サブピクセルのエイリアシングは、ラスタライズされた構造がフレームバッファーグリッド内の1ピクセル未満にスーパーインポーズされるときに発生します。 これは、尖塔、電話線、電線、または剣でさえ、カメラから十分離れている狭い物体の場合に最もよく起こります。



図3.サブピクセルのエイリアシングの









3-1。 中心がマークされた8x8グリッド









3-2。 2本の直線を持つ8x8グリッド









3-3。 ラスタライズされたラインセグメントを備えた8x8メッシュ、AAなし









3-4。 完全に滑らかな三角形の8x8メッシュ



GIFと同じ






図3は、2つのラインセグメントで構成される単純なシーンのサブピクセルエイリアシングを示しています。 一番上のピクセルの幅は1ピクセルであり、ラスタライズ中には、おなじみのアーティファクトである「エイリアス」の「ラダー」を示しますが、結果は入力データの形状と一致します。 下部セグメントの幅は半分のピクセルです。 ラスタライズ中、それと交差するピクセルの列の一部は、セグメント内の1つのピクセル中心を持ちません。 結果として、それはいくつかの無関係なフラグメントに分割されます。 同じことが、図2の直線と正弦波の曲線にも見られます。



テクスチャのエイリアシングは、テクスチャサンプリングが不十分な場合、特に異方性サンプリングの場合に発生します(これらは、表面が画面に対して非常に傾いている場合です)。 通常、このタイプのエイリアシングによって作成されたアーティファクトは、静止画のスクリーンショットでは明白ではありませんが、ちらつきやピクセルの不安定性として動いています。 図4では、これがアニメーションモードのサンプルプログラムのいくつかのフレームに示されています。



図4:フリッカーアーティファクトを含むアニメーション化された高周波テクスチャ






テクスチャのエイリアシングは、通常、ミップテクスチャリングと高品質テクスチャのフィルタリングを使用して防止できますが、特に異方性の高いテクスチャをサブサンプリングする一般的なビデオプロセッサの一部のドライバーバージョンでは、依然として問題が残る場合があります。 また、さまざまなアンチエイリアシング方法の影響も受けるため、デモプログラムにも含まれています。



そして最後に、 シェーダーのエイリアシングは、ピクセルごとに実行され、その色を決定するピクセルシェーダープログラムがエイリアシングされた結果を生成するときに発生します。 これは、通常のマップに基づいたスペキュラハイライトなどのコントラスト照明を作成するシェーダー、またはセルシェーディングやバックライトなどのコントラスト照明技術を使用するゲームでよく起こります。 デモプログラムでは、これはテクスチャ座標の正弦関数を計算し、すべての負の結果を黒で、すべての正の結果を白でシェーディングする単一のシェーダーで近似されます。



サンプリングベースの平滑化手法



エイリアシングのアーティファクトと、3Dシーンをレンダリングするときに発生する可能性のあるすべてのタイプのエイリアシングを理解することで、アンチエイリアシングのテクニックの研究を開始できます。 これらの手法は、レンダリング中に生成されるサンプルの数を増やすことによってエイリアシングを低減しようとする手法と、生成された画像の分析および後処理によってエイリアシングアーティファクトを軽減しようとする手法の2つのカテゴリーに分類できます。 サンプリングベースのアンチエイリアシング手法のカテゴリはより単純なので、まずはそれから始める必要があります。



8×8ピクセルグリッドの三角形を使用した最初の例をもう一度見てみましょう。 標準レンダリングの問題は、各ピクセルの中心のみをサンプリングすることです。これにより、完全に水平または垂直ではないエッジにいラダーが生成されます。 一方、各ピクセルのカバレッジをリアルタイムで計算することはできません。



直感的な解決策は、ピクセルあたりのサンプル数を単純に増やすことです。 この概念を図5に示します。









図5 :ピクセルごとに4つの順序付けられたサンプルでラスタライズされた三角形



ピクセルの中心は再び赤い点でマークされます。 ただし、実際には、各ピクセルで4つの別々の場所が実際にサンプリングされます(それらは青緑色のドットでマークされています)。 三角形がこれらのサンプルのいずれも覆わない場合、ピクセルは黒と見なされ、すべてのサンプルを覆う場合、白と見なされます。 ここで興味深い状況は、ピクセルの一部のみが閉じている場合です。4つのうちの1つが閉じている場合、ピクセルは25%が白で75%が黒になります。 4つのうちの2つの場合、比率は50/50であり、3つの閉じたサンプルでは、​​結果は75%白の明るい色合いになります。



このシンプルなアイデアは、すべてのサンプリングベースのアンチエイリアス技術の基盤です。 これに関連して、ピクセルあたりのサンプル数が無限になる傾向がある場合、このプロセスの結果は前述の「完全な」平滑化された例になる傾向があることも注目に値します。 明らかに、結果の品質は使用するサンプル数に大きく依存しますが、パフォーマンスにも大きく依存します。 通常、ゲームはピクセルあたり2つまたは4つのサンプルを使用し、8つ以上は強力なPCでのみ通常使用されます。



他にも重要なパラメーターがあり、その変更は、サンプリングに基づいたアンチエイリアシング方法の取得結果の品質に影響を与える可能性があります。 基本的に、これはサンプルの場所、サンプルタイプ、サンプルの グループ化です



サンプルの場所



ピクセル内のサンプルの位置は、特にリアルタイムグラフィックスで最も頻繁に使用される少数のサンプル(2または4)の場合、最終結果に大きく影響します。 前の例では、サンプルは、レンダリングされたイメージの中心が元の4倍(16×16ピクセル)であるかのように配置されます。 これは、より大きな画像をレンダリングするだけで直感的で簡単に実現できます。 この方法は、順序グリッドアンチエイリアシング(OGAA)として知られ、ダウンサンプリングとも呼ばれます。 特に、モニターの解像度と比較してレンダリング解像度を強制的に上げることで実装されています。



ただし、順序付けられたグリッドは、特にエイリアシングアーティファクトが最も明白であるほぼ垂直およびほぼ水平のラインでは特に最適ではありません。 図6は、これが起こる理由と、回転またはスパースサンプリンググリッドがより良い結果を提供する方法を示しています。









6-1。 ほぼ垂直線のあるシーン









6-2。 完全に平滑化されたラスター化









6-3。 4つの順序付きサンプルでラスタライズ









6-4。 4つのスパースサンプルによる平滑化



このほぼ垂直の場合、4つのサンプルで理想的な結果には5つの異なるグレーシェードが必要です。黒は完全に閉じていないサンプル、25%は1つの閉じたサンプル、50%は2つのサンプルなどです。 ただし、順序付けられたグリッドを使用したラスタライズでは、黒、白、50/50の3つのシェードのみが提供されます。 これは、順序付けられたサンプルが2列に配置されているために発生します。したがって、サンプルの一方がほぼ垂直なプリミティブによって閉じられると、もう一方も閉じられる可能性があります。



疎サンプリングの画像に示されているように、この問題は各ピクセル内のサンプルの位置を変更することで回避できます。 平滑化の理想的なサンプルの場所はまばらです。 これは、N個のサンプルでは、​​NxNグリッドで同じ列、行、または対角線を持つ2つのサンプルがないことを意味します。 このようなパターンは、Nクイーンの問題の解決策に対応します。 このようなグリッドを使用するアンチエイリアス方法は、 スパースグリッドアンチエイリアス(SGAA)と呼ばれます。



サンプルの種類



サンプリングに基づいたアンチエイリアスをサンプリングする最も簡単なアプローチは、すべての計算が各サンプルの「実際の」ピクセルに対して実行されることです。 このアプローチは、すべてのタイプのエイリアシングアーティファクトを除去するのに非常に効果的ですが、N個のサンプルでシェーディング、ラスタライズ、帯域幅、およびメモリのコストをN倍に増やすため、計算コストも非常に高くなります。 すべての計算が個々のサンプルごとに実行される手法は、 スーパーサンプリングアンチエイリアシング(SSAA)と呼ばれます。



今世紀の初め頃、スーパーサンプリングの最適化であるマルチサンプルアンチエイリアシング(MSAA)のサポートがグラフィック機器に組み込まれました。 SSAAの場合とは異なり、MSAAでは各ピクセルは一度だけシェーディングされます。 ただし、各サンプルについて深度とステンシル値が計算され、ジオメトリのエッジでSSAAと同じ平滑化品質が提供され、パフォーマンスの低下は大幅に小さくなります。 さらに、Zバッファ圧縮とカラーバッファ圧縮がサポートされている場合は、特にビジーな帯域幅のパフォーマンスをさらに向上させることができます。 これらはすべての最新のビデオプロセッサアーキテクチャでサポートされています。 MSAAサンプリングを最適化する方法のため、この方法でのエイリアシング透明度、テクスチャ、およびシェーダーは直接対処できません。



3番目のタイプのサンプリングは、2006年にNVIDIAによってカバレッジサンプリングアンチエイリアシング(CSAA)テクノロジーで導入されました。 MSAAは深度とステンシルのピクセル単位の計算からシェーディングを分離し、CSAAは色、深度、またはステンシルを含まないカバレッジサンプルを追加します。 カバレッジのバイナリ値のみを保存します。 これらのバイナリサンプルは、既製のMSAAサンプルを混合するために使用されます。 つまり、CSAAモードはMSAAモードにカバレッジサンプルを追加しますが、複数のMSAAサンプルを作成せずにカバレッジをサンプリングすることは意味がありません。 最新のNVIDIA機器は3つのCSAAモードを使用します:8xCSAA(4xMSAA / 8カバレッジサンプル)、16xCSAA(4x / 16)、16xQCSAA(8x / 16)および32xCSAA(8x / 32)。 AMDには、4x EQAA(2x / 4)、8xEQAA(4x / 8)、および16xEQAA(8x / 16)の同様の実装があります。 追加のカバレッジサンプルは、通常、パフォーマンスにわずかにしか影響しません。



サンプルのグループ化



サンプリングベースのAAメソッドの最後の要素は、サンプルをグループ化する方法です。つまり、レンダリング中に生成された個々のサンプルが各ピクセルの最終色で収集される方法です。 図7に示すように、この目的にはさまざまなグループ化フィルターが使用されます。 図は3×3ピクセルを示しています-青緑色の点はサンプルの位置を示し、黄色の色相はサンプルをグループ化するためのフィルターを示します。









7-1。 フィルターボックス









7-2。 Quincunxフィルター









7-3。 テントフィルター



明白で最も一般的なグループ化方法は、各サンプルを等しい重みを持つピクセルを表す正方形の領域に単純に蓄積します。 これはボックスフィルターと呼ばれ、すべての一般的なMSAAモードで使用されます。



少数のサンプルで平滑化効果の改善を試みた最初のアプローチの1つは、五点形アンチエイリアシングでした。 ピクセルごとに2つのサンプルのみが計算されます。1つは中央にあり、もう1つはピクセルの半分だけ左上にシフトします。 ただし、これら2つのサンプルの代わりに、5つのサンプルが蓄積され、図7に示すパターンを構成します。これにより、エイリアシングが大幅に削減されますが、同時に周囲のピクセルの色の値が各ピクセルにグループ化されるため、画像全体がぼやけます。



2007年、AMDはHD 2900シリーズのビデオプロセッサでより柔軟なアプローチを導入し、サンプルのプログラム可能なグループ化を使用して、「狭いテント」と「広いテント」のグループ化モードを実装できます。 上記のように、各サンプルの重量は同じではありません。 代わりに、ピクセルの中心までの距離に応じて、重み関数が使用されます。 狭いオプションと広いオプションでは、異なるフィルターコアサイズを使用します。 これらのグループ化方法は、異なる数のサンプルと組み合わせることができ、得られた結果の一部は一般的な比較で表示されます。 quincunx AAの場合、これらの方法は、画像の鮮明さとエイリアシングの低減との妥協点です。



AAサンプリングの比較



図8は、サンプル数が異なるサンプリングに基づいて調査したすべてのAAメソッドの比較を示しています。 「グラウンドトゥルース」画像は、「実際の」完璧なシーン表現に最も近いものを示しています。 8xSGSSAAと4×4 OGSSAAを組み合わせて作成されます。



SGMSAAとSGSSAAの品質が同じで、幾何学的エイリアシングのサンプル数が同じであり、MSAAの場合はアンチエイリアシングの透明度、テクスチャ、シェーダーがないことに注意してください。 4つのSGSSAAと2×2 OGSSAAを比較すると、順序付けられたサンプリングパターンの欠点、特にほぼ水平線とほぼ垂直線の欠点がすぐにわかります。 ピクセルあたり2つのサンプルのみで、OGSSAAは水平(2×1)または垂直(1×2)AAのみに制限され、スパースパターンはある程度両方のタイプのエッジをカバーできます。



通常、通常のボックスフィルターとは異なるサンプルグルーピングフィルターを使用したAAメソッドは、サンプルのエイリアスを改善しますが、画像全体のぼかし効果の影響を受けます。



もう1つの重要な点に注意する必要があります-特にAA分析メソッドのその後の議論に照らして-サンプリングに基づくこれらのメソッドはすべて、サブピクセルエイリアシングと通常の幾何学的エイリアシングの両方に等しく適用されます。



図8 :サンプリングに基づくさまざまなAAメソッドを使用したさまざまな種類のエイリアシングの処理。









真の画像









AAなし









2x MSAA









2x SGSSAA









4x MSAA









4 x SGSSAA









8x MSAA









8x SGSSAA









8x MSAA +アルファからカバレッジ









2x1 OGSSAA









1x2 OGSSAA









2x2 OGSSAA









狭いテントx 4









狭いテントx 6









6xワイドテント









8xワイドテント



GIFと同じ






分析的なアンチエイリアス技術



サンプリング手法は直感的で、かなり多数のサンプルでかなりうまく機能しますが、同時に計算コストがかかります。 この問題は、レンダリングメソッド(遅延シェーディングなど)を使用すると悪化します。これにより、効率的なハードウェアアクセラレーションサンプリングタイプの使用が複雑になる可能性があります。 そのため、3Dレンダリングでのエイリアシングによって作成される視覚的なアーティファクトを減らす他の方法が調査されています。 このようなメソッドは、ピクセルごとに1つのサンプルを使用して通常の画像をレンダリングし、画像を分析してエイリアシングを識別して排除しようとします。



簡単な紹介と紹介



コンピュータで生成された画像を平滑化するという考え方は、Reshetovによる形態学的アンチエイリアシングMLAAと呼ばれることが多い)[1]の2009年の記事のおかげで普及しましたが、決して新しいものではありません。 Jules Blumenthalは、1983年のSIGGRAPHの記事「Antialiasingへのアプリケーションとのエッジ推論」で、この手法の簡潔な説明を提供しました。



「ラスターデバイスで表示するためにポイントでサンプリングされ、表示軸に平行でないエッジは、はしごのように見えます。 , . , , , , . .



, , . , ».


1999年、石木と国枝は、リアルタイムで使用するために設計されたこの手法の最初のバージョンを導入しました。これは、画像の行と列のペアをスキャンすることで実行され、ハードウェアに実装できます[3]。



一般的な場合、アンチエイリアスの純粋に分析的な方法はすべて3段階で実行されます。



  1. 画像のギャップの認識。
  2. 不連続パターンから幾何学的エッジを再作成します。
  3. 各辺の色を混合することにより、これらのエッジを横切るピクセルを平滑化します。


個々の分析アンチエイリアスの実装は、これらの手順の実装方法が異なります。



ギャップ検出



最も単純で最も一般的なギャップ検出オプションは、最終的にレンダリングされたカラーバッファを単純に調べることです。 2つの隣接するピクセルの色の差(距離)があるしきい値よりも大きい場合はギャップがあり、そうでない場合はギャップがありません。これらの距離メトリックは、多くの場合、HSLなど、RGBよりも人間の視覚をよりよくモデル化する色空間で計算されます



図9は、レンダリングされたイメージの例と、それらから計算された水平および垂直のギャップを示しています。









図9:カラーバッファーでのギャップ検出。左:AAのない画像。中央:水平方向の区切り。右:垂直方向のギャップ。



ギャップの認識プロセスを高速化するため、または誤検知の数を減らすために(たとえば、テクスチャ内、または図9のテキスト周辺)、レンダリングプロセス中に生成される他のバッファーを使用できます。通常、ダイレクトレンダラーとリバースレンダラーにはZバッファー(深さバッファー)を使用できます。各ピクセルの深度値を保存し、エッジの認識に使用できます。ただし、これはシルエットエッジを認識する場合にのみ機能します。、つまり、3Dオブジェクトの外部エッジ。オブジェクト内のエッジを考慮するには、Zバッファの代わりに、またはZバッファに加えて、もう1つのバッファを使用する必要があります。遅延レンダラーの場合、各ピクセルの法線面の方向を格納するバッファーがしばしば生成されます。この場合、隣接する法線間の角度は、エッジ認識に適したメトリックになります。



リブの再作成とブレンド



ギャップから幾何学的エッジを再構築する方法は、分析AAの方法によってわずかに異なりますが、エイリアシングアーティファクトの「ラダー」の典型的なパターンを認識するために、水平ギャップと垂直ギャップのパターンを比較することですべて同様のアクションを実行します。図10に、MLAAでのReshetovの説明で使用されるパターンと、それらからエッジを再作成する方法を示します。



図10: MLAAパターンと再作成されたエッジ









認識されたパターン









MLAAで使用されるギャップパターン



幾何学的なエッジを再構成した後、エッジに沿った上部/下部または右/左のピクセルがピクセルの混合色にどれだけ寄与して滑らかな外観を生成するかを計算するだけで十分です。



分析的平滑化の利点と欠点



サンプリングベースのアンチエイリアシング法と比較して、分析ソリューションにはいくつかの重要な利点があります。適切に動作すると(正しく認識された幾何学的なエッジで)、非常に多くのサンプルを使用してサンプリングメソッドの品質と同等の品質を提供しながら、より少ない計算リソースを使用できます。さらに、それらは、たとえば遅延シェーディングの場合など、サンプリングベースのAAの実装がより困難な多くの場合に容易に適用できます。



ただし、分析AAは万能薬ではありません。単一のサンプルに基づいた純粋な分析手法に固有の問題は、サブピクセルエイリアシングを処理できないことです。



図2の右上隅に示されているピクセル構造を分析平滑化アルゴリズムに渡すと、彼はピクセルの分割グループが実際に線を構成していることを理解できません。この段階では、この問題を解決する2つの等しく不愉快な方法があります。目に見えるエイリアシングを減らすが、詳細を破壊するピクセルのぼかし、またはエイリアシングによって正確に引き起こされる明確に定義された「ラダー」アーティファクトの保守的な処理。同時に、サブピクセルのエイリアシングは保持され、歪んでしまいます。



分析手法のもう1つの問題は、誤検知です。。画像の一部がエイリアシングされたエッジとして認識されるが、実際には認識されない場合、ブレンドによって歪んでしまいます。これはテキストで特に顕著であり、妥協も必要です。エッジのより保守的な認識は誤検知を少なくしますが、実際にエイリアシングのあるエッジを見逃します。一方、エッジの認識のエッジが拡張されると、これらのエッジも含まれますが、これは誤検知につながります。 Anatoly Antialiasingは基本的に、ラスタライズされた画像から実際よりも多くの情報を推定しようとするため、これらの問題を完全に取り除くことは不可能です。



最後に、これらの方法によるエッジの解釈は、単一ピクセルの違いに応じて大きく異なります。したがって、単一ピクセルの分析アンチエイリアシング方法を使用すると、画像のちらつきや一時的な不安定性が増加するか、追加される可能性があります。元の画像の変更されたピクセルのみが、ちらつきライン全体で滑らかな出力になります。



図11は、標準のFXAAおよびSMAA1xアルゴリズムを例として使用してAA分析メソッドを使用した場合の成功と失敗の結果の一部を示しています。後者は通常、リアルタイムで使用できる最高の純粋に分析的な単一ピクセルアルゴリズムと見なされます。



図11: AA分析メソッド









AAなし









Fxaa









1x SMAA



アンチエイリアスの分析方法の比較



図12は、FXAA、SMAA1xと「完全な」画像の結果と、AAなしの画像、前の比較の4xMSAAと4xSGSAAAの結果の比較を示しています。



図12:さまざまなAA分析およびサンプリング方法を使用したさまざまなタイプのエイリアシングの処理









「完璧な」画像









AAなし









4x MSAA









4 x SGSSAA









Fxaa









SMAA



GIFと同じ






MSAAとは異なり、これらの分析方法は、ジオメトリ、透明度、またはシェーダー計算でさえエイリアシングアーティファクトの原因であるかどうかに関心がないことに注意してください。すべてのエッジは同じように扱われます。残念ながら、同じことが画面テキストの端にも適用されますが、歪みはSMAA1xでFXAAよりも小さくなります。



どちらの方法も、サブピクセルエイリアシングの場合はアンチエイリアシングに対処しませんが、この障害を異なる方法で処理します。SMAA1xは、正弦波の個々の白いピクセルにまったく影響を与えないことを決定し、FXAAはそれらを環境と混合します。より望ましい処理は、コンテキストと個人の好みに依存します。



より客観的には、SMAA1xは2Dジオメトリテストで特定のラインアングルを処理し、シェーダーエイリアシングの例の曲線はFXAAよりも明らかに優れており、より美しく、より「完璧な」画像に近い滑らかな結果を提供します。これは、エッジとミキシングの作成のより複雑な段階が原因で発生しました。詳細は、Jimenez et al [4]による2012 SMAAの記事で説明されています。



アンチエイリアスの未来











ゲームで現在積極的に使用されている多くのアンチエイリアシング方法(分析およびサンプリングに基づく)について十分に理解しました。少し推測する時が来ました。技術の水準を引き上げる新世代のコンソールには、どのようなアンチエイリアス技術が見られますか?既存の方法の欠点をどのように緩和し、新しい機器が新しいアルゴリズムを使用できるようにするにはどうすればよいですか?



さて、未来はすでに部分的にここにあります:サンプリングと分析的なアンチエイリアスに基づいた方法の組み合わせ。これらのアルゴリズムは、従来のマルチサンプリングまたはスーパーサンプリング、またはフレーム間の一時的な蓄積のいずれかによってシーンのいくつかのサンプルを作成し、それらを分析と組み合わせて、アンチエイリアシングで最終画像を生成します。これにより、サブピクセルエイリアシングの問題と単一サンプルの純粋な分析メソッドの一時的な不安定性の問題を軽減できますが、同様のパフォーマンス特性を備えた純粋なサンプリングメソッドよりも、幾何学的エッジではるかに優れた結果が得られます。追加のサンプリングと分析AAの非常に単純な組み合わせは、FXAAなどの単一サンプル分析手法と、より高い解像度のバッファーからのサブサンプリングを組み合わせることで得られます。そのような方法のより複雑な例は、SMAA T2x、SMAA S2x、SMAA 4x、およびTXAAです。SMAAメソッドについて詳しく説明し、比較しますこの記事は、NVIDIAがTXAAへの独自のアプローチをここで実装している間です。このような組み合わせた方法は、今後さらに広く使用される可能性が高くなります。



まだ広く配布されていないが、将来に大きな可能性がある別のオプションは、レンダリングプロセス中に追加の幾何情報をエンコードすることです。これは、後で分析アンチエイリアスの段階で使用されます。このアプローチの例としては、ジオメトリックポストプロセスアンチエイリアシング(GPAA)およびジオメトリバッファーアンチエイリアシング(GBAA)がありますこれらのデモはこちらから入手できます



最後に、新しいコンソールプラットフォームおよび将来のPCアーキテクチャ用のCPUおよびビデオプロセッサメモリの共通プールにより、そのような共有リソースを操作するために設計された技術を使用できるようになる場合があります。 BarringerとMöllerは、最近の記事「共有メモリを使用した非同期適応アンチエイリアシング」で、重要なピクセル(エッジ上のピクセルなど)を認識し、CPUでそれらの追加のスパースサンプルをラスタライズしながら、従来の単一サンプルレンダリングを実行する技術について説明しています[5] 。これにはレンダリングプロセスの大幅な再構築が必要ですが、結果は有望に見えます。



参照資料



[1] A. Reshetov、«形態素アンチエイリアス» 、 高性能グラフィックスに関する会議の議事録2009 '09 HPG、ニューヨーク、NY、USA、2009、頁。 109-116。



[2] J. Bloomenthal、「アンチエイリアシングへのアプリケーションのエッジ推論」、ACM SIGGRAPH Comput。グラフ、Vol。 17、いいえ。 3、ページ。157–162、7月 1983



[3] T.一色とH.国枝、「コンピュータ生成された画像のための効率的なアンチエイリアシングアルゴリズム」 におけるIEEEの回路とシステムISCAS '99で1999国際シンポジウム、オーランド、フロリダ、1999、巻 4、pp。532-535。



[4] J.ヒメネス、JIエシュバリア、T。スーザ、D。グティエレス、「SMAA:Enhanced Subpixel Morphological Antialiasing」、Comput。グラフ。フォーラム、vol。31、いいえ。2pt1、pp。355–364、2012年5月。



[5] R. BarringerおよびT.Akenine-Möller、「A 4:共有メモリを使用した非同期適応アンチエイリアス」、ACM Trans。グラフ。、vol。32、いいえ。4、pp。100:1〜100:10、7月 2013年。



All Articles