Micro Shadows
Micro Shadows (マイクロシャドウ) は、HD レンダーパイプライン (High Definition Render Pipeline、HDRP) がメッシュジオメトリにはないものの、ゲームオブジェクトのマテリアルに組み込まれた小さなディテールをシミュレーションするシャドウです。HDRP は法線マップとアンビエントオクルージョンマップからのディテールを使って、メッシュだった場合にこれらのマップが投影するであろうシャドウを概算します。
この画像ではマテリアルのディテールの異なるレイヤーが、互いにシャドウをかけています。
苔むした地面のマテリアルにある不透明度 0.85 のマイクロシャドウを上から見た図です。
Micro Shadows の使用
HDRP は Volume フレームワークを使って Micro Shadows を生成するため、Micro Shadows プロパティーを有効化し変更するには、Micro Shadows オーバーライドを Volume に追加しなければなりません。Volume に Micro Shadows を追加する手順は以下の通りです。
- シーンまたはヒエラルキーで Volume コンポーネントを選択し、Inspector で表示します。
- Inspector で Add Override > Shadowing へ行き、Micro Shadows をクリックします。 これで HDRP は、この Volume が影響を与えるすべてのカメラに対して Micro Shadows をプロセスします。
マイクロシャドウは、ディレクショナル ライト とのみ機能します。マイクロシャドウを有効にする場合は、シーンにディレクショナルライトがあることを確認してください。
API
ランタイム中このオーバーライドにアクセスし制御するためには、Volume スクリプティング API を使用します。Volume システムの仕組みにより、プロパティーは標準 Unity コンポーネントとは異なる方法で編集されます。また、各プロパティーに overrideState があるなど、他にも注意する点があります。これは Volume システムが、設定したプロパティー値と Volume Profile に保存されているデフォルト値のうち、どちらを使うかを指示します。API を正しい利用法についての詳細は、 Volume スクリプティング API を参照してください。
プロパティー
Volume コンポーネントのオーバーライドのプロパティーを編集するには、プロパティーの左にあるチェックボックスを有効にします。これにより HDRP も Volume コンポーネントに対して、デフォルト値ではなく特定されたプロパティー値を使うことになります。チェックボックスを無効にすると、HDRP は設定されたプロパティーを無視し、Volume のデフォルト値を代わりに使います。
プロパティー | 説明 |
---|---|
Enable | チェックボックスを有効にすると、HDRP は Volume がカメラに影響を与えるときにマイクロシャドウを計算します。 |
Opacity | スライダーを使って、Volume にマイクロシャドウの不透明度を設定します。 |
詳細
マイクロシャドウは、小さなディテールをキャプチャできる、極詳細なライティングを表現します。テクスチャがどのように生成されるかに依存しますので、より良い結果を出すためにも、マテリアルに法線マップおよびアンビエントオクルージョンマップを制作する際には以下を考慮してください。
- 必ず両方のテクスチャのディテールを一貫した方法でキャプチャしてください。
- 常に同じパイプラインを使って法線マップおよびアンビエントオクルージョンマップを制作してください。
マイクロシャドウの処理は、処理しない場合と比べてよりリソースに負荷がかかりますので、注意してください。
役立つリンク
- このマイクロシャドウ技法は、Naughty Dog からのこちらのプレゼンテーションにインスパイアされたものです。Uncharted 4 のテクニカルアート。
- 一貫した方法でアンビエントオクルージョンマップを生成する方法の一例は、Sledgehammer からのこちらのプレゼンテーションを参照してください。Call of Duty WWII におけるマテリアルの進化。