このページでは、シーンで Lighting Settings Asset を使用し、その Lighting Mode プロパティが Shadowmask に設定される場合の、シーンのすべての Mixed Lights (混合ライト) の動作について説明します。
ベイクされた間接ライティングモード と同様に、Shadowmask ライティングモードは、リアルタイムの直接ライティングとベイクされた間接ライティングを組み合わせます。ただし、Shadowmask ライティングモードは、影をレンダリングする方法が Baked Indirect ライティングモードと異なります。Shadowmask ライティングモードでは、ランタイムにベイクした影とリアルタイムの影を組み合わせて、距離が離れた場所に影をレンダリングすることができます。これを行うには、シャドウマスクと呼ばれる追加のライトマップテクスチャを使用し、ライトプローブ に追加情報を格納します。Unity はシャドウマスクとベイクされた影の Light Probe オクルージョンデータを生成します。
Shadowmask ライティングモードは、すべてのライティングモードの中で忠実度が最も高い影を実現しますが、パフォーマンスコストとメモリ要件が最も高くなります。ハイエンドや平均的なハードウェアで、オープンワールドなど、遠くにあるゲームオブジェクトを表示するリアルなシーンをレンダリングするのに適しています。
レンダーパイプライン間での Shadowmask ライティングモードのサポートについては、レンダーパイプライン機能比較 を参照してください。
Quality Settings パネルを使用して、Unity がランタイムに使用するシャドウマスクモードを設定します。
シーンのライティングモードを Shadowmask に設定し、プロジェクトが品質設定で Distance Shadowmask を使用する場合、混合ライトは以下のように動作します。
シーンのライティングモードを Shadowmask に設定し、プロジェクトが品質設定で Shadowmask を使用する場合、混合ライトは以下のように動作します。
ビルトインレンダーパイプラインでは以下を行います。
HD レンダーパイプラインでは以下を行います。
HDRP の Shadowmask ライティングモード ドキュメントを参照してください。
Shadow Distance プロパティを使用して、Unity がリアルタイムの影 (シャドウ) を描画するカメラからの距離制限を決定します。
ランタイムに、Unity はシャドウマスクを使用して、ピクセルを影にするかどうかを判断します。シャドウマスクのテクスチャには、ベイクしたライトに関するオクルージョン情報が含まれます。シャドウマスクは同じ UV レイアウトと解像度を対応するライトマップと共有します。シャドウマスクには、テクセルごとに最大 4 つのライトのオクルージョン情報が RGBA 形式で含まれます。
4 つ以上のライトが重なった場合、余分のライトはベイクしたライティングに代替処理されます。どのライトをベイクしたライトにするかはベイクのシステムによって決定され、重なっているライトの 1 つが変更されない限り、ベイク全体で一貫しています。ライトプローブも、最大 4 つのライトの同じ情報を取得します。
ライトの重なりは、影を受けるオブジェクトと無関係に計算されます。ですから、それらのライトのバウンディングボリュームが空間の点で重ならない限り、1 つのオブジェクトが、すべてが同じシャドウマスク/プローブのチャンネルから来る 10 の異なる混合ライトの効果を受けることが可能です。ライトが重なる場合は、より多くのチャンネルが使用されます。そして、4 チャンネルがすべてすでに割り当てられているときにライトが重なる場合は、そのライトは完全にベイクされるように代替処理されます。