Balancing art and performance for immersive experiences
Updated: Dec 17, 2024
To create immersive experiences on the Meta Quest and other supported device hardware, it’s crucial to balance art and performance. Despite computational limitations, well-designed titles can deliver breathtaking immersive user experiences
Performance is everyone’s problem when dealing with strict compute, thermal, and power constraints. To succeed, developers should think about performance holistically across all disciplines from an early stage. The list of topics below focuses on high-level creative decisions that impact downstream performance issues, skipping the code and math.
Geometry refers to the actual shape and structure of a 3D model. Topology refers to the arrangement of edges, faces, and vertices that make up the mesh. A good topology ensures that your model is efficient, easy to work with, and looks good from all angles. When designing assets, consider how the geometric detail will look when baked into normal maps, how it will be optimized for performance, and whether the silhouette remains distinct when edges are removed due to optimization.
When developing for Meta Quest devices, it’s essential to manage your triangle budget effectively. For a technical view and specific numbers please see
Testing and performance analysis for Unity or
Testing and performance analysis for Unreal. Remember that these numbers are per-frame totals, not per character. Everything, including level geometry, characters, particle effects, and UI elements, must fit within your triangle budget.
Proper lighting is crucial for creating a believable and immersive environment. Lighting should be set up to enhance the focus of the experience and highlight model features which create a sense of depth and volume. High-quality textures should accurately represent the materials and details of the model, while reinforcing the art direction or style. Textures should also be optimized for performance and resolution.
Dynamic shadows can have a huge impact on performance. Consider using static environment lighting instead. You can gain a large performance boost by relying on static environment lighting that can be baked into lightmaps, light probes, or in some cases even a static object’s diffuse texture. While a slowly swinging, flickering light bulb may create a wonderful atmospheric effect, it is not free.
Facial animation enhances your experience but incurs costs. Simple bone-based or blend-shape-based systems are usually safe to implement. However, complex systems can quickly raise costs. To manage this, use a well-designed deformation skeleton with hierarchical bone LODs. This method optimizes performance when many characters appear on screen, but only a few need full-detail facial setups. If high-detail facial performance is crucial, expect trade-offs in other areas and increased technical complexity.
Simple design decisions about character clothing and hair can have a big impact on performance. Real-time cloth physics and realistic hair can be expensive and may not look good on lower resolution geometry. To optimize performance, consider using simple joint-chain springs for small details like straps or sashes, and avoid long, flowing capes or full skirts unless absolutely necessary. For hair, use sculpted, textured hair shells instead of realistic hair shaders or alpha cards, which can be more complex and impact performance.
Full screen effects, such as motion blur and bloom, can be challenging for Meta Quest hardware due to their high pixel throughput requirements. These effects add significant fill-rate overhead and should be used with caution and consider alternative solutions with your art team or technical artists.
Dense foliage can cause significant overdraw problems, hindering optimal performance. To address this, keep trees and plants static and use lower poly geometry. This reduces dynamic vertices and alleviates overdraw issues. Alternatively, avoid dense foliage in your designs unless essential. If dense foliage is necessary, place it behind natural movement blockers to prevent expectations of interactivity.
Creating open worlds on Meta Quest and similar devices is challenging. However, with careful planning and optimization, you can deliver immersive experiences. To achieve this, invest time in art and engineering to optimize performance. Implement a streaming system to manage the continuous loading of a large, open world. Remember, such a system has technical restrictions that can affect almost every aspect of your game. For instance, user locomotion speed might be limited by how quickly the world streams in and out of memory. To address these challenges, develop a working prototype on target hardware that clearly defines and embraces these limitations.
Even with careful planning, most titles need late-stage optimization to meet final performance goals. However, well-planned titles can reduce the need for drastic cuts and changes during this process.