Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

UnityでOculus Quest開発するならこれ読んどけ - UnityでのMobile VR用の推奨パフォーマンス設定 -

213 views

Published on

(文字のつぶれがましなPDF版も公開しています。)
UnityでOculus Quest開発する際の良好なパフォーマンスを出すための基本となる設定です。プロジェクトに応じて最適な設定をみつけてください。
PDF版URL
https://drive.google.com/file/d/103dsuV1jkVw1hUW9ItlQJvBTxpVKx68k/view?usp=sharing

Published in: Technology
  • Be the first to comment

UnityでOculus Quest開発するならこれ読んどけ - UnityでのMobile VR用の推奨パフォーマンス設定 -

  1. 1. UnityでOculus Quest開発する ならこれ読んどけ UnityでのMobile VR用の推奨パフォーマンス設定
  2. 2.  良好なパフォーマンスの基本となる設定です。プロ ジェクトに応じて最適な設定をみつけてください。  UnityのAndroidビルドがすでにできる状態である ことを前提にしています。  UnityのバージョンはUnity2019をベースに説明し ています。 はじめに
  3. 3.  FileメニューからBuild Settingsを開く PlatformにAndroidを選択します。  Texture CompressionにASTCを選択します。 ASTC圧縮は、品質とファイルサイズの最適なバランスを提供します。画質 を重視する場合は、非圧縮を選択する必要がある場合もあります。  設定後にSwitch Platformボタンを押します。 Build Settings
  4. 4.  WindowメニューからPackage Managerを開くき ます。  パッケージの一覧から、Oculus Androidを選択し Installボタンを押します。 Packageのインストール
  5. 5.  Project SettingsのPlayerタブ、Resolusion and Presentation Settingsを開き、Use 32-bit Display buffer にチェックします。  Disable Depth and Stencil のにチェックを外します。 PlayerタブのResolusion Settings
  6. 6.  Color SpaceでLinearが選択できます。inear color はよりリ アルなライティングを生成します。  Project SettingsのPlayerタブ、Other Settingsを開き Graphics APIsのVulkanを削除します。 Oculus Go/Questで OpenGLES 3がサポートされています。  Multithreaded Renderingにチェックします。 グラフィックAPI呼び出しをメインスレッドから別のワーカースレッドに移 動します。CPU負荷をさげることができます。 PlayerタブのOter Settings
  7. 7.  Static Batchingにチェックします。 同じマテリアルの複数のStaticなオブジェクトがある際、それをあらかじめ 一つにまとめて描画して。Draw Callを減らすことができます。  Dynamic Batchingにチェックします。  GPU Skinningにチェックします。 Skinningの処理をGPU側で実行します。  Graphics Jobsはチェックを外します。(デフォルトのまま) PlayerタブのOter Settings
  8. 8.  Minimum API Levelを「Android 6.0 Marshmallow (API level 23)」に変更します。  Scripting Backendに IL2CPPを選択します。 デバイスで高速に実行されますが、ビルド時間が長くなります。 (OVR Quick Scene Previewを使って、ビルド時間を短縮することをすすめます。)  Target ArchitecturesのARMv7のチェックを外し、 ARM64にチェックを入れます。 PlayerタブのOter Settings
  9. 9.  Prebake Collision Meshesにチェック Unityは、読み込み時に物理メッシュを計算します。このボックスをチェッ クすると、代わりにビルド時にメッシュが生成されます。これにより、プロ ジェクトのビルドサイズが増加しますが、レベルの読み込み時間が短縮され ます。 APKのサイズに問題がない場合は、このチェックボックスをオンに することをお勧めします。  Keep Loaded Shaders Aliveにチェック このオプションを選択すると、起動時にすべてのシェーダーがロードされます。これに より、アプリケーションの初期ロード時間が増加しますが、オンデマンドシェーダーコ ンパイルによる問題は解決されます。オンデマンドでシェーダーをコンパイルすること が問題になる場合は、このチェックボックスをオンにします。 PlayerタブのOter Settings
  10. 10.  Optimize Mesh Dataにチェック このボックスをチェックすると、メッシュを使用するマテリアルによって参 照されていないメッシュから頂点データ(接線、法線、色、UVなど...)が 削除されます。このオプションを有効にすると、最終的なAPKサイズを小さ くすることができます。 PlayerタブのOter Settings
  11. 11.  XR Settingsタブを開き、Virtual Reality Supportedにチェックします。  Virtual Reality SDKsリストにOculus SDKを追加し ます。  Stereo Rendering ModeにSingle Passを選択します。 左右の目の画像を同時に 1 つのまとめてレンダーテクスチャにレンダリングす ることで、パフォーマンスを向上させます。 PlayerタブのXR Settings
  12. 12.  Qualityタブを開き、quality Levels checkboxes を Mediumを除きチェックを外します。 Qualityタブ
  13. 13.  Pixel Light Count to either に1か0に設定します。 ピクセルライトカウントは1にする必要があります。可能であれば、頂点ラ イトシェーダーを使用してみてください。その場合、ピクセルライトカウン トは0に設定できます。  Anisotropic TexturesをDisableに設定します。 ARM Mali GPU'sは異方性フィルタリングをサポートしていません。  Anti Aliasingに、4x Multi Samplingを選択します。 Qualityタブ
  14. 14.  Shadows にDisable ShadowsかHard Shadows Onlyを選択します。  Blend Weightsを2 Bonesに設定します。  V Sync CountをDon‘t Syncに設定します。 oculusランタイムは独自のV Syncを処理します。 Qualityタブ
  15. 15.  Audioタブを開き オーディオ最高の没入感を得るために、すべてのゲームでspatialize audio にすることをお勧めします。spatialize audioでは、少なくともオーディオ マネージャーで次の設定を変更する必要があります。 ・DSPバッファサイズを適切なレイテンシに設定 します。 ・SpatializerプラグインをOculus Spatializerに 設定します。 Audioタブ
  16. 16.  Graphics tabタブを開き、Standard shader qualityのすべてのドロップダウンをLowを選択し ます。 可能であれば、標準シェーダーの使用を避け、代わりにモバイルシェーダー を使用してください。  Rendering Pathは全てForwardを選択します。  Real Time GI CPU Usageのすべてのドロップダウ ンをLowを選択します。 Graphicsタブ
  17. 17. おまけ
  18. 18.  CPU・GPUレベル 負荷によってCPUとGPUの変動するクロック数を固定 することができます。 OVRManager.cpuLevel = 0(低)~3(高); OVRManager.gpuLevel = 0(低)~3(高); スクリプトでの設定 (Oculus Integrationを利用する場合)
  19. 19.  Fixed Foveated Rendering 人の目線がいく視野の中心部のみを高解像度で、まわりを低解 像度でレンダリングすることで負荷を減らします。 OVRManager.fixedFoveatedRenderingLevel = OVRManager.FixedFoveatedRenderingLevel.{High~Off}; 負荷状況に応じて、おまかせで変更する場合 OVRManager.useDynamicFixedFoveatedRendering = true; スクリプトでの設定 (Oculus Integrationを利用する場合)

×