Unity | HDRP 高解像度レンダリング パイプライン検討メモ: HDRP ライティング システム (2)

目次

1. 光源の種類とモード

1. ライトコンポーネント

1.1 一般

1.1.1 LightLayer(ライトレイヤー)

1.2 発光(光の設定)

1.3 影

2、Light Layer(光源の重ね合わせ)

3. ライトプローブ 

1. ライトプローブグループのコンポーネント

2. ライトプローブを使用するための基本手順

3. プローブのブレンド VS メッシュ レンダラー コンポーネントの LightProbes でのプロキシ ボリュームの使用

3.1 ブレンドプローブ

3.2 プロキシボリュームの使用

3.2.1 ライトプローブプロキシボリュームコンポーネント

リフレッシュモード

品質

バウンディングボックスモード

境界ボックスの設定

プロキシ ボリュームの解像度 (プロキシ ボリュームの解像度)

プローブ位置モード

4. Mesh Renderer コンポーネントの Anchor Override パラメータ

5. 設定インターフェースの GI キャッシュ

4 番目に、Reflection Probe を使用してシーンの反射情報を提供します。

1. HDRPが反射情報を生成する順序

2.Screen Space Reflection(スクリーンスペースリフレクション)

2.1 ボリュームが過負荷になった画面スペースの反射

2.1.1 スクリーン スペース反射パラメータの概要

2.1.2 SSRの制限事項

3. リフレクションプローブ(反射プローブ)

3.1 リフレクションプローブ(反射プローブ)

3.1.1 反射プローブのアセンブリ

3.1.2 平面反射プローブ

4.空の反射

5、HDRPシャドウ

1. HDRP における影の分類と照明モード

2. 混合モードでキャストされる混合シャドウ

2.1 照明設定ウィンドウの混合照明オプション

2.2 シーン内の光源を混合モードに設定する方法

2.3 光源のシャドウマスクモード

 2.3.1 光源のシャドウマスク モードが距離シャドウマスクに設定されている場合:

2.3.2 光源のシャドウマスクモードをシャドウマスクに設定する場合:

2.3.3 距離シャドウマスクとシャドウマスクのパフォーマンスへの影響

2.4 影の最大投影距離の設定


1. 光源の種類とモード

        「標準」または「標準 (スペキュラ セットアップ)」シェーダを使用する場合、マテリアルの [放出入力] パラメータを使用して、メッシュを放出マテリアルによって制御される光源に変えることができます。

1. ライトコンポーネント

        Light コンポーネントのパラメータは、General (一般設定)、Shape (ライトの形状)、Emission (照明設定)、Volumetrics (ボリューム ライト)、Shadows (シャドウ) の 5 つの部分に分かれています。

1.1 一般

1.1.1 LightLayer(ライトレイヤー)

        光源階層化機能を使用するには、まず HDRP 設定ファイルで Light Layer 機能を有効にする必要があります。

        [全般] の右側にある ︙ をクリックし、[追加プロパティを表示] を選択してこのパラメータを表示します。このパラメータを使用して、現在のライトがシーン内のどのオブジェクトに光を当てるかを制御します。以下、詳しく説明する。

1.2 発光(光の設定)

        色温度を使用して光の色を制御する利点は、光の色を設定するために推測する必要がなく、物理世界の基準値を通じて色温度を設定できるため、正しい光の色が得られることです。

        [放出] の右側にある ︙ をクリックし、[追加プロパティを表示] を選択して、現在の光源の形状に関連する追加パラメータを開きます。

1.3

        コンタクト シャドウの使用に関する提案は、これがケーキのディテール シャドウの飾りであるということです。コンタクト シャドウ オプションがオンになっているためにゲームのパフォーマンスが低下している場合、または明らかなシャドウの欠陥がある場合は、このオプションを無効にすることを選択できます。または不透明度(透明度)を下げます。これにより、コンタクト シャドウによるアーティファクトが目立ちにくくなります。

