Version: 2018.2
シェーダー: 頂点とフラグメントプログラム
物理演算

スクリプタブルレンダーパイプライン

スクリプタブルレンダーパイプライン (Scriptable Render Pipeline、SRP) は、Unity の従来の ビルトインレンダリングパイプライン に替わるものです。 SRP を使用すると、C# スクリプトを使用してレンダリングの制御や調整ができます。このようにして、必要に応じてレンダリングパイプラインをわずかに変更したり、完全に作成しカスタマイズしたりすることができます。

SRP は、従来のビルトインレンダーパイプラインよりも細かくカスタマイズできるオプションを提供します。 また、構築済みの SRP の 1 つを使用して、特定のニーズに的を絞ることも可能です。

SRP の使用方法は、ビルトインのレンダリングパイプラインとは異なります。例えば、構築済み SRP には、新しいシェーダーライブラリが付属しています。これは、ビルトインレンダリングパイプラインの Lit シェーダーとカスタムの Lit シェーダーが SRP で動作しないためです。ビルトインの Lit シェーダは、軽量レンダーパイプライン (LWRP) と HD レンダーパイプライン (HDRP) の両方にアップグレードできます。

注意 これはプレビュー機能であり、変更されることもあります。この機能を使用するスクリプトは、将来のリリースで更新が必要な場合があります。この機能がプレビュー版である間は、本格的な制作に使用しないでください。

構築済み SRP

Unity は、HD レンダーパイプライン (High Definition Render Pipeline、HDRP) と 軽量レンダーパイプライン (Lightweight Definition Render Pipeline、LWRP) の 2 つの SRP フレームワークを使用するスクリプタブルレンダーパイプラインを構築しました。各レンダーパイプラインは、ユースケースシナリオとハードウェアによる特定の組み合わせを対象としています。構築済みレンダーパイプラインは、新しいプロジェクトのテンプレートとして利用できます。

これらのレンダリングパイプラインは両方とも、Unity の Package Manager ウィンドウを通してパッケージとして配信されます。どちらにも シェーダーグラフポストプロセス パッケージが含まれています。

注意 LWRP と HDRP は互いに互換性がなく、どちらもビルトインレンダリングパイプラインと互換性がありません。開発を始める前に、プロジェクトでどのレンダリングパイプラインを使用するかを決定する必要があります。

高画質レンダーパイプライン (HDRP)

HDRP は、コンソールや PC のようなハイエンドハードウェアをターゲットとしています。HDRP を利用すると、高レベルを求められるシナリオで現実的なグラフィックスを作成することができます。HDRP はコンピュートシェーダー技術を使用するため、互換性のある GPU ハードウェアが必要です。

HDRP は、AAA 品質のゲーム、自動車のデモ、建築用アプリケーション、その他、パフォーマンスよりも忠実度の高いグラフィックスを求められるものに適しています。HDRP は物理ベースのライティングとマテリアルを使用し、フォワードレンダリングとディファードレンダリングの両方をサポートします。

HDRP は 1 つのテンプレートで提供されます。

HDRP に関して詳細は、SRP GitHub Wiki の HDRP overview を参照してください。

軽量レンダーパイプライン (LWRP)

LWRP は、さまざまなレベルのハードウェアで使用できます。 このテクノロジーはモバイルプラットフォームにスケール可能で、ハイエンドのコンソールや PC にも使用できます。LWRP を利用すると、高速でのレンダリングを高品質で行うことが可能です。LWRP は、単純化された物理的なライティングとマテリアルを使用します。

LWRP は、シングルパスフォワードレンダリングを使用します。このパイプラインを使用すると、複数のプラットフォームでリアルタイムのパフォーマンスを最適化できます。

LWRP は、LWRP と LWRP-VR という 2 つのテンプレートで利用できます。LWRP-VR には、VR 専用の事前に使用可能に用意された設定が付属しています。

ノート ビルトインとカスタム製の Lit シェーダーは、LWRP では機能しません。代わりに、LWRP には新しいスタンダードシェーダーが備わっています。 現在のプロジェクトを LWRP にアップグレードすると、ビルトインのシェーダーを新しいものにアップグレードできます。

LWRP の最新のドキュメントを見るには、Unity のパッケージマネージャーに移動し、Lightweight Render Pipeline パッケージに移動し、View Documentation をクリックします。

スクリプタブルレンダーパイプラインの設定

SRP、HDRP、LWRP をインストールするには、いく通りかの方法があります。新規、または作業中のプロジェクトで構築済み SRP を使用したい場合は、このセクションを読み進んでください。Unity に熟練していて、直接 SRP スクリプトを変更したいユーザーは、カスタム SRP の作成 を参照してください。

構築済み SRP を新規プロジェクトと使用

新規プロジェクトで、レンダーパイプラインをカスタマイズせずに HDRP または LWRP を使う場合、テンプレート を利用して新規のプロジェクトを作成できます。

テンプレートを利用してプロジェクトを作成するには、以下の手順を行います。

  1. Unity を起動します。ホームのページで New をクリックして新規プロジェクトを開始します。
  2. Template でレンダーパイプラインの 1 つを選択します。
  3. Create Project をクリックします。Unity は選択したビルトインパイプラインのすべての機能を含め、自動的に新規プロジェクトを作成します。

テンプレートの使用に関する詳細は、プロジェクトテンプレート を参照してください。

既存のプロジェクトに最新の SRP をインストール

HDRP、LWRP、SRP の最新バージョンは、Package Manager システム 経由で既存のプロジェクトにダウンロードしてインストールすることができます。

既存のプロジェクトから SRP に切り替えると、多くの時間とリソースが消費されます。HDRP、LWRP、カスタム SRP はすべて、カスタムシェーダーを使用するため、ビルトインの Unity シェーダーと互換性がありません。手動で多くの要素を変更または変換する必要があります。代わりに、使用したい SRP を選択して新規プロジェクトを開始することを検討してください。

