【Unity】レンダリング手法をビルトインからURPにしたら処理負荷が減った件

2024年5月19日

どうも、だらはです。
今回は、レンダリング方法をビルトインからURPにしたら処理負荷が減った件についてまとめようと思います。

スポンサーリンク

レンダリング手法の比較

先ず、Unityには大きく分けて3つのレンダリング手法があります。
リファレンスを読み込むのは大変だと思いますので、簡単に比較表にまとめます。

  ビルトイン URP HDPR
描画速度
描画品質
安定性
用途 試作 モバイル 据え置き

次項では、ビルトインからURPへの移行方法についてまとめたいと思います。

ビルトインからURPへの移行手順

手順は以下の通りです。
適宜、後述の画像を参照ください。

◆手順

  1. [Window -> Package Manager -> Unity Registry – > Universal RP -> Install]よりURPパッケージをインストールする。
  2. [Project -> Rendering -> URP Asset (with Universal Renderer)]を選択する。
  3. 新規作成されたファイル[New Universal Render Pipeline Asset][URPAsset_my]に、[New Universal Render Pipeline Asset_Renderer][URPAsset_Renderer_my]に変更する。
  4. [Project Settings -> Graphics -> Scriptable Render Pipeline Settings][URPAsset_my]を設定する。
  5. [Project Settings -> Quality -> Render Pipeline Asset][URPAsset_my]を設定する。
  6. [Window -> Rendering -> Render Pipeline Converter]よりマテリアルをURP向けに変換する。
  7. 意図しない色合いのマテリアルの設定を変更する。

以上です。

◆変更前(ビルトインでの処理負荷)

◆手順6

◆手順7

◆変更後(URPでの処理負荷)

本手順により処理負荷が軽減されることを確認できました。(Batchesも減っています)
しかし、一部のマテリアルについてビルトインと同様には調整しきれませんでした。(木のマテリアルについて)
どうしてもビルトインと同じ描画にしたい場合はマテリアルとシェーダーについて要勉強になります。。

高速化の備忘

SRP Batcherの設定箇所

URPでは高速化のためにSRP Batcherがデフォルトで有効になります。
しかし、SRP Batcherの設定箇所はデフォルトで隠されています。
公式リファレンスにもその旨はありますが、バージョンが違う場合表示が異なる場合があります。
私の環境の場合、URP AssetのRenderingの垂直の省略記号アイコン (⋮)からAdvanced Propertiesを選択すると、
Renderingの設定項目にSRP Batcherのチェックボックスが表示されました。

Saved by batchingがゼロになる

Saved by batchingが0になってしまった場合、Instantiateなどで動的生成した物体の「Batching Static」が有効となっていることを確認してください。

最後に

いかがでしたでしょうか。
私はまだURPに慣れていませんが、モバイル向けに開発する場合、ビルトインではなく初めからURPで始めても良いかと思います。
後からマテリアルを変更するのは大変ですし、何より処理負荷を優先すべきと考えるためです。
もし良い情報ありましたらコメント頂けると嬉しいです!

以上、だらはでした。

スポンサーリンク

基礎

Posted by daraha_gm