ARとMRとVRの境界を
なくしたい話
ARとMRとVRの境界を
なくしたい話
をしようと思ったけれど、Nrealは話していいことが少ないし、HoloLens 2来ないし、
普通に開発中で得たことを話します…
時間の許す範囲で…
本日のコース
1.Oculus QuestでVulkanビルドしてみた
2.UnityでVRオープンワールドを試みた
3.Unity 2019.3のすゝめ
自己紹介
Twitter:DBK(@00sya)
toB向けのXRソフトウェアを提供している会社に勤めています
We are hiring!!!
1.Oculus QuestでVulkanビルドしてみた
2月はじめ
Vulkanて?
・クロノスグループによって策定されたローレベルグラフィックスAPI
→ その他に、AMDの「Mantle」、Appleの「Metal」など
・直接GPUへアクセスでき、OpenGLに比べて無駄が少なく速い描画が可能
・並列処理の効率化、同期処理が不必要
→CPUの負荷が格段に軽減され、描画のパフォーマンスが向上
・2016年にAndroid 7.0が対応
Vulkanて?
軽い
・クロノスグループによって策定されたローレベルグラフィックスAPI
→ その他に、AMDの「Mantle」、Appleの「Metal」など
・直接GPUへアクセスでき、OpenGLに比べて無駄が少なく速い描画が可能
・並列処理の効率化、同期処理が不必要
→CPUの負荷が格段に軽減され、描画のパフォーマンスが向上
・2016年にAndroid 7.0が対応
やってみた
環境
・Unity 2019.3.2f1
・Oculus Integuration 13.0 (← Oculus Linkでハンドトラッキングも 使えるようになったよ)
環境
※公式ではサポートしていない
・Unity 2019.3.2f1
・Oculus Integuration 13.0 (← Oculus Linkでハンドトラッキングも 使えるようになったよ)
なぜやったのか
・公式では XR Management package でのVulkan対応開発を公表
・どのくらい軽いのか調べてみたい
・XR Management package はまだ未知数
・Oculus Integurationは現在のプロジェクトに組み込まれている
→ Oculus IntegurationでVulkan向けのビルドできたら色々良さそう
開発
・Project settings
→XR Settings
→Virtual Reality SupportedをON
→SDKsOculusを追加
・Project settings
→Other Settings
→Graphics APIsでVulkanを追加
→Vulkanを上位に
開発
・2つのclassのVulkanビルド時にthrowされるExceptionをコメントアウト
1.OVRGradleGeneration ← Oculus Integuration
2.OculusVulkanWarning ← UnityAPI
というか、VulkanでビルドしようとするとErrorがConsoleに出るので
そこをコメントアウトすれば ok
開発
1.OVRGradleGeneration.cs
開発
2.OculusVulkanWarning (OculusBuildProcessor.cs)
>Library/PackageCache/com.unity.xr.oculus.android@2.38.6/Editor/OculusBuildProcessor.cs
→ UnityのAPIなのでプロジェクトを開くたびにリロードされるので注意
ビルド
Oculus Integurationのサンプルシーンを以下2つのGraphic APIでビルド
1.OpenGLE3
2.Vulkan
結果
1.OpenGLE3
結果
1.OpenGLE3
約72FPS
結果
1.Vulkan
結果
1.Vulkan
約72FPS出ているが…
結論
現状、わざわざVulkanを利用する必要性は少ない
もう少し解析したらQiitaに載せます
Experimentalでは無くなるのを素直に待ちましょう
2.UnityでVRオープンワールドを試みた
2.UnityでVRオープンワールドを試みた
こんなシーンがあります
2.UnityでVRオープンワールドを試みた
大きさ:約3km × 約3km
2.UnityでVRオープンワールドを試みた
シーンをでかくしていくと何が起こるか
2.UnityでVRオープンワールドを試みた
シーンをでかくしていくと何が起こるか
原点からの距離
2.UnityでVRオープンワールドを試みた
原点から離れるほどに、Z-fightingが多く発生する
2.UnityでVRオープンワールドを試みた
対策:重なりのあるGameObjectは法線方向の距離を離して置く
※原点からの距離が離れるほど話す距離を大きくする必要がある� →uGUIなど、距離があるとおかしいものは注意
Unity 2019のすゝめ
3.Unity 2019.3のすゝめ
・TryGetComponent
→ GetComponentで取得して中身がNullかどうかを確認しなくて済む
・参照のシリアライズ
→ 抽象クラスやインターフェースをシリアライズできる
・Dots
・Profiler
→ フレーム数が設定可能になり、ガベージコレクターのトリガーを識別可能
と、色々ありますが…
3.Unity 2019.3のすゝめ
Andoroid開発をしているとき…
3.Unity 2019.3のすゝめ
Andoroid開発をしているとき…
adbでアンインストールするのめんどくさい…
Package Name変更するのめんどくさい…
3.Unity 2019.3のすゝめ
Unity 2019ならなんと…!
Package NameをProjectの名前に自動で変更してくれる…!!!
同じPackage Nameでも前にインストールしたアプリをアンインストールしなくて済む!!!
3.Unity 2019.3のすゝめ
Unity 2019ならなんと…!
Package NameをProjectの名前に自動で変更してくれる…!!!
同じPackage Nameでも前にインストールしたアプリをアンインストールしなくて済む!!!
すごい!!!
新規プロジェクトを作るときは、Unity 2019待った無し
We are hiring!!!
ありがとうございました!