2、Light Layer(光源の重ね合わせ)

        HDRP では、Light Layer (光源階層化) 機能を使用して次のことを行うことができます。

  1. 光源がシーン内の指定されたオブジェクトのみを照らし、影を落とします。
  2. 光源が指定されたオブジェクトのみを照らし、他のオブジェクトが影を落とすようにします。

        光源階層化機能を使用するには、まず HDRP 設定ファイルで Light Layer 機能を有効にする必要があります。ProjectSetting->Graphics->HDRP Globalsetting インターフェイスでは、デフォルトで、Light Layer デフォルト、Light Layer 1 から Light Layer7 までの 8 つのレイヤが提供されます。

        ライトレイヤーを使用する場合、ライトレイヤーを受光オブジェクトに適用した後、オブジェクトの周囲の光源の分布に注意する必要があります。受光オブジェクトが配置されているライトレイヤーが光源にも割り当てられている場合にのみ、光源は該当する受光オブジェクトを照らすことができるためです。

3. ライトプローブ 

        シーン内の静的オブジェクトの間接照明情報をベイクすることはできますが、シーン内の動的オブジェクトに間接照明情報を提供するにはどうすればよいでしょうか? 答えは、ライトプローブを使用することです。もちろん、ライト プローブの役割は、動的オブジェクトの間接照明情報を提供することだけではありません。

        ライトプローブの具体的な機能は次のとおりです。

  1. 静的オブジェクト (LOD を含む) の間接照明情報を提供します。
  2. シーン内の小さなオブジェクトの間接照明情報を提供します。これらの小さなオブジェクトがライトマップのベイク処理に参加できるようにすると、ライトマップが占有するスペースによってライトマップのサイズが増加し、メモリ使用量の増加につながり、パフォーマンスに影響を与えることになります。そのため、これらの小さなオブジェクトが間接的に取得できるようにすることができます。ライトプローブからの点灯情報です。

1. ライトプローブグループのコンポーネント

  • ライトプローブの編集ボタン

        [ライト プローブの編集] ボタンをクリックしないと、以下のすべてのパラメータとボタンが無効になります。これらのパラメータとボタンを有効にするには、このボタンをクリックします。

  • ワイヤーフレームを表示

        上の例で黄色のライト プローブの接続に使用されている紫色のワイヤフレームは、表示または非表示にすることができます。

  • 着信音を削除する

        このオプションはデフォルトで有効になっています。明暗のコントラストが強い状況では「リンギング」が発生することがあります。

球体の裏側にある光の点がいわゆる「リンギング」です。
  • 選択されたプローブ位置 (選択されたライト プローブの位置)

        シーン内でライト プローブを選択すると、その現在のワールド座標情報がここに表示されます。

  • プローブの追加

        新しいライト プローブを既存のライト プローブ セットに追加します。

  • すべて選択

        グループ内のすべてのライト プローブを選択します。

  • 選択を削除 (選択したプローブを削除)

        グループ内で選択された 1 つまたは複数のライト プローブを削除します。

  • 選択したものを重複して選択

        グループ内で選択された 1 つ以上のライト プローブを複製します。

2. ライトプローブを使用するための基本手順

  1. モデル メッシュのメッシュ レンダラー コンポーネントの [グローバル イルミネーションの貢献] オプションを有効にすると、メッシュがグローバル イルミネーションのベイク処理に参加できるようになります。
  2. Receive Global Illumination (グローバル ライトを取得する方法) をライトマップではなくライト プローブに設定します。ライト プローブから間接照明情報を取得するように設定されているため、ライト マップのスペースを節約し、実行時のメモリ使用量を節約するために、ベイク処理によってグリッド自体によって取得された間接照明情報はライト マップには保存されません。
  3. ライト プローブ グループの作成 (ライト プローブ グループ): メニューの GameObject→Light→Light Probe Group を使用して、シーンにライト プローブ グループを作成します。
  4. 間接光の生成はライト ベイク処理によって完了します。ライト プローブの間接光情報はライト ベイク処理から得られるため、ライト プローブを機能させるには、まずシーン全体のベイク処理を完了する必要があります。
  5. ライトプローブグループを調整する場合は、次の 3 つの点に注意する必要があります。
    1. 位置の移動、グループ内のライト プローブの追加/削除/変更など、ライト プローブ グループを調整した場合は、シーンを再ベイクする必要があります。この方法でのみ、修正されたライト プローブは正しい間接照明情報を取得できます。
    2. シーン内のオブジェクトがライトマップからグローバル イルミネーション情報を取得するように設定されていない場合、デフォルトでライト プローブが間接イルミネーション情報を取得するために使用されます。
    3. ライトプローブの配置には特定の原則があり、そうでないと損傷が発生しやすくなります。
  6. 明暗の交差点にさらに多くのライトプローブを配置します。

3. プローブのブレンド VS メッシュ レンダラー コンポーネントの LightProbes でのプロキシ ボリュームの使用

