シャドウマスクモード
Distance Shadowmask

シャドウマスク 

ShadowmaskShadowmask ライティングモードの 1 つです。シーンのすべての混合ライトに共有されます。 混合ライティングに Shadowmask を設定する手順は以下のとおりです。

  • Lighting ウィンドウを開き ( Window > Lighting > Settings )、Scene タブをクリックします。 Mixed LightingLighting ModeShadowmask に設定します。
  • 次に、 Quality Settings ( Edit > Project Settings > Quality ) を開きます。 Shadowmask ModeShadowmask に設定します。

シャドウマスクモードに関して詳しくは 混合ライティング のドキュメントを参照してください。他のモードに関しては ライティングモード を参照してください。

シャドウマスクは、対応するライトマップと同じ UV レイアウトと解像度を共有するテクスチャです。テクスチャは現在の GPU で最大 4 チャンネルに制限されているため、シャドウマスクは、テクセルあたり最大4 つのライトのオクルージョン情報を保存します。

Unity は静的ゲームオブジェクトから他の静的ゲームオブジェクトに投げる影を事前に計算し、それらを最大 4 つの重なり合うライトの情報をもつ別々のシャドウマスクテクスチャに格納します。4つ以上のライトが重なった場合、余分のライトはベイクしたライティングに代替え処理されます。 どのライトをベイクしたライトにするかはベイクのシステムによって決定され、重なっているライトの 1 つが変更されない限り、ベイク全体で一貫しています。 ライトプローブ も、最大 4 つのライトの同じ情報が渡されます。

ライトの重なりは、影を受けるオブジェクトと無関係に計算されます。ですから、それらのライトのバウンディングボリュームが空間の点で重ならない限り、1 つのオブジェクトが、すべてが同じシャドウマスクやプローブチャンネルから来る 10 の異なる混合ライトの影響を受けることが可能です。ライトが重なる場合は、より多くのチャンネルが使用されます。そして、4 チャンネルがすでに割り当てられているときにライトが重なる場合は、ライトは完全にベイクされるように代替え処理されます。

__シャドウマスクモード__ では、

  • Shadow Distance ( Edit > Project Settings > Quality > Shadows ) にかかわらず、静的ゲームオブジェクトは、シャドウマスクをとおして他の静的ゲームオブジェクトから影を受けます。また、静的ゲームオブジェクトは動的ゲームオブジェクトからも影を受けます。ただし、 Shadow Distance 内の静的ゲームオブジェクトに限ります。

  • 動的ゲームオブジェクトは、シャドウマップをとおして Shadow Distance 内にある他の動的ゲームオブジェクトから影を受けます。また、動的ゲームオブジェクトは、ライトプローブをとおして、静的ゲームオブジェクトからも影を受けます。影の忠実度は、シーンのライトプローブの密度と、Mesh Renderer で選択した Light Probes のモードによります。

Unity は自動的に静的、動的ゲームオブジェクトから重なるシャドウを合成します。なぜなら、シャドウマスク (静的なゲームオブジェクトのライティングとシャドウの情報を格納) とシャドウマップ (動的ゲームオブジェクトのライティングとシャドウの情報を格納) は、オクルージョン情報をエンコードするだけだからです。

シャドウマスク モードの良い使用例は、スペキュラーマテリアル、ソフトベイクした影、カメラにあまり近くない場所にある動的に影を投げるオブジェクトを使って、ほとんど完全に静的なシーンを構築する場合です。その他の良い使用例は、ベイクした影が地平線までのびるオープンワールドのシーンで、昼夜のサイクルなどのような動的なライティングがないものです。

シャドウ

以下の表は、 シャドウマスク モードを使用するとき、静的ゲームオブジェクトと動的ゲームオブジェクトがどのようにシャドウを投げる/受けるかを示しています。

動的なオブジェクトがシャドウを受ける
動的ゲームオブジェクトが他の静的/動的なゲームオブジェクトからシャドウを受ける
静的なオブジェクトがシャドウを受ける
静的ゲームオブジェクトが他の静的/動的なゲームオブジェクトからシャドウを受ける
シャドウディスタンス範囲内 シャドウディスタンスを超える場合 シャドウディスタンス範囲内 シャドウディスタンスを超える場合
動的なオブジェクトがシャドウを投影
動的ゲームオブジェクトからシャドウを投げます。
シャドウマップ - シャドウマップ -
静的なオブジェクトがシャドウを投影
静的ゲームオブジェクトからシャドウを投げます。
ライトプローブ ライトプローブ シャドウマスク シャドウマスク

Shadowmask モードの長所と短所

シャドウマスク モードのパフォーマンス要件は、中低レベルの PC やモバイルデバイス向けのビルドに適しています。以下は、シャドウマスク モードを使用する際の最も重要な長所と短所です。

長所

  • リアルタイムライティング と同様のビジュアル効果を提供します。

  • 動的ゲームオブジェクトから静的ゲームオブジェクトに、リアルタイムのシャドウを投影します。

  • シェーダーの 1 つのテクスチャ操作で、静的ゲームオブジェクトのすべてのライティングとシャドウを処理します。

  • 静的および動的ゲームオブジェクトからの重なるシャドウを自動的に合成します。

  • Shadowmask モードは静的ゲームオブジェクトをシャドウマップにレンダリングしないため、中から低レベルのパフォーマンスの要件です。

  • 間接ライティングを提供します。

短所

  • ライトプローブを使用して、静的なゲームオブジェクトから動的ゲームオブジェクトへ低解像度のシャドウしか作成できません。

  • 最多で 4 つの重複するライトボリュームしか使用できません (詳しくは、 混合ライティング) の技術的な詳細を参照)。

  • ライトマップのテクスチャセットに関して、より高いメモリ要件を必要とします。

  • シャドウマスクテクスチャに関して、より高いメモリ要件を必要とします。


  • 2017–09–18 限られた 編集レビュー で修正されたページ

  • Light Modes、 5.6に追加

  • ライトの重複の計算に関する説明は Unity 2017.1 に追加

シャドウマスクモード
Distance Shadowmask