URP(ユニバーサルレンダーパイプライン)の使用

ARRenderingManager をURP(ユニバーサルレンダーパイプライン)と一緒に使う方法。

概要

ARRenderingManager をURPと一緒に使うには以下の条件をすべて満たす必要があります。

  • プロジェクトでURPの使用が有効化されています。

    • これはユニバーサルレンダーパイプライン(URP)テンプレートを使って新しいUnityプロジェクトを作成すると自動で有効化されます。このテンプレートを使用する選択肢が表示されない場合は、New ボタンの隣にある下向きの矢印をクリックし、選択されているUnityのバージョンが2019.4以降であることを確認してください。

    • あるいは**Package Manager** (メニュー: Window> Package Manager)を開いてユニバーサルRPパッケージをインストールすれば手動でプロジェクトを有効化できます。

  • パイプラインアセットはグラフィックスメニューの**Scriptable Render Pipeline Settings** 欄(メニュー: Edit> Project Settings> Graphics)にアサインされています。

  • パイプラインのデフォルトレンダラーには次の機能が追加されます:

    • ARフレームをアップデートするための ARSessionFeature

    • 深度ベースのメッシュオクルージョンを使用するための DepthMeshRendererFeature

    • 注記: 提供される ArdkUrpAssetRenderer にはこれらの両方が含まれ、開始する際に利用できます。提供される ArdkUrpAsset パイプラインアセットはこのレンダラーを使用します。

  • Virtual Studioのモックセマンティックセグメンテーション機能を使用するには、「ArdkReplacementRenderer」もパイプラインアセットに追加する必要があります。

ARセッション機能 (ARSessionFeature)

ARセッション機能 は非URPパイプラインとできる限り同じように機能するようデザインされており、2つのパスをレンダラーのキューに加え、各パスが1つのカメラに対して1つのコマンドバッファを実行します。

  1. 1つ目はカメラフィードのレンダリングを行い、 RenderPassEvent.BeforeRenderingOpaques ステージに追加されます。このバッファはARSessionBuffersHelper.AddBackgroundBuffer(カメラ、コマンドバッファ)メソッドで設定可能です。

  2. 2つ目はARアップデートを起動して表面化させ、 RenderPassEvent.AfterRendering ステージに追加されます。このバッファはARSessionBuffersHelper.AddAfterRenderingBuffer(カメラ、コマンドバッファ)メソッドで設定可能です。

The ARSession constructor handles initialization for the after rendering pass for Android and ARCore. Each enabled ARFrameRenderer handles initialization for the background pass. Both those classes explicitly use the ARSessionFeature; however, using custom command buffers with your own custom renderer features is also possible.

こちらもご覧ください

ARDKのレンダーパイプラインの仕組みに関する詳細はこちらをご覧ください: