Quest2でPassthrough APIを使ってImmersalによる位置合わせを行う
こりんさんのツイートで、OculusIntegrationにパススルーAPIが来たことを知ったので、
前からやりたかったImmersalによる位置合わせを行う
需要とか
需要isどこって感じだと思っている
一応ロケーションVRのようなことができるけど......家でやる人is何......
Unity 2019.4.26でプロジェクト作成してみる
URPにしたかったけど、Passthroughがサポートしているか心配なのでビルトインで
確かにAsset StoreにあるOculus Integrationは今日アプデが来ていることがわかる
始めたはいいものの、Oculus Integrationもろくにさわったことがないので
passthroughってどうやって起動するの......って感じ
こりんさんのツイート見ると、それようのMonoBehaviourがあるっぽいけどいかに
oculus integration入れる前にSwitch Platformすればよかったな......となっている
こちらを参考にプロジェクトを設定していく
いまだとOculusがOpenXRをサポートしたりしてどうなるんだろう
そこらへん全くワカランなので勉強しなくちゃだな
とりあえず、ControllerModelというシーンを動かしてみた
なんか移動ができるシーンなのかな?
このバージョンのIntegrationだと、Quest2のバージョンをアプデしないと動かなかった
apiを使うための必要な設定がまとまっていた
おっついに自分にも出てきたわね
やっぱりまだ使えないのかなぁ
動いたという報告が上がる中、自分はまだ動かない......
全然作業のログを更新していなかったけど、こんな感じ
どうにもこうにもできないので、2020.3で作り直してみる
なぜかColorSpaceがLinearじゃないとビルドできなかった
ん-やっぱり実行できないんだけど、なんかログの出方が違うな
OpenXR_Passthroughってなんぞ......?OpenXR用の設定なんて全然していないけどな
んーちょっとわからんですな、、、今日は終了
上に挙げたスレに更新があった
どうやらOpenXRでIL2CPPのARM64ビルドでないと動かなさそうじゃない?という雰囲気があった
クゥーーー
こりんさんが手順を書いてくださっているので、これをもとに進めていく
動いた~~~
Projection Surfaceがどのような実装で映っているのか、コードリーディングとかしてみる
たとえばシェーダで映してるだけだったらRenderTextureからマテリアルの状態を抜き出してテクスチャ化できるので
それをカメラ映像としてImmersalAPIに放り込むことができる、みたいなのが一番うれしいんだよな
もしかりにSurfaceProjectionされたパススルー画像をCustom Render Textureを使って取得できたとして、
カメラパラメータがわからないよなぁとなってしまった
Immersalってテキトーな値入れたらどうなるんだろ
OVRPassthroughlayer
やOVRPlugin
などを眺めていると、
もしかするとSurfaceProjectionのジオメトリに合わせて新しいジオメトリ?メッシュ?を生成しているかもしれないなと思った
ランタイムでオブジェクトが生えている可能性がある、ちょっと厄介だな
OVRPassthroughLayer
の中のsurfaceGameObjects Dictionaryの値である、PassthroughMeshInstanceオブジェクトが気になっている
これの~~handle系、なぜかlong型なんだけどこいつをどうこうすればいいのかな
そもそもこの値が何を指しているのか画わからない
ん-でもGameObjectはそのままに、そのなかのMeshオブジェクトを再生成してる感じなのかな
そうなるとMeshRenderer経由でMaterialの取得は可能か