😅
JMRSDK Development
v4.33
v4.33
  • Jio Mixed Reality SDK Documentation
    • Changelog 4.33.0
      • Upgrade Guide 4.33.0
    • Changelog 4.33.13
      • Upgrade Guide 4.33.13
  • Device Information
    • Supported Smartphones
  • Controller Specifications
    • Physical Controllers
    • Virtual Controller / Virtual Keyboard for JioGlass
  • Getting Started
    • Development Platform
    • Setting Up Jio Mixed Reality Project in Unity
    • URP Support
      • Setting Up Your Project With URP
      • Reverting Back to Built-In Render Pipeline
  • JMRSDK
    • JMRSDK Content
    • JMRMixedReality Prefab
    • System Dock
    • JMRRig
      • Local Rig
      • Setting Homepage (Quit functionality)
      • Recenter Application on Resume
  • Develop
    • Editor Emulator
    • JioGlass Controller Interactions
    • Cameras
    • Tesseract Mixed Reality UI Toolkits
    • Examples
  • Interaction
    • Gaze Interaction
      • Gaze and Click
      • Gaze and Dwell
    • Interaction
      • Pointer Manager
        • Examples
    • Interfaces
      • ISelectHandler
      • ISelectClickHandler
      • IFocusable
      • ISwipeHandler
      • ITouchHandler
      • IBackHandler
      • IHomeHandler
      • IMenuHandler
      • IVoiceHandler
      • IFn1Handler
      • IFn2Handler
      • IManipulationHandler
    • Controller Input Actions
      • Touchpad - Touch
      • Touchpad - Swipe
      • Source Buttons
      • Manipulation
    • Actions
    • Device State
      • Device Connected
      • Device Disconnected
      • Battery percentage update
      • Scanning for Device
      • Battery Percentage
  • Voice
    • Voice
      • Speech Events
      • Speech Result
      • Speech Error
      • Speech Session End
      • Speech Cancel
    • Listening
  • Tracking
    • Tracking
      • Coordinate System
    • Tracking Framework
      • TrackerManager Actions
        • Get Head Position
        • Get Head Rotation
        • Get Head Transform
      • TrackerManager Methods
        • Get Head Position
        • Get Head Rotation
        • Get Head Transform
    • Recenter
  • Building and Testing
    • Building to Target Device
      • Merging AndroidManifest
      • Performance Optimization
      • App optimization
    • JioImmerse App For Jio Mixed Reality (TMR) Devices
      • Running the application on Prism (Holoboard)
    • IPD Calibration
  • Publish
    • Licensing Journey
    • Signing App for App Store
    • Publishing to JioGlass Developer Console
    • Publishing to Google Play Store
      • Play Store Upload Journey
  • Capturing and Recording
    • Capture Videos and Screenshots
      • Capturing Screenshot/Videos using scrcpy
      • Capturing Screenshot/Videos using Vysor
  • Troubleshooting
    • FAQs - Develop
    • FAQs - Building to device
      • Gradle
      • Old aaptOptions error fix
    • FAQs - Running and Publishing
    • Laser Point Not Visible
Powered by GitBook
On this page
  • Graphical Optimizations
  • Remove Heavy Post Processing effects
  • Bake lights
  • Batching and reducing draw calls
  • Occlusion Culling
  • Billboarding
  • Quality settings
  • Optimizing Terrain Settings
  • Scripting Optimization
  • Removing any expensive scripts
  • Project Settings Optimization
  • JMR specific optimization
  1. Building and Testing
  2. Building to Target Device

App optimization

Optimize application to run with the best performance

PreviousPerformance OptimizationNextJioImmerse App For Jio Mixed Reality (TMR) Devices

Last updated 2 years ago

Graphical Optimizations

Remove Heavy Post Processing effects

Not all post-processing effects are made to be used for mobile AR/VR

Effects that are too expensive for mobile VR and should be removed are as follows:

  • Screen Space Reflection

  • Screen Space Ambient Occlusion

Effects NOT to use because they can cause nausea and disorientation are:

  • Lens distortion (causes motion sickness)

  • Chromatic aberration (occurs naturally in VR)

  • Motion blur (cause motion sickness)

  • Depth-of-field (user’s eyes need to focus themselves)

Light-impacting post-processing effects in the cost of the order are as follows:

  • Vignette

  • Color grading

  • Bloom (with High-Quality Filtering disabled)

  • Anti-aliasing (FXAA is recommended for mobile VR)

Bake lights

Avoid real-time lights and bake lights as much as possible to get the best performance on your app.

Batching and reducing draw calls

  • Set non-moving objects as static

  • Combine Meshes together

  • Create sprite atlas for materials in your scene

Occlusion Culling

Bake occlusion information and enable occlusion culling on all cameras in your scene.

Billboarding

Use billboards and Level of Detail meshes (LODs) wherever possible to avoid wasting computation on far away objects.

Quality settings

Change the quality setting to low.

Additionally, the quality settings can be optimized to perform on mobile devices and be interchanged depending on device performance.

Optimizing Terrain Settings

  • Trees can be rendered as optimized meshes instead of terrain trees

  • Allow GPU instancing on materials

  • Remove excessive trees and foliage

  • Reduce all texture size

  • Reduce detail distance

Scripting Optimization

Removing any expensive scripts

  • Use object pooling whenever possible

  • Avoid debugging logs and stack traces in builds

  • Pre-cache data in scripts

  • Avoid using every frame calls like Update, LateUpdate, and FixedUpdate.

  • Avoid searching the entire hierarchy for objects, and do NOT use functions like FindObjectOfType, FindObjectWithTag, etc.

Project Settings Optimization

  • Set to incremental GC

  • Enable multithreaded rendering

  • Build with IL2CPP and ARM64

JMR specific optimization

If you don't want to enable the screencast feature in your application, remove additional cameras that are not being used.

  • Screencast Camera

  • POV Camera

A practical guide to Optimization for mobiles
Optimize your mobile game performance
Tips on profiling, memory, and code architecture
Example of quality setting on low end devices
Example of terrain setting on low end devices