デコシノニッキ

ホロレンジャーの戦いの記録

モバイルVR向けのGoogle Seuratを触ってみる

先日、GoogleのモバイルVR向けのレンダリング技術であるSeuratがオープンソースになりました

www.moguravr.com

が、使い方が全くわからずもやもやしていたところ、コメント欄で使いかたがまとめられていたので試してみました

必要なもの

  • seurat-unity-plugin (Cloneしてください) github.com

  • seurat-compiled-msvc2017-x64.zip github.com

Seuratの流れ

Step1はUnity、Step2はビルド済みのPipelineを使ってそれぞれ生成します

f:id:haikage1755:20180516011912p:plain:w250

Pipeline用の入力生成

CloneしたUnityProjectを開くと、Scene内にCaptureHeadBoxというスクリプトがアタッチされたSeurat Headbox Captureというオブジェクトがあります。

f:id:haikage1755:20180516011036p:plain:w250
このCaptureHeadBoxはカメラが動く範囲のことで、その範囲内で見ることができるViewをキャプチャしていきます。
f:id:haikage1755:20180516011806p:plain:w250

  • Output Folder: Choose Output Folderから入力画像を吐き出したい場所を指定
  • Headbox Size: カメラが動きまわる範囲です
  • Sample Count: 上下左右前後の方向からそれぞれキャプチャする際に、それぞれ何枚ずつキャプチャするか
  • Center Capture Resolution: 上下左右前後のそれぞれの面の中心となる位置の解像度です
  • Default Resolution: Center以外の解像度です
  • Dynamic Range: SDR/HDR16/HDRを指定できます


設定ができたら、Captureボタンを押しましょう。今回はサンプルのシーンをそのまま使います。しばらくすると画像が生成されます。

f:id:haikage1755:20180516014849p:plain:w250

RGBの画像に加えて、Depth情報も出力されます。
f:id:haikage1755:20180516013007p:plain:w250

Manifest.jsonには、Pipeline処理のために必要な情報が記載されています。詳しくは本家のpluginのページを参照してください。

Pipelineでジオメトリとアトラスを生成する

zipファイルを展開して、「seurat-pipeline-msvc2017-x64.exe」を使います。
コマンドプロンプトを開いて、

seurat-pipeline-msvc2017-x64.exe -input_path manifest.json -output_path 任意のパス

のように実行してください。すると処理がはじまり、だいたい10-15分程度でOBJファイルとPNGファイルが生成されます。

Unityへ取り込む

生成したOBJとPNGをUnityへ取り込みます。今回はCaptureに使ったプロジェクトと同じプロジェクトを利用します。
PNGは、

  • mipmapを無効にする
  • repeatをclamp
  • 解像度を2046から4096に変更(重要)

してください。

Seurat_Resultをシーンに配置しましょう。 このような真っ白なCubeが現れると思いますが、慌てないでください。
f:id:haikage1755:20180516014326p:plain:w350

default下のオブジェクトのShaderをGoogleVR/Seurat/AplhaBlendedに変更してください。今回プロジェクトを流用した理由がこれです(めんどくさい)

f:id:haikage1755:20180516014446p:plain:w250

そしてTextureに先程のPNGを指定してやると、
f:id:haikage1755:20180516021444p:plain:w350

このCubeの中を見渡してみると、先程Captureしたオブジェクトを確認することができます。 f:id:haikage1755:20180516014736p:plain:w350


分かりづらいので、Cubeで生成してみたときの画像です。カメラから見えない部分はこのようになっています。

f:id:haikage1755:20180516015126p:plain:w350

バッチ数比較

で、肝心のパフォーマンスについてですがバッチ数を比較してみると、

  • Default: 16
  • Seurat; 5

でした。単純なQuadでもここまで差がでるようです。

まとめ

というわけでSeuratを触ってみたでした。
今回他にもHoloLensでも動くのか?と試したところバッチリ動きました。インタラクティブなコンテンツには向きませんが、見るだけ系コンテンツや、賑やかしに使うにはいいかもしれません。
また、今回はそこまで調べられませんでしたが、Pipelineには色々引数がありカスタマイズ性は高そうでまだまだ遊べる余地がありそうです。

[デコシノニッキ]は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。」