MRTK のサンプルシーンに ARCore Depth API を適用して Environment Occlusion をしてみた 【MRTK 2.4, AR Foundation 4.1】

こちらの記事の続きです.
xrdnk.hateblo.jp

MRTK のサンプルシーンに ARCore Depth API を適用しました.
これにより深度情報が加わります.

使用環境

Software

  • Unity 2019.4.1f1
  • MRTK 2.4
  • AR Foundation 4.1.0-preview.2
  • ARCore XR Plugin 4.1.0-preview.2
  • ARKit XR Plugin 4.1.0-preview.2

上記のPackageを事前にImport済とする.

Hardware

  • Pixel 4

Mac機を所持してないため,Androidのみの検証となってます.

事前環境構築

前回の記事の手順通りに進めます.

xrdnk.hateblo.jp

追加手順

至って簡単で,Mixed Reality Playspace の子である Main Camera に AR Occlusion Manager スクリプトをアタッチすればOKです.

f:id:xrdnk:20200628141813p:plain

AR Session Origin ありますよね.
その子にAR Cameraがありますが,そこにAR Occlusion Managerスクリプトをアタッチすれば良いことと同様です.

Main Cameraに AR Occlusion Manager をアタッチすればOK牧場

AR Occulusion Manager

AR Foundation 4.1 版であることに注意.それ以前はScripting APIが変わってます.

docs.unity3d.com

Environment Depth Mode

環境オクルージョン用のデプス画像レンダリング品質の設定.

Disabledの場合だとDepth Textureが生成されない.

Fastest < Medium < Best で右に行くほど品質は上がるが,フレームの計算が増加していく.

Human Segmentation Stencil Mode

ピープルオクルージョン用のステンシル画像レンダリング品質の設定.

ピープルオクルージョンを今回考慮しないので,今回 Disableにしています.
同様に,Fastest < Medium < Best で右に行くほど品質は上がるが,フレームの計算が増加していく.

Human Segmentation Depth Mode

ピープルオクルージョン用のデプス画像レンダリング品質の設定.

ピープルオクルージョンを今回考慮しないので,今回 Disableにしています.
同様に,Fastest < Medium < Best で右に行くほど品質は上がるが,フレームの計算が増加していく.

Occlusion Preference Mode

Prefer Environment Occlusion と Prefer Human Occlusion があります.
今回はピープルオクルージョンを考慮しないので,Prefer Environment Occlusion にしてます.

動作確認

MRTKのサンプルシーンにオクルージョンできた.