Unity | HDRP 高解像度レンダリング パイプラインの検討メモ: マテリアル システム Lit シェーダー

目次

1. リットシェーダー

1. 表面オプション

2. サーフェス入力

3. 透明性入力

2. HDRP レンダリングの優先順位


目次

1. リットシェーダー

1. 表面オプション

2. サーフェス入力

3. 透明性入力

4. 放出入力

2. HDRP レンダリングの優先順位


       現実世界の物体は、不透明な物体と透明な物体(透明または半透明を含む)に分けることができます。リアルタイム レンダリングでは、実際にシミュレートするのはオブジェクトの表面です。もちろん、透明なオブジェクトをシミュレートする場合は、光がオブジェクトを通過するときに発生する吸収と屈折の現象も考慮する必要があります。

1. リットシェーダー

1. 表面オプション

  • 表面の種類

        Lit では、サーフェス タイプは、Opaque (不透明) と Transparent (透明) の 2 つのカテゴリに分類されます。

  • レンダリングパス

        このオプションは、透明サーフェス タイプを選択すると表示され、現在のマテリアルに対して次のレンダー パスを選択できます。

  1. 屈折前: 屈折効果をレンダリングする前に、現在のマテリアルに関連付けられたオブジェクトをレンダリングします。これは、HDRP が屈折効果をレンダリングするときに、現在のマテリアルに関連付けられたオブジェクトを屈折の計算に考慮することを意味します。
  2. デフォルト: デフォルトのレンダリングフェーズ中にレンダリングに参加します。
  3. 低解像度: デフォルトのレンダリング段階が完了した後、現在のマテリアルに関連付けられたオブジェクトを半分の解像度でレンダリングします。
  • ブレンドモード

        このオプションは、「透明」のサーフェス タイプを選択すると表示されます。このオプションは、透明マテリアル上の各ピクセルの最終的なカラー値を取得するために、現在の透明マテリアルの表面上の各ピクセルの色を背景色と混合するために使用される混合方法を決定するために使用されます。

        ベース マップが指定され、ベース マップのアルファ チャネルが純粋な黒 (完全な透明を表す) の場合、カラー セレクターで A (アルファ) 値を調整することは無意味です。ベース マップが指定されていない場合、またはアルファ チャネルがベース マップに含まれていない場合、ガラス マテリアルの透明度はカラー セレクターの A (アルファ) 値によって制御されます。(下図に示すように、ベース マップのアルファ チャンネルの周囲は真っ黒ではないため、カラー セレクターの A (アルファ) 値を調整すると、オブジェクトの周囲にも影響します。)

  • 鏡面照明を保持します (ハイライト照明情報を保持します)