3.1 ブレンドプローブ

        Mesh Renderer コンポーネントの Blend Probes メソッドを使用すると、オブジェクトは周囲の 4 つのライト プローブをサンプリングしますが、最終的に取得される間接光の色は 1 つだけになります。オブジェクトが小さい場合、これは許容されます。ただし、ライト プローブの影響を受けるオブジェクトのボリュームが大きい場合、単一の間接光カラーをオブジェクト表面全体に適用すると、不正確な間接照明効果が生成されます。

3.2 プロキシボリュームの使用

3.2.1 ライトプローブプロキシボリュームコンポーネント

        メッシュ レンダラー コンポーネントのライト プローブで [プロキシ ボリュームの使用] を選択した場合、プロキシ ボリューム オーバーライドのライト プローブ プロキシ ボリューム コンポーネントを使用してオブジェクトを設定する必要があります。

        ライト プローブ プロキシ ボリューム コンポーネントは、指定されたバウンディング ボリューム (バウンディング ボリューム) 内に 3 次元空間グリッドを生成できます。これには、補間によって置き換えられたライト プローブが含まれます。補間によって置き換えられたこれらのライト プローブは 3D テクスチャにアップロードされ、システムはこの 3D テクスチャをサンプリングします。これにより、最終的にオブジェクトの表面で得られる間接光にグラデーション効果が与えられ、オブジェクトの表面が正しい間接照明情報を取得します。

  • リフレッシュモード

        自動 (自動的に更新)、すべてのフレーム (フレームごとに更新)、およびスクリプト経由 (スクリプトによる更新) モードが含まれます。

  • 品質

        Low (低品質) と Normal (通常の品質)。

  • バウンディングボックスモード
  1. 自動ローカル(自動ローカル空間): システムはローカル空間に現在のオブジェクトを囲むバウンディング ボックスを自動的に生成し、現在のオブジェクト レベルのライト プローブ アトリビュートの値をプロキシ ボリュームを使用に設定します。
  2. 自動ワールド(自動ワールド空間): システムは、現在のオブジェクトを囲むバウンディング ボックスをワールド空間に自動的に生成し、現在のオブジェクト レベルのライト プローブ アトリビュートの値を「プロキシ ボリュームを使用」に設定します。
  3. カスタム (カスタム): 設定したサイズと原点に従ってバウンディング ボックスを生成します。
  • 境界ボックスの設定
  1. サイズ: 境界ボックスのサイズを定義します。
  2. 原点: 境界ボックスの原点を定義します。
  • プロキシ ボリュームの解像度 (プロキシ ボリュームの解像度)
  1. 解像度モード: 自動 (自動) モードを選択することもできます。このとき、システムは XYZ のユニットごとの補間によって置き換えられるライト プローブのデフォルトの数を指定します。または、カスタム (カスタム) モードを選択することもできます。
  2. X、Y、Z: カスタム モードを選択すると、各方向で使用するユニットあたりの補間ライト プローブの数を自分で指定できます。
  • プローブ位置モード

        これらの補間されたライト プローブは 3D グリッドに配置されます。ここでは、これらの補間プローブを 3D メッシュに配置する方法を選択できます。場合によっては、これらの補間プローブが壁や他のジオメトリを貫通し、光漏れが発生することがあります。このとき、セル コーナーまたはセル センターに切り替えて光漏れの問題を解決することができます。

4. Mesh Renderer コンポーネントの Anchor Override パラメータ

        Anchor Override (アンカー オーバーロード) パラメーターを使用してシーン内のゲームオブジェクトを関連付け、現在のオブジェクトがライト プローブをサンプリングするときにその中心点を中心点として使用します。デフォルトでは、このパラメータは None で、システムは現在のオブジェクト メッシュのバウンディング ボックスの中心点を使用します。

5. 設定インターフェースの GI キャッシュ

        GI キャッシュ (GI キャッシュ) は、ライト マップのベイク処理、ライト プローブのベイク処理、およびリフレクション プローブのベイク処理中に生成された中間ファイルを保存するために Unity エディターによって使用される内部データ キャッシュです。最初のベイクが完了した後、生成されたキャッシュ ファイルを使用すると、後続のベイクを高速化できます。現在のマシン上のすべての Unity プロジェクトは、同じ GI キャッシュを共有します。「環境設定」インターフェースで、キャッシュのサイズの調整、保存パスのカスタマイズ、キャッシュ・ファイルの圧縮の有効化、およびキャッシュのクリアを行うことができます。

