UnityHDRPってなにができるんだろう?

はじめに

こんにちは!新人エンジニアの広瀬です。今回はUnityの描画技術のポテンシャルを知りたいと思い、レンダリングパイプラインについて調べました。まず、Unityには3つのレンダリングパイプラインが用意されています。
・Built-in RP(Built-in Render Pipeline)
・URP(Universal Render Pipeline)
HDRP(High Definition Render Pipeline)
今回はHDRPについて調べたことをまとめます。

HDRPとは?

HDRPは高忠実度・高性能なグラフィックを実現するためのレンダリングパイプラインです。フォトリアルな表現やレイトレーシングといった先進的な機能に対応し、主にPCやコンソールなどのハイエンドデバイス向けに提供されています。高い拡張性があり、幅広い表現を実現することが可能です。
下の画像はUnityが配布しているHDRPのサンプルデモのスクリーンショットです。とても綺麗ですね~

このサンプルデモ内での描画処理は全て提供されているものであり、再現しようと思えば数値調整によって再現可能です。

URPとの違い


URPとは、HDRPと同じく高い拡張性を持ったレンダーパイプラインです。URPとHDRPには特徴に差があります。
・グラフィックの表現力
HDRP > URP
・描画の処理負荷の軽さ
HDRP < URP
・対応プラットフォームの幅広さ
HDRP < URP
以上のことからHDRPは表現力に特化していることが分かります。逆に、新しくゲーム開発を始めるときにどのレンダリングパイプラインにしようか迷う際はURPを選ぶのが無難です。

HDRPで実現できること

この空間で私が注目した点は「Volumetric Fog」「影」の2つです

Volumetric Fog

霧や霞のような光の表現を再現する技術です。オブジェクトの表面ではなく空間に対してライティングをかけます。
光の柱(ゴッドレイ)、ライトの周囲のもや、光の減衰などがリアルに表現できます。森の木漏れ日や神殿などで幻想的な雰囲気を表現したい際に適しています。

Volumetric Fogあり

Volumetric Fogなし

ちなみにVolumetric FogはURPに実装されておりません。憶測ですが、URPはモバイルゲームでも動作するようにパフォーマンスが重視されているため、レイマーチングを使うVolumetric Fogは処理負荷が高くなるので実装されていないのではないかと考えています。

HDRPではカスケードシャドウという手法が採用されています。カスケードシャドウを簡単に説明すると、影の細かさを数段階に分け、カメラとの距離に応じて細かさを選択し、影を出す手法です。この手法のメリットは遠方まで影を出しながら処理負荷を軽減できることです。以下は段階ごとの影の違いです。
対象まで1m, 1段階目

対象まで3m, 2段階目

距離の段階を決められる

HDRPでは段階分けするだけではなく、影の細かさを前後の段階のものとグラデーションして影を出しています。これにより、急に影の細かさが変わって違和感を覚えることが減ります。
対象まで2m, 1段階目と2段階目の間 (よく見るとディザリングされています。)

HDRPの処理負荷

フレームレートを計測してみました。

実行環境
・CPU:Intel Core Ultra 7 265KF
・GPU:NVIDIA GeForce RTX 4060
・メモリ:64GB
・Unityバージョン:6000.0.28f1

結果
100FPS前後を保っている状態です。

植物のショーケースを5個増やしてみる
約80FPSまで減少しました。
森のようなフィールドを作ろうとすると処理落ちしそうです。

おまけ
Volumetric Fogの品質をMiddleからHighに変更した結果、30FPSを下回りました…

さいごに

今回はHDRPについて調べまとめてみました。表現力が高い反面、処理負荷が高いので一長一短のようです。油断するとゴリゴリFPSが低下するため、ゲーム作り上級者向けのレンダリングパイプラインという印象を持ちました。

最後まで読んでいただきありがとうございました!