このオプションは、「透明」のサーフェス タイプを選択すると表示されます。アルファブレンド後、ハイライトの強度が弱まります。このオプションを有効にすると、透明なサーフェスでもハイライトの強度が維持されるため、ガラスや水の光の反射を表現するのに適しています。

  • 受信フォグ

        このオプションは、「透明」のサーフェス タイプを選択すると表示されます。これをオンにすると、シーン内のフォグが透明なサーフェスに影響を与えます。このオプションが無効になっている場合、HDRP はシーン フォグを計算するときに現在のマテリアルを考慮しません。

  • Back then Front Rendering (背面から前面へのレンダリング)

        (HDRP 構成ファイルで [透明な背面] オプションを有効にする必要があります): このオプションは、透明な表面タイプの選択の下に表示されます。このオプションを有効にすると、HDRP は 2 つの描画呼び出しを使用して、現在のマテリアルに関連付けられたオブジェクトをレンダリングします。HDRP は、最初の描画コールを使用してオブジェクトの背面の三角形の面をレンダリングし、2 番目の描画コールを使用して前面の三角形の面をレンダリングします。

  • Transparent Depth Prepass(透明深度前処理)

        (HDRP 設定ファイルで透明深度プリパス オプションを有効にする必要があります): このオプションは、透明サーフェス タイプの選択の下に表示されます。このオプションを有効にすると、HDRP は透明なサーフェスのポリゴン データを深度バッファ (Depth Buffer) に追加します。これらの深度バッファー内のポリゴン データを使用して、レンダリングの順序を最適化できます。このプロセスはライティング前に実行されるため、GPU パフォーマンスの向上に役立ちます。この深度情報は、透明度パスをレンダリングする前に別のレンダー パスに書き込まれ、その後、レンダリングの順序を処理するために使用されることに注意してください。

  • Transparent Depth Postpass (透明深度後処理)

        (HDRP 構成ファイルで透明深度ポストパス オプションを有効にする必要があります): このオプションは、表面タイプ透明を選択すると表示されます。このオプションを有効にすると、HDRP は後処理 (Post Processing) のために透明サーフェスのポリゴン データを深度バッファ (Depth Buffer) に追加します。このプロセスは、照明を処理する前に実行されます。深度情報を必要とするモーション ブラー (モーション ブラー) や被写界深度 (被写界深度) などの後処理を実行する場合は、このオプションを有効にできます。これは、これらの後処理効果を正しく計算するのに非常に役立ちます。

  • 透明な書き込みモーション ベクトル

        (HDRP 設定ファイルでモーション ベクトル オプションを有効にする必要があります): このオプションは、透明サーフェス タイプの選択の下に表示されます。有効にすると、HDRP はこのマテリアルを使用して透明オブジェクトのモーション ベクトル データを書き込み、HDRP が現在のマテリアルを使用して透明オブジェクトのモーション ブラーなどの後処理エフェクトを計算できるようになります。

  • カルモード

        透明なオブジェクト メッシュの前部 (Front) または後部 (Back) をカリングするかを決定するために使用されます。

  • アルファクリッピング (透明クリッピング)

        このオプションを有効にすると、マテリアルのアルファ チャネルを使用して、サーフェスのどの領域がレンダリングされ、どの領域がレンダリングされないかを制御し、透明な部分と不透明な部分の間に明確な境界を作成できます。

        しきい値:しきい値を使用して、アルファの臨界値を制御します。しきい値が 0.05 に設定されている場合、0.05 以下のアルファ値を持つ領域はレンダリングされ、0.05 より大きいアルファ値を持つ領域はレンダリングされません。

  • 材料の種類
  1. 標準マテリアル タイプは、ほとんどのマテリアルのシミュレーションに使用できます。
  2. 鏡面カラー: このマテリアル タイプを使用して、オブジェクトの表面にカラーのハイライト効果を生成します。Specular Color はメタリック ワークフローではなくスペキュラー ワークフローを使用しているため、以下のサーフェス入力にはメタリック スライダーがありません。
  3. 虹色: シャボン玉を作るために使用される虹色。
  • デカールを受け取る (デカールを表示)

        このオプションを有効にすると、現在のマテリアルにガラス上の白い点などのデカールが表示されます。

  • SSRの受信(画面空間の反射に表示)

        このオプションを有効にすると、HDRP はスクリーン スペースの反射を計算するときに、現在のマテリアルに関連付けられたオブジェクトを考慮します。

  • 変位モード

        ディスプレイスメント モードとハイトマップは、モデルのメッシュに詳細を追加するために使用されます。ディスプレイスメント モードが設定されている場合、以下の [サーフェス入力] セクションに [高さマップ] オプションが表示されます。(高さマップについては、以下の詳細を参照してください) HDRP には 2 つのディスプレイスメント モードが用意されています。

  • 頂点ディスプレイスメント: ハイトマップに従ってメッシュ上の頂点をディスプレイスします。
  • ピクセルの変位: 高さマップに従ってモデルの表面上のピクセルを変位します。

2. サーフェス入力

        サーフェス入力のパラメータは、色、透明度、ハイライト、サーフェスの詳細、テクスチャに使用される UV など、オブジェクトのサーフェスのさまざまなプロパティを制御するために使用されます。

  • ベース マップ (ベース テクスチャ)

        サーフェスの色と透明度を制御するために使用されます。テクスチャが指定されていない場合、オブジェクトはカラー ピッカーの色を表面の色として使用します。テクスチャが指定されている場合、オブジェクトの表面の最終的な色は、テクスチャとカラー ピッカーで選択された色によって決まります。

  • マスクマップ
