Oculus Go Development
On 6/23/20 Oculus announced plans to sunset Oculus Go. Information about dates and alternatives can be found in the Oculus Go introduction.
Best Practices for Rift and Android
This section describes performance targets and offers recommendations for developers.
General Best Practices
- Use trilinear or anisotropic filtering on textures. See Textures in the Unity Manual for more information.
- Use mesh-based occlusion culling (see Occlusion Culling in the Unity Manual).
- Always use the Forward Rendering path (see Forward Rendering Path Details in the Unity Manual).
- Enable Use Recommended MSAA Levels in OVRManager (see OVRManager for more information). Generally, the recommended MSAA level is 4x if you don’t plan to enable Use Recommended MSAA Level.
- Watch for excessive texture resolution after LOD bias (greater than 4k by 4k on PC, greater than 2k by 2k on mobile).
- Verify that non-static objects with colliders are not missing rigidbodies in themselves or in the parent chain.
- Avoid inefficient effects such as SSAO, motion blur, global fog, parallax mapping.
- Avoid slow physics settings such as Sleep Threshold values of less than 0.005, Default Contact Offset values of less than 0.01, or Solver Iteration Count settings greater than 6.
- Avoid excessive use of multipass shaders (e.g., legacy specular).
- Avoid large textures or using a lot of prefabs in startup scenes (for bootstrap optimization). When using large textures, compress them when possible.
- Avoid realtime global illumination.
- Disable shadows when approaching the geometry or draw call limits.
- Avoid excessive pixel lights (>1 on Android devices; >3 on Rift).
- Avoid excessive render scale (>1.2).
- Avoid excessive shader passes (>2).
- Be cautious using Unity WWW and avoid for large file downloads. It may be acceptable for very small files.
- For Android apps with voice chat, you should use the Microphone APIs to avoid issues with Parties. For more information about Parties, go to the Parties and Party Chat topic.