4 番目に、Reflection Probe を使用してシーンの反射情報を提供します。

        リアルタイム レンダリング アプリケーションで、レンダリング フレーム レートを維持しながらリアルな反射効果を生成することは困難です。リアルタイム レイ トレーシングをサポートするソフトウェアとハ​​ードウェアが登場するまで (強力で安価で一般に普及するほど)、またはある種のブラック テクノロジが登場するまで、反射効果をシミュレートするには近似的な手法に依存する必要があります。

1. HDRPが反射情報を生成する順序

        HDRP は、画面上の各ピクセルにできるだけ正確な反射情報を提供するための反射階層を提供します。この反射レベルでの反射情報を生成するには 3 つの方法があります。HDRP がこれらを使用する順序は次のとおりです。まず、Screen Space Reflection (略して SSR) メソッドを使用します。適切な反射情報が見つからない場合、HDRP は Reflection Probe (反射プローブ) を使用します。それでも適切な反射情報が得られない場合は、最終的に空からの反射情報(Sky Reflection)を利用します。

        では、HDRP は「適切な反射情報」をどのように判断するのでしょうか? HDRPでは上記3つの反射情報の計算方法を利用した場合、重みが1に達するかどうかで「適切な反射情報」が得られたかどうかを判断します。これら 3 つのメソッドの重みは次のように計算されます。

  1. SSRは自重を自動でコントロールします。
  2. 反射プローブの重みは、Weight プロパティを使用して手動で編集できます。異なる反射プローブに異なる重みを設定できるため、重複領域を持つ反射プローブを合理的に融合できます。
  3. 空の反射の重みは 1 に固定されています。

2.Screen Space Reflection(スクリーンスペースリフレクション)

        SSR を使用するには、まず HDRP 構成ファイルでこのオプションを開き、次にボリュームのスクリーン スペース反射を使用して関連パラメータを調整する必要があります。

         SSR は、HDRP プロファイルで SSR が有効になっている場合に限り、特定のカメラのカスタム フレーム設定で有効にできます。

        HDRP 設定ファイルで SSR オプションを有効にした後、ボリュームで SSR パラメータを調整できます。

2.1 ボリュームが過負荷になった画面スペースの反射

2.1.1 スクリーン スペース反射パラメータの概要

  • 有効化:ワンクリックで現在のボリュームの SSR を有効化/無効化できます。
  • 最小滑らかさ: マテリアルの滑らかさがここで設定した値以上の場合にのみ、SSR はマテリアルに関連付けられたオブジェクトの表面で機能します。(たとえば、現在の値が 0.9 で、シーン内に 3 つのオブジェクトがあり、最初のオブジェクト表面の滑らかさが 0.8、2 番目が 0.9、3 番目が 0.95 の場合、HDRP は 2 番目と 3 番目のオブジェクトに SSR を適用します。サーフェス 、ただし最初のオブジェクト サーフェスには適用されません。)
  • Smoothness Fade Start (消えて滑らかさが始まります) : ここで設定できる値は、Minimum Smoothness (最小の滑らかさ) ~ 1 の間です。値を 0.93 に設定すると、マテリアルの滑らかさが 0.93 未満のオブジェクトのサーフェスには SSR が適用されません。
  • Reflect Sky (空の反射) : このオプションが有効な場合、HDRP は SSR を使用して空の反射を処理します。このオプションが無効な場合、HDRP は次の 2 つのレベルの反射方法 (反射プローブまたは空の反射) を使用して、空の反射を処理します。
  • 画面エッジ フェード距離 (画面エッジ消失距離) : SSR は画面スペースに基づいて計算されるため、反射効果は現在の画面の可視領域によって制限されるため、SSR を使用して計算された反射効果には「境界」があります。「境界」の外側、つまり画面の可視領域の外側にあるオブジェクトは、SSR の反射効果には表示されません。
  • オブジェクトの厚さ:画面上のオブジェクトの厚さを制御するために使用されます。SSR アルゴリズムはオブジェクトの厚さを区別できないため、ここでの値は、SSR アルゴリズムがオブジェクトの背後にあるオブジェクトを追跡するのに役立ちます。これは、シーン内のすべてのオブジェクトのグローバル変数です。
  • 品質(反射品質):カスタム、低、中、高品質レベルを選択できます。[カスタム] が選択されている場合、[最大レイ ステップ] を使用してレイ反復の最大数を設定できます。低、中、高の特定のサンプリング値は、HDRP 構成ファイルで設定できます。
  • Max Ray Steps : この値は、SSR アルゴリズムの最大実行数を制御するために使用されます。最大実行数に達すると、SSR アルゴリズムはグリッドの検索を停止します。値が 20 に設定されていても、メッシュが見つかるまでに SSR アルゴリズムが 5 回しか実行されない場合、アルゴリズムも停止します。設定した値が小さすぎると、アルゴリズムはメッシュを見つける前に停止します。