マスク マップの 4 つのチャネルは、さまざまな目的でテクスチャを保存するために使用されます。

         Red、Green、Blue、Alpha の 4 つのチャネルに保存されているテクスチャは、実際にはグレースケール画像です。グレースケール イメージは、最終テクスチャ上の各ピクセルに対応する値を提供します (各グレースケール イメージは異なるパラメーターを制御します)。純白は最大値 1 (効果あり) に対応し、色が濃くなるにつれて値が小さくなり、0 (効果なし) になります

        4 つのテクスチャを同じマスク マップに保存する利点は、これら 4 つのテクスチャの UV 座標が同じであるため、レンダラーは最大 4 つのテクスチャの情報を取得するために 1 回のサンプリングだけで済むことです。マスク マップを使用する場合、毎回 4 チャネルを使用する必要はないことに注意してください。ニーズに応じて、使用するチャネルを 1 つ以上選択できます。

         マスク マップを指定しない場合、メタリック オプションとスムーズネス オプションの値は両方とも 0 から 1 の間になります。メタリック値が高くなるほど、オブジェクトの表面の金属反射が強くなります。滑らかさの値が高いほど、オブジェクトの表面はより滑らかになり、鏡のようになります。そうでない場合、オブジェクトの表面はより粗く見えます。

        マスク マップを指定すると、メタリック リマッピング、スムーズネス リマッピング、およびアンビエント オクルージョン リマッピング オプションのスライダーが表示されます。

  1. メタリックは金属表面の反射率を制御するために使用され、値が高いほど金属の反射が強くなります。その値は 0 から 1 の間です。マスク マップを追加したため、HDRP は赤チャネルのメタリック マップのグレースケール情報を取得して、オブジェクトの表面の金属反射強度を計算します。純粋な黒は値 0 に対応し、純粋な白は値 0 に対応します。 1、およびその他のグレースケールは 0 に対応します ~1 の間の値。上の図に示すように、シミュレートしたいのはセラミックのカップです。メタリックの値が制御されており、純粋な黒は値 0 に対応するため、赤のチャネルは純粋な黒のテクスチャです。したがって、マテリアル インターフェイスのメタリック スライダーをどのように調整しても、値は常に 0 になります。赤のチャネルのテクスチャ カラーが白に変更された場合、テクスチャによって提供されるメタリック値は 1 になります。このとき、メタリック スライダーを使用して値を 0 ~ 1 の間で調整できます (このとき、ボトルに金属の反射があることがわかります。ただし、シミュレートしたいのはセラミックであり、実際にはこの値を持つのは間違いです)金属の反射)。
  2. スムーズネス リマッピング スライダは、マスク マップのアルファ チャネルから取得したグレースケール情報をスライダの対応する最小値と最大値の間隔にマッピングして、オブジェクト表面の光沢を制御できます。
  3. アンビエント オクルージョン リマッピング スライダは、マスク マップのグリーン チャネルから取得したグレースケール情報を、スライダに対応する最小値と最大値の間隔にマッピングして、オブジェクトの表面上のアンビエント ライト オクルージョンを制御できます。
  • Normal Map Space (ノーマルマップスペース) と Normal Map (ノーマルマップ)

        Normal Map Space では、TangentSpace (接線空間) または ObjectSpace (オブジェクト空間) を選択できます。2 つの法線マップ空間の違いは次のとおりです。

  1. TangentSpace は、アニメーション中にメッシュが変形するキャラクター モデルを含む、あらゆるタイプのメッシュに適用できます。
  2. ObjectSpace は、平面マッピングを使用して静的オブジェクト (メッシュが変形しないオブジェクト) に適用できます。このタイプの法線マップには、接線空間法線マップ情報だけでなく、方向データも含まれています。また、Unity ではトランスフォーム計算を行う必要がないため、接線空間法線マップと比較してパフォーマンスが節約されます。

        法線マップを法線マップに関連付けて、オブジェクトの表面に詳細を追加できます。詳細情報の強度はスライダーで制御できます (値は 0 ~ 8)。オブジェクトの表面に詳細を追加する法線マップの原理は、法線マップに保存されている情報を使用して、オブジェクトの表面の照明情報を変更することで表面をより詳細に「見える」ようにすることです。しかし本質的には、オブジェクトの表面には実際の変形は発生しません。

  • 高さマップ

        このオプションは、変位モードが設定されている場合に表示されます。高さマップは基本的に白と黒のグレースケール イメージです。白い領域は影響を受ける表面が高い場所を表し、色が濃いほど影響を受ける表面が低くなります。通常のマップとは異なり、高さマップは影響を受けるサーフェスの領域を変更し、詳細を追加します。一般的な高さマップは法線マップと組み合わせて使用​​されます。

  • パラメータ Amplitude (振幅)

        このオプションは、ディスプレイスメント モードがピクセル ディスプレイスメントに設定されている場合に表示されます。ハイトマップ ディスプレイスメント エフェクトの強度を制御するために使用されます。

  • 虹色のマスク

        マテリアル タイプ イリデッセンスを使用すると発生します。ここでグレースケール画像を使用して、虹色の強度を制御できます。0 は虹色がないことを意味し、1 は最も虹色効果があることを意味します。固定値 (0 から 1 の間) を直接使用して、表面全体の虹色の強度を制御することもできます。

  • 鏡面カラー

        Specular Color マテリアル タイプを使用すると発生します。このオプションを使用すると、鏡面カラーを手動で設定できます。ここに関連付けられたテクスチャを使用すると、ピクセル レベルで鏡面カラーを定義できます。カラー ピッカーで色を選択すると、HDRP はこの色をテクスチャ内のすべてのピクセルと乗算して、最終的なハイライト カラーを取得します。

  • 省エネ鏡面カラー

        Specular Color マテリアル タイプを使用すると発生します。有効にすると、HDRP は鏡面効果が強すぎる場合にマテリアルの拡散カラーを低減し、マテリアルをより「物理的に正しく」見えるようにすることができます。PBR (物理ベース レンダリング) のエネルギー保存 (Energy Conservation) コードは、オブジェクトの表面を正しくレンダリングするために非常に重要であるためです。このコードは、反射光と散乱光のエネルギーが物体の表面で受け取った光のエネルギーより小さくなければならないと規定しています。 

