App optimization
Optimize application to run with the best performance
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