アンビエント オクルージョン (SSAO) は、オクルージョンを起因とする光源の減衰を近似するエフェクトです。繊細な効果のもたらす上に、奥まった領域や面や岩の隙間を暗くしたり、その他の特性の見た目をより自然でリアルに表現する際に最も有益です。
![]() |
![]() |
![]() |
---|---|---|
アンビエントオクルージョンが適用されていないシーン | アンビエントオクルージョンの適用のみ | アンビエントオクルージョンが適用されたシーン |
このエフェクトは SSAO 手法で実現しています。つまり、スクリーン スペースの後処理効果で AO の量が計算されています。 我々の手法は深度バッファと標準型の GBuffer (遅延シェーディング参照) を使用しています。これは法線マップの詳細が結果に影響を与えることを意味します。UE4 におけるエフェクトは、 AmbientCubemap に適用されます。ここではシャドウマッピングを使用しているため、直接照明に影響は及びません。
「Visualize GBuffer」ビューモード (ビューモード参照) または「Visualize Ambient Occlusiion」フラグを表示して AO 値を直接見ることが出来ます。
AO 値は GBuffer の一部であるため、マテリアルからも出力することが出来ます。SSAO とマテリアルの AO 値が組み合わさり、結果としてより暗いアンビエントオクルージョンとなります。
プロパティ | 説明 | ||||||
---|---|---|---|---|---|---|---|
Intensity | アンビエント オクルージョンの量をグローバルに制御します。0.0 の値はアンビエント オクルージョンが適用されていないことを意味します。 1.0 の値は完全なアンビエント オクルージョンの適用を意味します。
|
||||||
Radius | アンリアル単位で半径を定義します。半径が大きいほどゆっくりと実行 (テクスチャのキャッシュ トラッシュ) し、サンプル数が制限されるためより多くのアーティファクトを表示します。
|
||||||
Radius in WorldSpace | 有効化されると、 AO Radius の値はワールド空間にあると仮定されます。さもなければ、ビュー空間にあると仮定されます。 | ||||||
Distance | オブジェクト周りの暗いハローを回避するために必要な微調整用のパラメータです。オブジェクトの濃さが分からないため、SSAO 技術にはzbuffer のみが存在します。
この例の、右側のキャラクターの角まわりのハローにご注目ください。遠く離れた距離を設定すると、角の裏側の表面に対してオクルージョンを計算するといった非現実的な方法となります。 |
||||||
Power | 計算された暗色化効果の強度を制御します。
|
||||||
Bias | アンビエント オクルージョンの詳細を微調整します。遠方の高精度なアーティファクトを回避するために何かしらのバイアスが必要です。アンリアル単位の >0 、デフォルト(3.0) 値は平面に適していますが詳細度は縮小します。 |