HDRPを導入して3Dオブジェクトの色を表示させるまで

Unityは色々なことが出来る反面、特定の部分ばかりに集中していると他の事を忘れてしまう欠点もある。

自分はプログラミングばかりやっており、他の機能を無視してきた。

だけどとうとうHDRPを導入しなければいけない事例があったので、勉強していく。

HDRPとは

High Definition Render Pipeline(以下HDRP)の略称。 簡単にいえば今までのライティング(光)をよりリアルにしたものです。 従来のURP(Unity Universal Render Pipeline)はスマホ向けに対し、HDRPはハイスペック機種向け(PC等)とのこと。 URPとHDRPは互換性がないようです。

設定環境

  • Unity 2020.3.32f1(LTS)
  • HDRP version 10.8.1

Unityのバージョンに関して

HDRPを使うにはUnity2019.3以上が必須。それ以下の場合は新しくダウンロードしましょう。UnityのバージョンによってHDRPの対応バージョンも異なりますが、ソフト側が最適なバージョンに自動的に設定してくます。

unity3d.com

超簡単なHDRPの導入手順(Wizardを使用)

Unityが起動したら、Windows > PackageManager > Package: Unity Registry > High Definition RP > Install  を選択


f:id:HigashiVR:20220409194212p:plain
Package Manager


インストールしたらPrender Pipeline Wizardが出てくるのでFix Allを選択すれば、! は全てなくなります。


f:id:HigashiVR:20220410112046p:plain
Render Pipeline Wizard

これでHDRPの導入は完了ですが、どの設定が変化したのか分からないので、Wizardを使わずに設定してみましょう

Wizardを使わないHDRPの導入方法

インストールする手順は上記と変わらないのでそのままの手順を使ってください。

Assets > Create > Rendering > High Definition Render PipelineAsset を選択

HD Render Pipeline AssetファイルがProjectフォルダーに作られる(名前は自由)


f:id:HigashiVR:20220410140332p:plain
HD Render Pipeline Asset


Edit > ProjectSettings...を選択する

f:id:HigashiVR:20220409200927p:plain
Graphics


Graphics > Scriptable Render Pipeline Settings を先ほど作ったHD Render Pipeline Assetファイルに適用させる

適用させるSceneが暗くなり、3DObjectを導入させても黒く塗りつぶされた画像になるので、修正する必要があります。

f:id:HigashiVR:20220409201958p:plain
暗くなったScene


Player > Color Space > Linear に変更する。

f:id:HigashiVR:20220409201932p:plain
Color Spaceの変更


変更すると注意書きが出ますが、Change to Linear を選択する。

f:id:HigashiVR:20220410142425p:plain
Color Space変更による注意


これらを実行した後に、Materialを作成するとShaderがStandardからHDRP/Litに変更になります。

f:id:HigashiVR:20220410142830p:plain
Material

HDRPが適用されている状態でShaderをStandardにすると、何も表示されません。 StandardのようなShaderを表示させたい時は、HDRP/Unlitを選びましょう。

f:id:HigashiVR:20220409202427p:plain
設定:HDRP/Unlit

f:id:HigashiVR:20220409203045p:plain
設定:HDRP/Lit




おわりに

やり方を書くのはとても簡単ですが、試行錯誤してやっていくと理解するまで結構時間がかかりました。その原因は自分が使っているUnityのバージョンに合っているものがないからです。バージョン違いで本来ある項目が消えていたりと試行錯誤の連続でした。Shader Graphを使うためにHDCPを導入したけど、遠回りはあるが程度理解が進んでよかったと思っています。