教育事業部の事業内容 演劇、音楽のタレント並びに作詞家、作曲家、編曲家等アーティストの育成及びマネージメント、コンピュータ教室の経営等を行っています。
教育事業 パルテア

〜Unity Graphics Lighting 照明設定 照明モード: シャドウマスク〜 #ゲームプログラミング #ゲーム制作 #unity2d #graphics #lighting

照明モード: シャドウマスク

このページでは、シーンが Lighting Mode プロパティを Shadowmask に設定した Lighting Settings アセットを使用する場合の、シーン内のすべての混合ライトの動作について説明します。

ベイクされた間接ライティング モードと同様に、シャドウマスク ライティング モードは、リアルタイムの直接ライティングとベイクされた間接ライティングを組み合わせます。ただし、シャドウマスク ライティング モードは、シャドウをレンダリングする方法がベイク処理された間接ライティング モードとは異なります。シャドウマスク ライティング モードを使用すると、Unity で実行時にベイク処理されたシャドウとリアルタイムのシャドウを組み合わせて、遠くにあるシャドウをレンダリングできるようになります。これは、シャドウ マスクとして知られる追加のライトマップ テクスチャを使用し、追加情報をライト プローブに保存することによって行われます。

シャドウマスク ライティング モードは、すべてのライティング モードの中で最も忠実なシャドウを提供しますが、パフォーマンス コストとメモリ要件が最も高くなります。ハイエンドまたはミッドレンジのハードウェアで、オープンワールドなど、遠くにあるゲームオブジェクトが見えるリアルなシーンをレンダリングするのに適しています。

レンダーパイプラインのサポート

レンダー パイプライン全体でのシャドウマスク ライティング モードのサポートの詳細については、「レンダー パイプラインの機能の比較」を参照してください。

シャドウマスクの品質設定

シャドウマスク ライティング モードには次の品質設定があります。

ディスタンス シャドウマスクは、より高いパフォーマンス コストでより忠実度の高いシャドウを提供します。
シャドウマスクは、より低いパフォーマンス コストで、より忠実度の低いシャドウを提供します。

混合光の動作

距離シャドウマスクの品質設定を使用する場合

シーンのライティング モードをシャドウマスクに設定し、プロジェクトで距離シャドウマスク品質設定を使用すると、混合ライトは次のように動作します。

混合ライトで照らされた動的ゲームオブジェクトは以下を受け取ります:
リアルタイムの直接照明。
ライトプローブを使用して間接照明をベイクしました。
シャドウ マップを使用して、シャドウ ディスタンスまでの動的なゲームオブジェクトからのリアルタイム シャドウ。
シャドウ マップを使用した、静的なゲームオブジェクトからのシャドウ ディスタンスまでのリアルタイム シャドウ。
ライト プローブを使用して、シャドウ ディスタンスを超えて静的ゲームオブジェクトからシャドウをベイク処理します。
混合ライトで照らされた静的ゲームオブジェクトは以下を受け取ります:
リアルタイムの直接照明。
ライトマップを使用した、ベイク処理された間接照明。
シャドウ マップを使用して、シャドウ ディスタンスまでの動的なゲームオブジェクトからのリアルタイム シャドウ。
シャドウ マップを使用した、静的なゲームオブジェクトからのシャドウ ディスタンスまでのリアルタイム シャドウ。
シャドウ マスクを使用して、シャドウ ディスタンスを超えて静的ゲームオブジェクトからシャドウをベイク処理します。

シャドウマスク品質設定の場合

シーンのライティング モードをシャドウマスクに設定し、プロジェクトでシャドウマスク品質設定を使用すると、混合ライトは次のように動作します。

混合ライトで照らされた動的ゲームオブジェクトは以下を受け取ります:
リアルタイムの直接照明。
ライトプローブを使用して間接照明をベイクしました。
シャドウ マップを使用して、シャドウ ディスタンスまでの動的なゲームオブジェクトからのリアルタイム シャドウ。
ライト プローブを使用して静的ゲームオブジェクトからシャドウ ディスタンスまで、およびシャドウ ディスタンスを超えてシャドウをベイク処理します。
混合ライトで照らされた静的ゲームオブジェクトは以下を受け取ります:
リアルタイムの直接照明。
ライトマップを使用した、ベイク処理された間接照明。
シャドウ マップを使用して、シャドウ ディスタンスまでの動的なゲームオブジェクトからのリアルタイム シャドウ。
シャドウ マスクを使用して、シャドウ ディスタンスまでおよびそれを超えて静的ゲームオブジェクトからシャドウをベイク処理します。

シーンのライティング モードをシャドウマスクに設定する

組み込みのレンダー パイプラインでは次のようになります。

シーンの照明設定アセットを選択します。
インスペクターで、「混合照明」に移動します。
ドロップダウン メニューを使用して、照明モードをシャドウマスクに設定します。
[品質設定] を開きます (メニュー: [編集] / [プロジェクト設定] を選択し、[品質] カテゴリを選択します)。
[シャドウマスク モード] ドロップダウン メニューを使用して、[シャドウマスク] または [シャドウマスク距離] を選択します。

HDRP の場合:

HDRP シャドウマスク ライティング モードのドキュメントの指示に従ってください。

シャドウと実行時のパフォーマンス

Shadow Distance プロパティを使用して、Unity がリアルタイムのシャドウを描画する距離を制限できます。

シャドウマスク実装の詳細

実行時に、Unity はシャドウ マスクを使用して、ピクセルがシャドウ内にあるかどうかを判断します。シャドウ マスク テクスチャには、ベイク処理されたライトに関するオクルージョン情報が含まれています。対応するライトマップと同じ UV レイアウトと解像度を共有します。これには、RGBA 形式で保存された、テクセルごとに最大 4 つのライトのオクルージョン情報が含まれています。

4 つ以上のライトがオーバーラップする場合、追加のライトはベイク処理されたライティングに戻ります。ベイク処理システムは、どのライトがベイク処理されたライティングにフォールバックするかを決定します。これは、重複するライトの 1 つを変更しない限り、ベイク間で一貫性を保ちます。ライト プローブは、最大 4 つのライトについても同じ情報を受け取ります。

Unity は、影を受けるオブジェクトとは独立して光の重なりを計算します。したがって、オブジェクトは、それらのライト境界ボリュームが空間内のどの点でも重ならない限り、同じシャドウマスク/プローブ チャネルからすべて 10 個の異なる混合ライトの影響を受けることができます。一部のライトが重なる場合、Unity はより多くのチャネルを使用します。また、4 つのチャネルすべてがすでに使用されているときにライトがオーバーラップした場合、そのライトは完全にベイクされた状態に戻ります。

    unity

  • 日時:// ~ //
  • 名称:
  • 場所:
  • 料金:¥0 (消費税込)