3. 透明性入力

        以下は屈折に関連するすべてのパラメータです。

  • 屈折モデル

        ここで、HDRP が屈折を処理する方法を選択できます。

  1. なし: 透明なマテリアルには屈折動作がありません。
  2. ボックス: アルゴリズムでは立方体形状のモデルが使用されます。光線は平面に入るときは平面に入り、光線が出るときは平面を通過します。先ほど説明した中空ガラス瓶などに適しています。
  3. 球: このアルゴリズムでは球面モデルを使用し、虫眼鏡に似た屈折効果を生成できます。虫眼鏡レンズやガラス球などの固体透明物体のシミュレーションに適しています。
  4. Thin: アルゴリズムは直方体形状のモデルを使用します。Box モデルとは異なり、Thin モデルの厚さは 5cm と定義されています。窓のガラスをシミュレートするために使用できます。
  • 屈折率

        屈折効果の強さを制御するために使用されます。値が大きいほど、屈折効果が強くなります。(屈折率 = 真空中の光の速度 / 現在の透明な物質中の光の速度) さまざまな物質の屈折率は、 https://zh.wikipedia.org/zh-cn/refractive Indexを参照できます

  • 厚さ(オブジェクトの厚さ)

        厚さマップ (厚さマップ) を使用して、透明なマテリアルの厚さを (ピクセル レベルに基づいて) 制御できます。厚さマップを使用しない場合は、スライダを使用して透明オブジェクトの全体の厚さを制御することもできます。注: Thin モデルでは厚さが 5cm に指定されているため、このオプションは Thin 屈折モデルには表示されません。

  • 透過色

        屈折特性を持つ透明なオブジェクトは、オブジェクトを通過する光に色を付けることができます。ここでは、通過する光に色合いを付けるテクスチャを (ピクセルごとに) 指定したり、カラー ピッカーを単独で使用して全体の色を選択したりできます。両方の方法を使用した場合、最終的なライトの色は、テクスチャの色とカラー ピッカーから選択した色の両方によって決まります。

4. 放出入力

        メッシュは、発光マテリアルによって制御される光源に変えることができます。

2. HDRP レンダリングの優先順位

        レンダリング パイプラインは、カメラから最も遠いオブジェクトを最初にレンダリングし、カメラに最も近いオブジェクトを最後にレンダリングします。HDRP では、シーン内のオブジェクトのレンダリング順序は、マテリアル (マテリアル) のソート優先順位とレンダリング コンポーネント (メッシュ レンダラー) の優先順位の値に従ってソートされます。値が大きいほど、レンダリングはより後方になり、カメラに近づきます。

        HDRP が透明オブジェクトのレンダリングとソートに使用する優先順位: (強いものから弱いものへ) Depth Write からマテリアルによって取得された深度情報 → マテリアルのソート優先順位値 → メッシュ レンダラー コンポーネントの優先順位値 → オブジェクトからの距離カメラをオブジェクトに向けます。

おすすめ

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