【TA100】4.2 SSAOアルゴリズム スクリーン空間周囲光オクルージョン

1 SSAO の概要

1.1 アンビエントオクルージョン (AO)

正式名称はアンビエント オクルージョン (Ambient Occlusion) で、コンピューター グラフィックスのシェーディングおよびレンダリング技術であり、光がオブジェクトに到達する能力をシミュレートし、オブジェクトの表面に到達する光の能力を記述する大まかなグローバルな手法です。
ここに画像の説明を挿入します
このシーンには色を表すテクスチャが存在しないように見えますが、シーンのシャドウ効果と AO 効果はまだ存在しており、色がなくてもシーンのレイヤーの詳細が表示され、特別なスタイルを形成します。
ここに画像の説明を挿入します
環境光の遮蔽は、効果を向上させる上でどのくらい重要ですか?「Uncharted 2: HDR Lighting」のノーティー ドッグからの比較画像を見てください。左側の車の底部が光の大部分をブロックしていることがわかります。自然に見える影を形成し、右側の車は上に浮かんでいるように感じられ、偽物のように見えます。

計算する
ここに画像の説明を挿入します

np はサンプル位置 p の法線を表し、w は点 p の接平面の正の方向の任意のベクトルを表します。V(p,w) は可視関数です。点 p が w 方向にブロックされている場合、それは 1 です。それ以外の場合は 0 です。max(np *w,0) は 2 つのベクトルのコサインです。AO 係数の計算は非常に負荷の高い操作であることがわかります。** 一般に、オフライン レンダラーは、レイ トレーシングまたはレイ マーチング アルゴリズムを使用して、いくつかのレイをシミュレートし、オクルージョンのパーセンテージを計算します。* *しかし、これは明らかです。この計算方法はリアルタイム コンピューティングの分野では使用できません。

AO は、オブジェクトが交差するとき、またはオブジェクトに近づくときに、周囲の拡散光を遮断する効果を表すために使用されます。AO
の正式名は、アンビエント オクルージョンです。基本原則。
AO は照明とは何の関係もありません。光はどこから来るのか。そのうちのいくつかは AO とは関係ありません。
AOはその時の変形中のオブジェクトの属性です。
AO 特殊効果がプレーヤーに与える直感的な感覚は、主に画像の明るさに反映されます。AO 特殊効果がない画像はわずかに明るくなります。AO 特殊効果をオンにすると、画像の局所的な詳細、特に暗い部分の影がより鮮明になります。

アンビエント オクルージョンとシャドウ オクルージョンの違い

周囲光は天窓として理解できますが、影は光源 (太陽やライトなどの直接光源) によって生成されます。

これは環境を照らす直接光源の効果です。すべてのライトが 1 回だけ計算されるため、影の領域が非常に硬くなっていることがわかります。

ここに画像の説明を挿入します

これは、環境光のオクルージョンを追加することによって生成される効果で、シーンの光と影の詳細がより現実的かつ繊細になります。

ここに画像の説明を挿入します

この違いの理由:
1. 直接照明では、光源が平面に到達した後の二次反射は計算されません。影は単色ですが、環境光では、さまざまなオブジェクトに反射される光源が計算されます。 2. 周囲光が反射を通過するたびに
減衰が発生するため、周囲光は非常に弱く、周囲光の影響は影で確認できますが、周囲光は反射後にすべての面に到達するわけではありません。死角や角度が小さい領域では、反射光が届かず、濃い影が生じ、この領域でアンビエントオクルージョンが発生します。

ここに画像の説明を挿入します

直接照明による影

ここに画像の説明を挿入します

1つ目は直接照明による物体の影、2つ目は間接照明による環境光(天窓)の影響、球体と地面の界面が不明瞭(角度が非常に小さい)、影の部分が影響を受けることです。環境光によって、環境光の繊細な変化を生み出します。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

直接光源がある: オブジェクトが他のオブジェクトと狭い境界面を持たない場合、アンビエント オクルージョンは発生しません。

ここに画像の説明を挿入します
ここに画像の説明を挿入します

直接光源を取り除き、周囲光 (天窓) だけを保つと、オブジェクトは曇りの日のように見えます。この時点で残るのはアンビエントオクルージョン(環境光が当たる場所)であり、シャドウ(直接光が届かない場所)ではありません。

ここに画像の説明を挿入します
ここに画像の説明を挿入します

SSAO

SSAO:スクリーン スペース アンビエント オクルージョン、正式名称スクリーン スペース アンビエント オクルージョン。コンピュータ グラフィックスでリアルタイムの近似アンビエント オクルージョン効果を実現するために使用されるレンダリング テクノロジです。シーンの前処理ではなく、画面のピクセル位置にランダムなサンプリング点を配置し、サンプリング点のオクルージョン項目の割合でシャドウオクルージョン強度を計算する画面の後処理技術です。

ここに画像の説明を挿入します
AO 計算の中心的な問題は、サンプリング ポイントを取得し、これらのサンプリング ポイントが遮蔽されているかどうかを判断する方法です。最初に最初の問題を解決します。ここでは、法線方向を指す半球サンプリング ブロック (サンプル カーネル) を使用し、サンプリング ポイントを生成します。ブロック内の点が原点から遠いほど、AO の寄与は小さくなります。サンプリング ブロックは次の図のようになります。
ここに画像の説明を挿入します
次に、2 番目の質問に移ります。図内のサンプリング点のオクルージョンをどのように判断するかです。下に?
ここに画像の説明を挿入します

(黒くなった点はジオメトリのサーフェスの内側にあるため、オクルージョンされていると判断されます。)
1 つの方法は、すべてのサンプリング ポイントをビュー プレーンに投影することです。これは、サンプリング ポイントの UV 座標を取得するのと同じであり、同時にデプス バッファ内の UV 座標を取得します。デプス値。次に、サンプリング ポイントのデプスとシーン内のポイントのデプスを比較します。サンプリング ポイントのデプスが大きい場合は、サンプリング ポイントがデプス バッファによって隠されていることを意味します。最後に、すべてのサンプリング ポイントの AO 寄与が合計され、そのポイントの AO 値になります。計算式は次のとおりです。このうち、関数
ここに画像の説明を挿入します
V は以前に導入したものです。関数 D は単調減少です。 [0, 1] の間の関数。サンプリング点が原点に近いほど、AO への寄与が大きくなります。一般に、指数関数が使用されます。
ここに画像の説明を挿入します

関係する関連概念

ここに画像の説明を挿入します
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/weixin_45810196/article/details/131410097