2.1.2 SSRの制限事項

  • SSR の反射情報は、現在の画面に表示されているオブジェクトを計算して取得されるため、取得される反射情報には画面に表示されているオブジェクトのみが含まれます。
  • SSR は不透明なマテリアルのみをサポートしており、透明なオブジェクトを反射で表示させることはできません。
  • SSR は計算中に深度バッファー (Depth Buffer) の 1 つのレイヤーのみを使用するため、オブジェクトの背後にある情報を取得することが困難です。

3. リフレクションプローブ(反射プローブ)

        HDRP が SSR を通じて適切な反射情報を取得できない場合、HDRP は反射プローブから反射情報を取得しようとします。HDRP では、Reflection Probe と Planar Reflection Probe の 2 つの反射プローブを使用できます。

3.1 リフレクションプローブ(反射プローブ)

        リフレクション プローブは、周囲の環境から 6 方向 (前後左右上下) から 6 つのテクスチャを取得し、Cubemap (キューブ マップ) に保存します。シーン内に反射があるマテリアルは、これらの反射プローブに保存されているテクスチャをサンプリングし、それらを反射情報としてオブジェクトの表面に適用できます。

        メニューの「GameObject」→「Light」→「Reflection Probe」から反射プローブを作成し、反射情報をキャプチャする必要があるシーンにこれらのプローブを配置できます。異なる位置にある物体が正しい反射情報を取得できるように、シーン内の異なる位置に異なる反射プローブを配置する必要があります。使用量に厳密な決まりはありませんので、必要に応じてご使用ください。

        リフレクション プローブは、Baked (ベイク処理)、Custom (カスタム)、Realtime (リアルタイム) の 3 つのタイプに分類できます。3つの違いは以下の通りです。

  • ベイクとカスタマイズは基本的に同じです。ベイク タイプは、リフレクション プローブの周囲の環境をエディタでキューブマップにベイクするもので、カスタム タイプは、既製のキューブマップを直接指定するものです。
  • リアルタイム タイプには、ベイク タイプやカスタム タイプよりもリアルタイム モード (リアルタイム更新モード) が 1 つ多くあります。Every Frame (すべてのフレームを更新)、On Enable (プローブが有効になったときに更新)、および On Demand (スクリプト制御を通じてオンデマンドで更新) モードを選択できます。
  • リアルタイム タイプは最もパフォーマンスを重視します。もちろん効果も最高で、特にシーン内の動的なオブジェクト(キャラクターや乗り物など)が動くと、リアルタイムに反射情報に反映されます。
  • リアルタイムタイプを使用する場合、パフォーマンスの消費を減らすために、オンデマンドモードを選択できます。オンデマンド モードを使用する場合、スクリプトを使用して、10 フレームごとに更新するなど、リフレクション プローブのリフレッシュ レートを制御できます。ただし、特定のアプリケーション シナリオによって異なりますが、速いモーションが含まれるシーンの場合、タイミングの悪い更新により消耗が発生する可能性があります。

3.1.1 反射プローブのアセンブリ

        Type がベイク処理タイプの場合、パラメーターは次のように機能します。

  • プロキシボリューム

        リフレクションプローブは、キューブマップを生成するために周囲の環境情報を取得する際、自身の位置を中心点として反射情報を取得します。したがって、物体の材質がこれらの反射プローブの情報をサンプリングする場合、物体の座標と反射プローブの座標が完全に一致していなければ、物体の反射情報は必ず位置ずれを生じることになる。

        この問題を解決するには、Reflection Proxy Volume (リフレクション プロキシ ボリューム) コンポーネントを使用する必要があります。HDRP は、このコンポーネントを使用して、前述の位置バイアスによって引き起こされる視差の問題を修正します。このコンポーネントは視差の問題を完全に修正するわけではありませんが、大幅に改善することができます。

