Optimizing Your Extended Reality Application

Author:
XRAILAB
Posted in:
Virtual Reality
Comments:
No Comments

Designed by Freepik

Optimizing your software is crucial for the proper functioning of your Virtual Reality applications. Remember: your headset isn’t as powerful as your computer, so different approaches must be taken.

I Don't Care: I Don't Need to Optimize

If you think you don’t need to optimize your applications, you’re sacrificing performance and turning what should be a lightweight application into a heavy one. Here are some reasons to reconsider:

  • User Experience: Users may reject downloading your application if it’s too large. They’ll have to wait longer for it to download and install, and it will take up more space on their devices.
  • Device Variability: You can’t predict which devices will run your application. Imagine a user trying to run it on an older device; it may install, but they won’t enjoy the experience if it takes too long to load.

Quick Checklist for Optimizing Your Application

Here’s a quick list of tips and explanations you can apply:

  • Lights: Use static (or stationary) lights instead of dynamic ones. Static lights are calculated once upon loading, while dynamic lights are recalculated every frame, increasing resource consumption. Use the minimum number of lights possible.
  • Shadows: Casting shadows can be resource-intensive, even if they’re not dynamic. If you need a lightweight application, consider not using shadows. However, shadows do add realism and depth, so if you include them, opt for stationary shadows.
  • Occlusion Culling: Render only what the user is looking at. For example, if the user is facing away from a tree, it doesn’t need to be rendered. Consider how fast the user moves; if they’re moving quickly, the application may struggle to manage occlusion efficiently.
  • Level of Detail (LOD): Instead of making objects disappear, reduce their visual quality based on distance. Use high-quality LOD for nearby objects and lower-quality LOD for distant ones. If an object becomes unrecognizable, consider removing it instead.
  • Textures: Textures are essential for giving style to objects and can significantly impact performance. Use textures with dimensions that are powers of two (e.g., 4×4, 8×8, 2048×2048, 4096×4096). The quality should match their importance and the overall size of your application. For compression, use ASTC, the standard for headset devices, as it offers the best performance.
  • Antialiasing: Antialiasing helps smooth out harsh edges between colors and objects. Various methods exist, each with different effects on quality and resource consumption. One recommended method for Virtual Reality is FXAA.
  • Polygons: The number of polygons is critical since all must be loaded. Aim for a total polygon count of around 400,000, with a maximum of 1,000,000. Exceeding this can lead to performance issues.
  • Asynchronous Level Loading: You can program your application to load the next level while the user is playing the current one, allowing for instant loading when they enter it. This is known as asynchronous level loading.
  • Menu Options: Create a menu that allows users to adjust the quality settings of the application. Offer options such as low, medium, high, and epic so users can choose the best configuration for their devices.
  • Mixed Reality: Keep in mind that applications for Mixed Reality consume more resources compared to those designed for Virtual Reality. This is because the device has to render both the application and the real-world environment simultaneously, especially in scenes with many elements.

Now you have plenty of tips to get started. Share your thoughts and additional recommendations in the comments, and we might include them in a future update!

KEYWORDS

#VR #VirtualReality #XR #ExtendedReality #AR #AugmentedReality #Optimization #Antialising #LevelOfDetail

Cite as:

Author: XRAILAB

Leave a Reply