SRP を既存のプロジェクトにインストールするには、以下の手順を行います。

  1. Unity でプロジェクトを開きます。
  2. Unity のメニューバーで Window > Package Manager を選択し、Package Manager ウィンドウを開きます。
  3. All をクリックします。すると、現在、実行中の Unity のバージョンで使用可能なパッケージのリストが表示されます。
  4. パッケージリストから使用したいレンダーパイプラインを選択します。ウィンドウの右上の Install をクリックします。これにより、レンダーパイプラインは、直接プロジェクトにインストールされます。

構築済みレンダーパイプラインの設定と使用

構築済みレンダリングパイプラインを使用する前に、レンダリングパイプラインアセットを作成し、プロジェクト設定に追加する必要があります。以下のセクションでは、SRP アセットの作成方法と、SRRP アセットを HDRP か LWRP に加える方法について説明します。

スクリプタブルレンダーパイプラインアセットの作成

選択した SRP を適切に使用するには、スクリプタブルレンダーパイプラインアセットを作成する必要があります。

スクリプタブルレンダーパイプラインアセットはプロジェクトのグローバルなレンダリング品質設定を制御し、レンダーパイプラインのインスタンスを作成します。レンダーパイプラインインスタンスには中間リソースとレンダーパイプライン実装が含まれます。

複数のパイプラインアセットを作成して、異なるプラットフォームや異なるテスト環境の設定を保存することができます。

レンダーパイプラインアセットの作成は以下の手順で行います。

  1. エディター内で Project ウィンドウに移動し、Scriptable Render Pipeline フォルダーの外のディレクトリに移動します。
  2. Project ウィンドウ内で右クリックし、Create > Render Pipeline の順に選択します。
  3. ニーズに合わせて High DefinitionLightweight のいずれかを選択します。Render Pipeline/Pipeline Asset をクリックします。

ノート HDRP と LWRP は異なるライティングモデルを使用しているため、互換性がありません。プロジェクトにはどちらか一方しか使用できません。ただし、同じレンダリングパイプラインで異なるアセットを使用することはできます。つまり、個々の設定を変更する代わりに、異なるアセットを使用して異なる設定をテストすることができます。

HDRP の設定と使用

HDRP を使用するには、プロジェクトの PlayerGraphics の設定を以下のように変更します。

  1. エディターで Edit > Project Settings > Player の順に移動します。Color Space ドロップダウンで Linear を選択します。HDRP は Gamma ライティングをサポートしません。
  2. Project ウィンドウで、Scriptable Render Pipeline フォルダーの外のディレクトリに移動します。
  3. Project ウィンドウ内で右クリックし、 Create > Render Pipeline > High Definition > Render Pipeline の順に選択します。
  4. Edit > Project Settings > Graphics の順に移動します。
  5. Scriptable Render Pipeline Settings フィールドで以前作成した High Definition Render Pipeline Asset を加えます。

ヒント: High Definition Render Pipeline Asset は常に Scriptable Render Pipeline フォルダーの外に保存します。こうすることによって、SRP GitHub リポジトリから新しい変更をマージする際に HDRP 設定を失わずに済みます。

LWRP の設定と使用

LWRP を使用するには、プロジェクトの Graphics 設定を以下のように変更します。

  1. Project ウィンドウで、Scriptable Render Pipeline フォルダーの外のディレクトリに移動します。
  2. Project ウィンドウ内で右クリックし、Create > Render Pipeline > Lightweight > Pipeline Asset の順に選択します。
  3. Edit > Project Settings > Graphics の順に移動します。
  4. Render Pipeline Settings フィールドに、以前作成した LWRP アセットを加えます。

ヒント LWRP アセットは常に Scriptable Render Pipeline フォルダーの外に保存します。こうすることによって、SRP GitHub リポジトリから新しい変更をマージする際に LWRP 設定を失わずに済みます。

カスタム SRP の作成

SRP は GitHub のオープンプロジェクトで利用可能です。SRP を複製を作成しローカルのものを変更できます。

新規、または既存の Unity プロジェクトのローカルのスクリプトファイルを設定するには以下の手順で行います。

  1. SRP リポジトリの複製を作成します。Project ディレクトリのルートで Assets フォルダーのとなりに複製を置きます。リポジトリの複製に関する情報は GitHub Help の リポジトリをクローンする を参照してください。

  2. Unity のバージョンと一致するブランチをチェックアウトします。git checkout コマンドを使用し、ブランチ名をタイプします。

  3. git submodule update --init コマンドを使用して、SRP に関連するすべてのサブモジュールを見つけて初期化します。

  4. プロジェクトマニフェストで、dependencies を更新すると、SRP パッケージを指します。 プロジェクトマニフェストに関して詳しくは Package Manager ドキュメント を参照してください。以下はスクリプトの 1 例です。

        
    {
    
       "dependencies": {
           "com.unity.postprocessing": "file:../ScriptableRenderPipeline/com.unity.postprocessing",
    
           "com.unity.render-pipelines.core": "file:../ScriptableRenderPipeline/com.unity.render-pipelines.core",
    
           "com.unity.shadergraph": "file:../ScriptableRenderPipeline/com.unity.shadergraph",
    
           "com.unity.render-pipelines.lightweight": "file:../ScriptableRenderPipeline/com.unity.render-pipelines.lightweight"
    
       }
    }
    
  5. Unity でプロジェクトを開きます。パッケージはローカルにインストールされています。統合された開発環境で Project Solution を開くと、スクリプトを直接デバッグし修正することができます。


シェーダー: 頂点とフラグメントプログラム
物理演算