Reflection Proxy Volume コンポーネント: Reflection Proxy Volume の形状として、Box (直方体)、Sphere (球)、または Infinite (無限) を選択できます。ボックスおよび球のシェイプは、通常、インテリア シーンで使用されます。Infinite は無限大を意味し、主にアウトドアシーンで使用されます。

  • インフルエンス ボリュームをプロキシ ボリュームとして使用する

        別のリフレクション プロキシ ボリュームを作成することに加えて、現在のリフレクション プローブのインフルエンス ボリューム (影響を受ける領域) をリフレクション プロキシ ボリュームとして使用することもできます。リフレクション プローブ自体に影響範囲があるため、ほとんどの場合、リフレクション プローブの影響範囲を直接リフレクション プロキシ ボリュームとして使用できます。

  • ブレンド距離

        (遅延モードにのみ適用可能) 現在の反射プローブと他の反射プローブの間の混合距離を定義するために使用されます。値が大きいほど、内側の緑色のボックスが小さくなります。

  • ブレンド法線距離

        数字が大きくなるほど、内側の紫色のボックスが小さくなります。

 Influence Volume (影響範囲):反射テクスチャの Cubemap 情報を生成するときに、反射プローブの影響を受ける範囲を設定するために使用されます。ブレンド法線距離内でブレンド距離の外側では、ブレンドされた反射効果が生成されます。ブレンド距離内では、Reflection Probes の影響を 100% 受けます。

  • ボリュームレイヤーマスク

        シーン内のどのボリュームが反射プローブの反射情報キャプチャ操作に影響を与えるかを制御するために使用されます。

  • ボリュームアンカーオーバーライド

        カメラのトランスフォームに設定されている場合、このカメラに影響を与えるボリュームは、現在の反射プローブに影響します。

  • ライトレイヤー

        HDRP 設定ファイルでライト レイヤー機能が有効になっている場合、現在の反射プローブの影響を受けるライト レイヤーをここで指定できます。

  • 乗数

        現在の反射プローブによってキャプチャされた RenderTexture の明るさを制御するために使用されます。値が大きいほど明るさが高くなります。

  • 重さ

        デフォルトの重み値は 1 です。値が大きいほど、複数の反射プローブを混合した場合、最終的な反射情報における現在の反射プローブの反射効果の重みが大きくなります。

  • フェード距離

        反射情報をキャプチャするときに、反射プローブのフェードアウト距離を制御するために使用されます。

3.1.2 平面反射プローブ

        オブジェクトのマテリアルボールのメタリックを1、滑らかさを1に設定します。このときオブジェクトは完全な鏡になります。

Planar Reflection Probe コンポーネントを使用する効果

4.空の反射

        HDRP が反射プローブから適切な反射情報を取得できない場合は、空の反射が使用されます。したがって、シーンには空からの反射情報が常に存在します。

5、HDRPシャドウ

1. HDRP における影の分類と照明モード

        HDRP のシャドウは 2 つのカテゴリに分類できます。

  1. シャドウは、次のような画面スペース情報に基づいて計算されます: (上記を参照)
    1. アンビエントオクルージョン
    2. マイクロシャドウ
    3. コンタクトシャドウ
  2. シーン内の光源によって投影される影は、次の 3 つのカテゴリに分類できます。
    1. リアルタイム モードでキャストされるリアルタイム シャドウ
    2. 混合モードでキャストされる混合シャドウ
    3. ベイク処理モードでキャストされるベイク処理されたシャドウ

        3 つのライティング モードの中で、混合モードは最も柔軟なシャドウを提供し、シャドウの品質とパフォーマンス要件のバランスを適切に取ることができます。リアルタイム シャドウは高品質ですが、最も多くのパフォーマンスを消費します。ベイク処理されたシャドウは最高のパフォーマンスを発揮しますが、シャドウの品質は比較的劣るためです。

2. 混合モードでキャストされる混合シャドウ

2.1 照明設定ウィンドウの混合照明オプション

照明モード:

  • ベイク処理された間接モードでは、すべてのオブジェクト (静的か動的かに関係なく) がリアルタイムのシャドウ情報を受け取り、ベイク処理されたライトマップにはシャドウ情報が含まれません。
  • シャドウマスク モードでは、異なるオブジェクトは異なるシャドウ情報を受け取ります。

