Ambient Occlusion
Ambient Occlusion (アンビエントオクルージョン) オーバーライドは、HD レンダーパイプライン (High Definition Render Pipeline、HDRP) で利用可能な、リアルタイムのフルスクリーンライティングエフェクトです。このエフェクトは現在の有効視野で アンビエントオクルージョン を概算します。シーンのライトとゲームオブジェクト周辺の環境に基づいて、ゲームオブジェクト表面上の環境光の強度および位置を概算します。これは、折り目、穴、交差点、および互いに近い場所にあるサーフェスを暗くすることで実現できます。現実世界では、これらのエリアは環境光が遮断されたり、遮蔽され、暗く見える傾向があります。
テクスチャを使ってゲームオブジェクトのマテリアルに存在するものの、サーフェスジオメトリにはないディテールによって生じるアンビエントオクルージョンを特定する方法に関しては、アンビエントオクルージョン を参照してください。
HDRP はこのオーバーライドの上に レイトレースによるアンビエントオクルージョン を実装します。つまり、Inspector 内で表示されるプロパティーは、レイトレーシングを有効にするかしないかに応じて変化するということです。
アンビエントオクルージョンの有効化
まずプロジェクトに対して有効にしてから、Cameras でも有効にして、シーンでこの機能を使います。プロジェクト内で機能を有効にするには、HDRP Asset を使い、Cameras で有効化するには、フレーム設定 を使います。すべての Cameras に対して機能を有効にするには、Default Frame Settings を利用し、特定の Cameras に対して機能を有効にするには、各 Camera の個別 Frame Settings をオーバーライドします。
この機能に関して、 HDRP アセットで有効化するプロパティーは Lighting > Screen Space Ambient Occlusion です。 フレーム設定で有効化するプロパティーは Lighting > Screen Space Ambient Occlusion です。
Ambient Occlusion の使用
Ambient Occlusion は ボリューム フレームワークを使うため、Ambient Occlusion プロパティーを有効化し変更するには、Ambient Occlusion オーバーライドを Volume に追加しなければなりません。Volume に Ambient Occlusion を追加する手順は以下の通りです。
- シーンまたはヒエラルキービューで、Volume コンポーネントを含むゲームオブジェクトを選択し、Inspector で表示します。
- Inspector で Add Override > Lighting へ行き、Ambient Occlusion をクリックします。 これで HDRP はボリュームが影響を与えるすべてのカメラに対して アンビエントオクルージョン を適用します。
API
ランタイム中このオーバーライドにアクセスし制御するためには、Volume スクリプティング API を使用します。Volume システムの仕組みにより、プロパティーは標準 Unity コンポーネントとは異なる方法で編集されます。また、各プロパティーに overrideState があるなど、他にも注意する点があります。これは Volume システムが、設定したプロパティー値と Volume Profile に保存されているデフォルト値のうち、どちらを使うかを指示します。API を正しい利用法についての詳細は、 Volume スクリプティング API を参照してください。
プロパティー
Volume コンポーネントのオーバーライドのプロパティーを編集するには、プロパティーの左にあるチェックボックスを有効にします。これにより HDRP も Volume コンポーネントに対して、デフォルト値ではなく特定されたプロパティー値を使うことになります。チェックボックスを無効にすると、HDRP は設定されたプロパティーを無視し、Volume のデフォルト値を代わりに使います。
Inspector で表示されるプロパティーは、エフェクトにレイトレーシングを有効化するかしないかによって、変化します。
- レイトレーシングを使わない場合は、Inspector で Ray Tracing を無効にし、スクリーンスペース でプロパティーリストを参照します。
- レイトレーシングを使う場合は、Inspector で Ray Tracing を有効にし、Ray-traced でプロパティーリストを確認します。
Screen-space
プロパティー | 説明 |
---|---|
Ray Tracing | HDRP がレイトレーシングを使ってアンビエントオクルージョンを計算するかを示します。このプロパティーを有効にすると、ボリュームオーバーライドに対する実装を完全に変更し、レイトレースによるアンビエントオクルージョンを制御する新しいプロパティーのセットが展開します。 レイトレースによるアンビエントオクルージョンに関する情報は、レイトレースによるアンビエントオクルージョン を参照してください。 レイトレースによるアンビエントオクルージョンを制御するプロパティーに関する情報は、下の レイトレースによる プロパティーセクションを参照してください。 |
Intensity | スライダーを使って、アンビエントオクルージョンの強度を調整します。値が高いほど、結果は暗くなります。HDRP はこの値を指数として使い、アンビエントオクルージョンに対するピクセルの最終値を評価します。 |
Direct Lighting Strength | スライダーを使って、オクルージョンが直接拡散ライティングに与える影響度を変更します。 |
Radius | スライダーを使って、HDRP が遮蔽物の位置を検索する距離を設定します。値を高く設定すると、アンビエントオクルージョンがより広いスケールをカバーします。ただし、高い距離値はクオリティーの低い結果を生むことがよくあるため、注意してください。ノート: HDRP はスクリーンスペースを Maximum Radius in Pixels で設定された値に固定します。 |
Quality | HDRP が次の入子型プロパティーの値を追加するために使うプリセットを特定します。オプションは以下の通りです。 • Low (低): クオリティーよりもパフォーマンス重視のプリセットです。 • Medium (中): クオリティーとパフォーマンスのバランスが取れたプリセットです。 • High (高): パフォーマンスよりもクオリティー重視のプリセットです。 • Custom (カスタム): 各プロパティーを個別にオーバーライドできます。 |
- Maximum Radius In Pixels | スライダーを使って、HDRP が遮蔽物を検索するエリアに対してピクセルで上限を設定します。数値は 1920 x 1080 の解像度を利用していると仮定します。異なる解像度が使われると、HDRP はそれに応じてこの値を調整します。優良なパフォーマンスを実現するためには、できるだけこの値を低く維持してください。 |
- Full Resolution | チェックボックスを有効にすると、フル解像度でアンビエントオクルージョンアルゴリズムを処理します。これはクオリティーを格段に向上させますが、リソースに負荷がかかる操作であるため、パフォーマンスに影響を及ぼします。チェックボックスを無効にすると、アプリケーションが実行する解像度の半分でアンビエントオクルージョンアルゴリズムを処理します。この設定は、デフォルトで無効になっています。 |
- Step Count | HDRP が遮蔽物を検索するために踏む、ステップ数です。値を増やすと、より精度の高い結果が得られます。HDRP がより多くの遮蔽物を見つけるため、より暗い結果になる傾向があります。 |
Temporal Accumulation | HDRP が経時的にアンビエントオクルージョンの結果を累計するかを示します。これはより良いクオリティーに繋がりますが、非インスタントコンバージェンスやゴースティングのようなアーティファクトを生じる場合があります。ノート: このモードはモーションベクトルが利用できない場合には、良い結果が得られません。 |
- Direction Count | 遮蔽物を検索する方向の数を決定します。値を増やすと、パフォーマンスに多大な影響が出ます。 このプロパティーは Temporal Accumulation を無効にしたときのみ表示されます。 |
- Blur sharpness | 非経時的なブラーのシャープネスを決定します。高い値ほどシャープさをうまく維持し (ノイズのリスクは上がります)、低い値ほどより柔らかな外観になります。 このプロパティーは Temporal Accumulation を無効にしたときのみ表示されます。 |
- Bilateral Aggressiveness | この値を増やすと、空間フィルターの深度差が緩やかでなくなり、異なる深度値のサンプルを拒否する確率が高くなります。増加させることによって、アンビエントオクルージョンがオブジェクト周辺にあるべき場所で、白いハローを減少させる場合があります。 このプロパティーは Temporal Accumulation を有効にしたときのみ表示されます。 |
- Ghosting Reduction | この要因を 0 に近づけると、経時的累積中に承認されるサンプル量が増え、ゴースティングが増えますが、テンポラルノイズは減少します。値を 1 に近づけると、ゴースティングは減少しますが、より目立つテンポラルノイズが増えます。 このプロパティーは Temporal Accumulation を有効にしたときのみ表示されます。 |
- Bilateral Upsample | チェックボックスを有効にすると、バイリテラルアップサンプリングを介して、低解像度アンビエントオクルージョンをアップサンプルします。シャープなエッジをよりうまく維持できますが、やや負荷が大きく、エイリアシングもより目立つ場合があります。 このプロパティーは Temporal Accumulation を有効にし、Full Resolution を無効にしたときのみ表示されます。 |
Ray-traced
プロパティー | 説明 |
---|---|
Intensity | Screen-space の Intensity を参照してください。 |
Direct Lighting Strength | Screen-space の Direct Lighting Strenght を参照してください。 |
LayerMask | HDRP がレイトレースによるエフェクトをプロセスするレイヤーを定義します。 |
Quality | HDRP が次の入子型プロパティーの値を追加するために使うプリセットを特定します。オプションは以下の通りです。 • Low (低): クオリティーよりもパフォーマンス重視のプリセットです。 • Medium (中): クオリティーとパフォーマンスのバランスが取れたプリセットです。 • High (高): パフォーマンスよりもクオリティー重視のプリセットです。 • Custom (カスタム): 各プロパティーを個別にオーバーライドできます。 |
- Max Ray Length | HDRP がレイトレースによるアンビエントオクルージョンに使う、光線の最大長を制御します。より小さいスケールのローカルアンビエントオクルージョンを実現できます。 |
- Sample Count | HDRP がフレームごと、ピクセルごとに使う、光線の数を制御します。この値を増やすと、実行時間を線形に増加させます。 |
- Denoise | HDRP がアンビエントオクルージョンからノイズを除去するために使う、時空間フィルターを有効化します。 |
- - Denoiser Radius | 時空間フィルターの半径を制御します。値が高いほど、より遠くまでノイズを減少させます。 |
制限
スクリーンスペースアンビエントオクルージョン
スクリーンスペースエフェクトは、任意の時点で画面にあるもののみを処理します。つまり、有効視野外にあるオブジェクトは、視覚内のオブジェクトを遮蔽することができません。これは時々、画面の端で観察できます。リフレクションプローブ をレンダリングする際には、スクリーンスペースアンビエントオクルージョンはサポートされません。