Shadowmask は Shadowmask ライティングモードの 1 つです。シーンのすべての混合ライトに共有されます。 混合ライティングに Shadowmask を設定する手順は以下のとおりです。
このライティングモードに関して詳しくは 混合ライティング のドキュメントを参照してください。他のモードに関しては ライティングモード を参照してください。
シャドウマスクは、対応するライトマップと同じ UV レイアウトと解像度を共有するテクスチャです。テクスチャは現在の GPU で最大 4 チャンネルに制限されているため、テクセルあたり最大4 つのライトのオクルージョン情報を保存します。
Unity は静的ゲームオブジェクトから他の静的ゲームオブジェクトに投影する影を事前に計算し、最大 4 つの重なり合うライト情報を格納するために、それらを別々のシャドウマスクテクスチャに格納します。4つ以上のライトが重なった場合、余分のライトは ベイクしたライティング に代替え処理されます。どのライトをベイクするかはベイクのシステムによって決定され、重なっているライトの 1 つが変更されない限り、ベイク全体で一貫しています。 ライトプローブ も、最大 4 つのライトの同じ情報を取得します。
ライトの重なりは、影を受けるオブジェクトと無関係に計算されます。ですから、それらのライトのバウンディングボリュームが空間の点で重ならない限り、1 つのオブジェクトが、すべてが同じシャドウマスク/プローブのチャンネルから来る 10 種類の混合ライトの効果を受けることが可能です。ライトが重なる場合は、より多くのチャンネルが使用されます。そして、4 チャンネルがすべてが割り当てられているときにライトを重ねる場合は、そのライトはベイクされ、代替え処理されます。
Shadowmask では、
Shadow Distance (Edit > Project Settings に移動し、Quality カテゴリを選択し Shadows セクションに移動) にかかわらず、静的ゲームオブジェクトは、シャドウマスクをとおして他の静的ゲームオブジェクトから影を受けます。また、静的ゲームオブジェクトは動的ゲームオブジェクトからも影を受けます。ただし、 Shadow Distance 内の静的ゲームオブジェクトに限ります。
動的ゲームオブジェクトは、シャドウマップをとおして シャドウディスタンス 内にある他の動的ゲームオブジェクトから影を受けます。また、動的ゲームオブジェクトは、ライトプローブをとおして、静的ゲームオブジェクトからも影を受けます。影の忠実度は、シーンのライトプローブの密度と、Mesh Renderer で選択した Light Probes のモードによって異なります。
Unity は自動的に静的、動的ゲームオブジェクトから重なる影を合成します。なぜなら、シャドウマスク (静的なゲームオブジェクトのライティングと影の情報を格納) とシャドウマップ (動的ゲームオブジェクトのライティングと影の情報を格納) は、オクルージョン情報をエンコードするだけだからです。
Shadowmask モードの良い使用例は、スペキュラーマテリアル、ソフトベイクした影、カメラにあまり近くない場所にある動的に影を投影するオブジェクトを使って、ほとんど完全に静的なシーンを作る場合です。その他の良い使用例は、ベイクした影が地平線までのびるオープンワールドのシーンで、昼夜のサイクルのような動的なライティングがないものです。
以下の表は、 シャドウマスク モードを使用するとき、静的ゲームオブジェクトと動的ゲームオブジェクトがどのように影を投げる/受けるかを示しています。
動的なオブジェクトが影を受ける 動的ゲームオブジェクトが他の静的/動的なゲームオブジェクトから影を受ける |
静的なオブジェクトが影を受ける 静的ゲームオブジェクトが他の静的/動的なゲームオブジェクトから影を受ける |
|||
---|---|---|---|---|
Shadow Distance 範囲内 | Shadow Distance を超える場合 | Shadow Distance 範囲内 | Shadow Distance を超える場合 | |
動的なオブジェクトが影を投影 動的ゲームオブジェクトから影を投げます。 |
シャドウマップ | - | シャドウマップ | - |
静的なオブジェクトが影を投影 静的ゲームオブジェクトから影を投げます。 |
Light Probes | Light Probes | シャドウマスク | シャドウマスク |
Shadowmask モードのパフォーマンス要件は、平均的な PC やローエンドから平均的な PC 、モバイルデバイス向けのビルドに適しています。以下は、Shadowmask モードを使用する際の最も重要な長所と短所です。
リアルタイムライティング と同様の視覚効果を提供します。
動的ゲームオブジェクトから静的ゲームオブジェクトに、リアルタイムの影を投影します。
シェーダーの 1 つのテクスチャ操作で、静的ゲームオブジェクトのすべてのライトと影を処理します。
静的および動的ゲームオブジェクトからの重なる影を自動的に合成します。
Shadowmask モードは静的ゲームオブジェクトをシャドウマップにレンダリングしないため、中から低レベルのパフォーマンスの要件です。
間接ライトを提供します。
ライトプローブを使用して、静的なゲームオブジェクトから動的ゲームオブジェクトへ低解像度の影しか作成できません。
最多で 4 つの重複するライトしか使用できません (詳しくは、 混合ライティング) の「技術的な詳細」を参照)。
ライトマップのテクスチャセットに関して、より高いメモリ要件を必要とします。
シャドウマスクテクスチャに関して、より高いメモリ要件を必要とします。
2017–09–18 Page amended
Light Modes、 5.6に追加
ライトの重複の計算に関する説明は Unity 2017.1 に追加