docs.unity3d.com
    目次を表示する/隠す

    HDRP を 5.x から Unity 6.x にアップグレードする

    HD レンダーパイプライン (High Definition Render Pipeline、HDRP) では、主要バージョン間で作用が異なる機能がいくつかあります。このドキュメントは、HDRP を Unity 5.x から 6.x にアップグレードする際に役立ちます。

    カスタムシェーダー

    6.x では、HDRP マテリアルフレームワーク向けの Shader コードが改善され、Shader を制作する際の自由度が増しました。作成したカスタム Shader があり、HDRP プロジェクトを Unity 6.x にアップグレードしたい場合は、Shader を更新して新しいフレームワークに適応させる必要があります。

    • 6.x では、HDRP のライティングモデルは EvaluateBSDF() を使いますが、5.x は BSDF() を使います。EvaluateBSDF() が CBSDF を返す、反射、透過拡散、および鏡面ライト情報を含む構造体を使います。6.x 以前は、HDRP はランベルトの余弦則を自動的に適用していました。6.x からは、EvaluateBSDF() 内に手動で適用しなければなりません。IsNonZeroBSDF を使って、BSDF を評価する必要があるかを確認してください。
    • 6.x では、GetBSDFAngles 関数は依然と異なるパラメーターを容認します。また NdotV および NdotV は返さなくなったため、関数とは別に手動で 固定 しなければなりません。
    • 6.x には、LightEvaluation および SurfaceShading ファイルにはヘルパー関数が含まれており、Unity プロジェクトに含めるか除外するかを選ぶことができます。ヘルパー関数は、すべての HDRP マテリアルが呼び出すジェネリック Material とライト評価コードに対応します (StackLit および Lit も含みます)。#define を使って各ヘルパー関数を含めるか、または除外してください。
    • 6.x では、GetAmbientOcclusionForMicroShadowing() メソッドが ComputeMicroShadowing() に置き換わりました。 GetAmbientOcclusionForMicroShadowing() はマクロシャドウイングのアンビエントオクルージョンプロパティーを使いますが、ComputeMicroShadowing() は マイクロシャドウ 値を使っていました。
    • WorldToTangent は誤った名前が付けられていたため TangentToWorld に変更されました。

    シェーダーグラフ

    6.x では、HDRP は SurfaceType、BlendMode、および DoubleSided といったプロパティーを、シェーダーグラフではなく Material 内に格納します。現在このようなプロパティーを使う Material はすべて、マスターノード設定 の値と一致しないため、シーン内で正しく表示されない場合があります。この変更はすべてのシェーダーグラフマスターノードに関連しますが、PBR および Unlit クロスパイプライン Master Node は例外となります。

    Material でこれらのプロパティーを変更する際、HDRP は生成された Shader 内でローカルシェーダーキーワードを切り替えます。Master Node 自体は Setting View でプロパティーを引き続き表示します。Master Nodes はこれらのプロパティー値を格納しますが、新たに Shader および Material のデフォルト値として機能するようになりました。Material のプロパティー値はデフォルト値をオーバーライドします。

    つまりこの変更により、HDRP が Shader に依存してレンダリング状態コントロールをするようになったため、生成する Shader バリアントがより少なくて済みます。さらにこの変更により、HDRP は Shader ストリッピングをより効率的に処理できます。

    アップグレード

    プロジェクト内ですべてのシェーダーグラフをアップグレードするには、Edit > Render Pipelines > Reset All Shader Graphs Scene Material Properties (Project) を選択します。これにより自動的に以下が行われます。

    1. プロジェクト内のすべての Material がイテレーションされます。
    2. Material プロパティーと Master Node 値を同期化するために必要なすべてのキーワードをコピーします。
    3. HDRP マテリアルキーワードリセット関数を呼び出します。
    4. Material のレンダラーキューをシェーダーグラフのものと一致するように設定します。

      シーンでシェーダーグラフのみをアップグレードするには、Edit > Render Pipelines > Reset All Shader Graphs Scene Material Properties (Scene) を代わりに選択します。

    トップに戻る
    Copyright © 2023 Unity Technologies — 商標と利用規約
    • 法律関連
    • プライバシーポリシー
    • クッキー
    • 私の個人情報を販売または共有しない
    • Your Privacy Choices (Cookie Settings)