このページでは、シーンで Lighting Settings Asset を使用し、その Lighting Mode プロパティが Shadowmask に設定される場合の、シーンのすべての Mixed Lights (混合ライト) の動作について説明します。
Similar to Baked Indirect Lighting Mode, Shadowmask Lighting Mode combines real-time direct lighting with baked indirect lighting. However, Shadowmask Lighting Mode differs from Baked Indirect Lighting Mode in the way that it renders shadows. Shadowmask Lighting Mode allows Unity to combine baked and real-time shadows at runtime, and to render shadows in the far distance. It does this by using an additional lightmap Texture known as a shadow mask, and by storing additional information in Light Probes.
Shadowmask ライティングモードは、すべてのライティングモードの中で忠実度が最も高い影を提供しますが、パフォーマンスコストとメモリ要件が最も高くなります。ハイエンドや平均的なハードウェアで、オープンワールドなど、遠くにあるゲームオブジェクトを表示するリアルなシーンをレンダリングするのに適しています。
See render pipeline feature comparison for more information about support for Shadowmask Lighting Mode across render pipelines.
Shadowmask ライティングモードには以下の品質設定があります。
シーンのライティングモードを Shadowmask に設定し、プロジェクトが品質設定で Distance Shadowmask を使用する場合、混合ライトは以下のように動作します。
シーンのライティングモードを Shadowmask に設定し、プロジェクトが品質設定で Shadowmask を使用する場合、混合ライトは以下のように動作します。
ビルトインレンダーパイプラインでは以下を行います。
HD レンダーパイプラインでは以下を行います。
HDRP の Shadowmask ライティングモード ドキュメントを参照してください。
Shadow Distance プロパティを使用して、Unity がリアルタイムの影 (シャドウ) を描画するカメラからの距離制限を決定します。
ランタイムに、Unity はシャドウマスクを使用して、ピクセルを影にするかどうかを判断します。シャドウマスクのテクスチャには、ベイクしたライトに関するオクルージョン情報が含まれます。シャドウマスクは同じ UV レイアウトと解像度を対応するライトマップと共有します。シャドウマスクには、テクセルごとに最大 4 つのライトのオクルージョン情報が RGBA 形式で含まれます。
4 つ以上のライトが重なった場合、余分のライトはベイクしたライティングに代替処理されます。どのライトをベイクしたライトにするかはベイクのシステムによって決定され、重なっているライトの 1 つが変更されない限り、ベイク全体で一貫しています。ライトプローブも、最大 4 つのライトの同じ情報を取得します。
ライトの重なりは、影を受けるオブジェクトと無関係に計算されます。ですから、それらのライトのバウンディングボリュームが空間の点で重ならない限り、1 つのオブジェクトが、すべてが同じシャドウマスク/プローブのチャンネルから来る 10 の異なる混合ライトの効果を受けることが可能です。ライトが重なる場合は、より多くのチャンネルが使用されます。そして、4 チャンネルがすべてすでに割り当てられているときにライトが重なる場合は、そのライトは完全にベイクされるように代替処理されます。