HDRP のスケーラビリティ
HD レンダーパイプライン (High Definition Render Pipeline、HDRP) は、アプリケーションが初期化してメモリーをより上手く管理する際に、リソースを割り当てます。HDRP ではメモリーをどのエフェクトに割り当てるかを特定すると同時に、どのアルゴリズムを使ってこれらのエフェクトをプロセスするかを特定できます。
これらの設定は、HDRP プロジェクトで利用可能なエフェクトを定義し、アプリケーションが使う GPU パフォーマンスとグラフィックスメモリー量に影響を与えます。有効化するエフェクトの数が少ないほど、HDRP が使うメモリー量は少なくなります。またあるエフェクトに精密度の低いアルゴリズムを使うと、HDRP はそのエフェクトをより素早く処理します。
HDRP がメモリーを割り当てるエフェクト、およびそれらを処理するために使うアルゴリズムのリソース負荷を特定するには、HDRP Asset を参照してください。
GPU パフォーマンス容量と利用可能なグラフィックスメモリー量は、各プラットフォームとコンピューターで異なります。これを踏まえて、HDRP ではプロジェクトに対して複数の HDRP Assets を定義することができます。各 HDRP Asset は特定のプラットフォームまたは品質レベルをターゲットにし、パフォーマンスとレンダリング品質のバランスを維持します。例えば、以下に対して個別の HDRP Asset を定義することができるます。
- Xbox One
- Xbox One X
- PlayStation 4
- PlayStation 4 Pro
- PC - 低
- PC - 中
- PC - 高
Unity で HDRP Asset と Quality Settings を使う
デフォルト HDRP Asset
HDRP を使うためには、HDRP Asset を作成して、Scriptable Render Pipeline としてプロジェクトに割り当てる必要があります。この手順については HDRP Asset の作成 を参照してください。HDRP Asset を Scriptable Render Pipeline として割り当てる際には、デフォルト HDRP 設定のすべてを含む、プロジェクトの default HDRP Asset として機能します。
品質レベルのオーバーライド設定
異なるハードウェアおよびコンピューター処理能力に応じて HDRP 設定をオーバーライドするには、オーバーライド値を含む HDRP Asset を新たに作成する必要があります。
スケーラビリティーを確保するために、各コンソールに個別の HDRP Asset を定義すると同時に、低性能、中性能、そして高性能コンピューターにも HDRP Asset を定義してください。
関連 HDRP Asset との品質レベルを示す Quality Settings Panel
HDRP Asset を作成したら、今度はそのアセットに対する Quality Level を作成します。この手順はまず Project Settings > Quality へ移動し、Add Quality Level をクリックします。次に新しい Quality Level を選択して HDRP Asset を Render Pipeline Asset プロパティーに割り当てます。
Quality Level に割り当てる HDRP Asset は、Quality Level の current (現在の) HDRP Asset です。
ノート: 複数の Quality Levels に同じ HDRP Asset を使うことができます。Quality Level に HDRP Asset を割り当てない場合は、Quality Level は default (デフォルト) HDRP Asset を current (現在の) HDRP Asset として使います。
品質レベルの編集
HDRP Asset の Quality Level の編集には、 Project Settings ウィンドウの HDRP パネルを使うことができます。
上部には default (デフォルト) HDRP Asset と Quality Level に割り当てた HDRP Asset すべてが含まれている、 HDRP Asset のリストがあります。 HDRP Asset を編集するには、リストから選択して下に表示されるインスペクターを使います。
HDRP 品質設定パネルで特定の HDRP Assets の値を編集できます
現在の品質設定パラメーターの使用
デフォルト HDRP Asset および品質設定にある HDRP Asset の定義されている設定は両方とも、レンダリング中に使用されます。
さまざまな Quality Level 用に事前定義された値
単一フレームでは、要素によって異なるリソースが必要となる場合があります。例えば、カメラにより近いところにある Spot Light は、遠くにある Light よりも高いシャドウ解像度になるでしょう。
この種の設定には、以下のいずれかの手段で対応します。
- カスタム値を常に使います。
- 現在の HDRP Asset で定義される値を使います。
上記の例では、Light のシャドウ解像度は以下のいずれかに該当します。
- Light の Inspector で設定したカスタム値
- 現在の Quality Level の HDRP Asset で事前定義された値の 1 つ (Low、Medium、High、Ultra のいずれか)
The shadow resolution of the Directional Light のシャドウ解像度が、Quality Levels HDRP Asset で事前定義された Medium 値を使っています
Shader Graph の Material Quality Node
Shade Graphs の Material Quality は、特定の品質にどのコードを実行するかを決定するために使うことができます。現在の品質レベルは、HDRP Asset の Material セクションにあります。
任意の品質レベルに対して、すべてのマテリアルに同じ Material Quality Level が適用されていることが重要です。1 つのレンダリングで異なるシェーダー品質が必要な場合は (例えば Shader LOD システムなど)、専用の Shader を作成して、レンダリングには適切な複雑性を持った別の Shader を使うべきです。
Shader Graph 内のレイトレーシング Quality Keyword
レイトレーシングを使う Shader Graphs には、レイトレーシング品質キーワード を使って高速実装を実現します。
HDRP は高速実装を使い、正確性が重視されない場所で、レイトレースによるレンダリング機能のパフォーマンスを向上させます。