SSAOとHBAOとHDAO、本当の違いは?

このオプションは、『Far Cry 3』でSSAO、HBAO、HDAOのいずれかを選択していた私を混乱させました。

ググっても答えは出てこないし、それぞれのオプションを有効にして結果を比較してもダメでした。どうやら私の目は節穴のようです。

まず第一に、どれが一番良い品質なのか?次に、これらのオプションの実際の違いは何ですか?

ソリューション

H*AOは、より良い品質を提供しますが、性能面での負担は大きくなります。

SSAOは精度が劣るものの、パフォーマンスの低下を抑えて画質を向上させることができます。

H*AOを使用する場合は、ATIカードならHDAO、nVIDIAカードならHBAOを選択するのが良いと思います。

HBAOとHDAOは基本的には同じものですが、ベンダーごとに実装が異なります。

以下にBF3のスクリーンショットを掲載しますので、参考にしてください。http://www.reddit.com/r/gaming/comments/kwjtw/my_battlefield_3_screenshot_comparison_ssao_vs/

http://www.flickr.com/photos/bmorlok/6197863052/in/set-72157627662461565/lightbox/、カーソルキーを使って3つのスクリーンショットを素早く行き来することをお勧めします

シャドウイングが発生している場所が、「なし」、「SSAO」、「HBAO」のいずれかであることがすぐにわかるはずです。

オブジェクトが交差している部分を見てください。例えば、床と壁の境目、柱と天井の境目、茂み、地面の破片などです。

勝手ながら、写真を1枚切り取って、前後に反転させながら見るべき箇所を強調してみました。

SSAOの影が同じ場所にあることがわかると思いますが、その度合いは非常に低いです。

.

解説 (3)

まず、スクリーン空間のアンビエントオクルージョンは、物理的な根拠のある効果ではありませんので、リアリズムの議論はありません。この効果の理論は、基本的に次のようなものです。

覆われていない表面(オプションで一定の距離内)が照らされる。

たとえレイトレースされていても、それはモデルの小さなディテールを引き出すための手っ取り早い方法に過ぎません。

次に、これらの手法はすべてSSAOの繰り返しであり、シーンがレンダリングされた後のポストプロセスとして動作します。つまり、ラスタライズ後に残るわずかな情報から正確なものを生み出すためには、シェーダーは何か魔法のようなことをしなければならないということです。

SSAO

これは最も古い手法です。これは、与えられたスクリーン空間の半径内にあるすべてのピクセルがオクルーダーになる可能性があると仮定します。これは、ぼかしたものと元のZ(深度)バッファの差を計算し、ぼかしたものの方が大きい場合には結果を暗くすることで、おおよその目安となります。

この方法の欠点は、誤って暗くしてしまうことと、特定の特徴を検出できないことです。この柱をよく見ないとわかりませんが、天井の側面には偽の影がついていますが、接合部には影響がないことがわかります。

.

この論文には、さらにいくつかのグラフィック例があります。

HBAO

このアルゴリズムは SSAO の問題点を解決しようとするものです。これは、法線マップという、より多くの情報を利用することで実現しています。スクリーン空間のピクセル周辺のオクルーダーを探すのではなく、シーンの小さな断片を復元して、そこにあるべき明るさをより多くの情報に基づいて近似しようとします。

天井がはるかにはっきりと*下を向いていることがわかります。また、柱は上部が暗くなっています。

.

4IDIA社の論文4には、さらに詳細な情報が掲載されています。

結論

HBAOはより最近のアルゴリズムで、より近い近似値が得られます...近似値。


画像はこれらのスクリーンショットの断片です。

解説 (3)

また、HBAOには、ある光のレベルから別の光のレベルに目を向けたときの虹彩の大きさの違いをシミュレートする眼球イメージプレーンの技術が用いられています。

HDAOはこれを行いません。

解説 (1)