Shadowmask ライティングモード
HD レンダーパイプライン (High Definition Render Pipeline、HDRP) は、静的ゲームオブジェクトにライトマッパーの事前計算されたシャドウを作る一方で、非静的ゲームオブジェクトにリアルタイムのライトをプロセスする、Shadowmask (シャドウマスク) ライティングモードをサポートしています。HDRP はまた、 ベイクされた間接 混合ライティングモードもサポートしています。混合ライティングおよびシャドウマスクの詳細は、混合ライティングモード and Shadowmask を参照してください。
シャドウマスクの使用
HDRP でシャドウマスクを使用には、プロジェクトがシャドウマスクをサポートするように設定する必要があります。その手順は以下の通りです。
プロジェクトの各クオリティレベルに対して、Distance Shadowmask を有効にします。
- Project Settings ウィンドウを開き (メニュー: Edit > Project Setting) Quality タブを選択します。
- Level を選択し (例えば "Medium" など)、Shadows セクションで Shadowmask Mode を Distance Shadowmask に設定します。
- これを各 Quality Level で行います。
プロジェクトの HDRP Asset で Shadowmask プロパティを有効にします。
- Project ウィンドウで HDRP Asset を選択し Inspector で表示します。
- Lighting セクションへ行き、Shadow に行きます。
- Shadowmask を有効にします。
シーンがシャドウマスクとベイクされたグローバルイルミネーションを使うように設定します。
- Lighting ウィンドウを開きます (メニュー: Window > Rendering > Lighting Settings)。
- Mixed Lighting セクションで Baked Global Illumination を有効にして、Lighting Mode を Shadowmask に設定します。
カメラがシーンをレンダリングするときにシャドウマスクを使うようにします。これをカメラのデフォルト動作に設定するには、
- Project Settings ウィンドウを開き (メニュー: Edit > Project Settings)、HDRP Default Settings タブを選択します。
- Frame Settings セクションで、カメラに Default Frame Settings For を設定します。
- Lighting セクションで Shadowmask を有効にします。
オプションとして、リフレクションプローブ がベイクされた、またはリアルタイムリフレクションにシャドウマスクを使うようにすることができます。この設定は、ステップ 3 と同じ手順を踏みますが、Default Frame Settings For を Baked Or Custom Reflection または Realtime Reflection に設定します。
これで ライト で混合モードを選択した際、ライトマッパーがライトが影響を与える静的ゲームオブジェクトに対して、シャドウマスクを事前計算します。
シャドウマスクモード
柔軟なライティング設定を実現するため、HDRP では各ライトに対するシャドウマスクの動作を選択することができます。シャドウマスクの動作を変更するには、ライトの Shadowmask Mode (シャドウマスクモード) プロパティを設定します。まずライトのモードを Mixed に設定してから、Shadows > Shadow Map へ行き、シャドウマスクモードに希望する動作を設定します。各シャドウマスクモードの動作に関する情報は、以下の表を参照してください。
シャドウマスクモード | 説明 |
---|---|
Distance Shadowmask | カメラとライトの距離がフェード距離よりも小さいときに、ライトはすべてのゲームオブジェクトにリアルタイムの影を落とします。このプロパティーが表示されない場合は、Shadows セクションの 追加オプション を展開してください。ライトとカメラの距離がフェード距離よりも大きい場合、HDRP はライトに対するリアルタイムシャドウの計算を停止し、代わりに静的ゲームオブジェクトにシャドウマスクを使い、非静的ゲームオブジェクトは影を落としません。ディレクショナルライトはフェード距離を使わず、既存の 最大シャドウ距離 を使います。 |
Shadowmask | ライトは非静的ゲームオブジェクトのみにリアルタイムの影を落とします。さらにカメラとライトの距離がフェード距離よりも小さいときに、これらのシャドウを静的ゲームオブジェクト用のシャドウマスクと組み合わせます。ライトとカメラの距離がフェード距離よりも大きい場合は、HDRP はライトに対するリアルタイムシャドウの事前計算を停止します。静的ゲームオブジェクトにシャドウマスクを使い、非静的ゲームオブジェクトは影を落としません。 |
詳細
Distance Shadowmask はより GPU に負荷がかかりますが、ライトにより近いリアルタイムライティングがシャドウマスクよりも正確なため、より現実的に見えます。低解像度のテクスチャは、遠くにあるエリアを表現します。
シャドウマスクはよりメモリーに負荷がかかります。これはカメラがシャドウマスクテクスチャを、カメラに近い静的ゲームオブジェクトに使うため、より大きな解像度のシャドウマスクテクスチャが必要となるためです。