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 修正されたページ
Light Modes、 5.6に追加
ライトの重複の計算に関する説明は Unity 2017.1 に追加
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.