前回の記事では、Shadowmask と Baked Indirect の違いを紹介しました。前者は、間接照明情報のベイク処理に加えて、Lightmap (ライト マップ) のシャドウもベイク処理します。シャドウマスク モードは最もリアルなシャドウ効果を提供できますが、当然、パフォーマンスの消費とメモリの使用量も高くなります。シャドウマスク モードは、ハイエンド マシンで実行されるオープンワールド ゲームなど、遠くにオブジェクトが見えるシーンに適しています。

2.2 シーン内の光源を混合モードに設定する方法

        次の 4 つの手順が設定されていることを確認したら、シーンの光源を混合モードに設定し、シャドウマスク モードでベイク処理を完了します。

  1. HDRP 設定ファイルの Lighting→Shadows セクションで、Shadowmask 機能を有効にします。
  2. ライティング設定ウィンドウ ([ウィンドウ]→[レンダリング]→[ライティング]メニューから開きます)で、[ライティング モード]のライティング モード(ライティング モード)として ShadowMask を選択します。
  3. [プロジェクト設定]ウィンドウの[HDRPグローバル設定]で、[フレーム設定]の[カメラ]のシャドウマスク機能にチェックを入れます。
  4. 現在のシーンのカメラでカスタム フレーム設定が有効になっている場合は、シャドウマスク機能が有効になっていることを確認してください。

2.3 光源のシャドウマスクモード

        上記の 4 つの手順の後、シーン内の光源を混合モードに設定できます。その後、光源のシャドウマスク モードには 2 つのオプションがあります。

 2.3.1 光源のシャドウマスク モードを距離シャドウマスクに設定する場合:

        シャドウマスク ライティング モードでベイクされたライトマップには、間接的なライティング情報だけでなく、静的オブジェクトの事前計算されたシャドウ情報も含まれています。

        ディスタンス シャドウマスク モードでは、影の最大投影距離内にある場合は動的オブジェクトと静的オブジェクトの両方にリアルタイム シャドウが投影されますが、影の最大投影距離外にある場合はリアルタイム シャドウが投影されます (設定方法は下記を参照) )、動的オブジェクトにはシャドウがキャストされませんが、静的オブジェクトはベイク処理されたシャドウを使用します。

        最大シャドウ キャスティング距離内の動的オブジェクトは、他の動的オブジェクトや静的オブジェクトからリアルタイムのシャドウを取得できます。したがって、青と緑のカプセルの両方が独自のリアルタイム シャドウを取得していることがわかります。緑色のカプセルは青色のカプセルのリアルタイム シャドウを取得し、青色のカプセルは最初の静的ピラーのリアルタイム シャドウも取得します。

2.3.2 光源のシャドウマスクモードをシャドウマスクに設定する場合:

        すべての静的オブジェクトのシャドウはベイク処理されたシャドウから得られます。ベイク処理されたシャドウは品質が低いため、以前のリアルタイム シャドウよりもぼやけて見えます。

        動的オブジェクトは、別の動的オブジェクトからリアルタイム シャドウを取得できます。ただし、静的オブジェクトのベイク処理されたシャドウは取得できません (シャドウはライト マップにベイク処理されるため、静的オブジェクトでのみ使用できます)。

        最大シャドウ キャスト距離の外にある動的オブジェクトにはシャドウがありません。静的オブジェクトにはベイク処理されたシャドウが使用されます。

2.3.3 距離シャドウマスクとシャドウマスクのパフォーマンスへの影響

        距離シャドウマスク モードは、より多くの GPU パフォーマンスを消費しますが、リアルタイムのシャドウ品質が高いため、よりリアルなシャドウ効果を生成できます。ベイク処理されたシャドウは、最大シャドウ キャスト距離の外側で使用されます。これらのベイク処理されたシャドウは低品質ですが、カメラから遠いため、低品質のシャドウでも許容されます。シャドウマスク モードでは、カメラに近いシャドウをよりリアルに見せるために高解像度のシャドウ マップが必要となるため、より多くのメモリを消費します。

2.4 影の最大投影距離の設定

        最大影投影距離の設定については、光源の種類ごとに設定方法が異なります。

  • 平行光(指向性)の場合は、ボリュームコンポーネントのシャドウの最大距離を通じて設定する必要があります(単位はmです)。
  • 点光源(Point)、スポットライト(Spot)、エリアライト(Area)の場合、影のフェード距離(単位はm)で設定できます。

おすすめ

転載: blog.csdn.net/weixin_39766005/article/details/131379210