Ajusta la configuración de las funciones de OpenXR para obtener un rendimiento óptimo

Unity proporciona algunas funciones relacionadas con el rendimiento en su configuración de OpenXR. Habilita estas funciones para permitir que tu app se comunique con el tiempo de ejecución de Android XR, reciba notificaciones de rendimiento y optimice el rendimiento de la GPU con la renderización foveal.

Requisitos previos

Antes de seguir esta guía, asegúrate de haber verificado y completado los siguientes requisitos previos:

Cómo acceder a la configuración de funciones de OpenXR

Sigue estos pasos para acceder a la configuración de funciones de OpenXR de Unity, donde puedes configurar las funciones de rendimiento que se describen en las secciones posteriores:

  1. En el menú principal de Unity, haz clic en Edit > Project Settings.
  2. Expande la sección XR Plug-in Management y, luego, haz clic en OpenXR.
  3. Ve a la sección OpenXR Feature Groups.

Habilita la configuración de rendimiento de XR

La opción XR Performance Settings en Unity permite que tu app comunique los requisitos de rendimiento al tiempo de ejecución de XR de Android y reciba notificaciones de rendimiento.

Beneficios

  • Tu app recibe notificaciones del sistema para mantener un rendimiento óptimo.
  • Puedes proporcionar sugerencias de rendimiento al tiempo de ejecución de OpenXR.

Habilita esta función

En la sección OpenXR Feature Groups a la que navegaste antes, habilita XR Performance Settings.

Habilita el renderizado foveal

El renderizado foveal ofrece optimizaciones estáticas y de seguimiento ocular que mejoran el rendimiento de la GPU. Sin embargo, la implementación con seguimiento ocular ofrece una mejor calidad a los usuarios, ya que renderiza el área en la que están mirando y reduce la calidad de su visión periférica. Esto reduce significativamente la carga de trabajo de la GPU y, a la vez, mantiene la calidad visual en los aspectos más importantes.

Beneficios

  • Reduce significativamente la carga de trabajo de la GPU, ya que renderiza menos detalles en la visión periférica.
  • Mantiene el área donde mira el usuario con una claridad nítida.
  • Te permite crear escenas más complejas sin perder fotogramas.

Habilita esta función

  1. En la sección OpenXR Feature Groups a la que navegaste antes, habilita Foveated Rendering.
  2. Establece la API de renderización foveal en Foveation de SRP.

    Configuración de Unity para el renderizado foveal

  3. En la sección Perfiles de interacción habilitados, agrega el Perfil de interacción de mirada.

    Configuración de Unity para los perfiles de interacción habilitados

  4. En la sección Grupos de permisos, especifica que se debe solicitar el permiso android.permission.EYE_TRACKING_FINE.

    Configuración de Unity para grupos de permisos con el permiso android.permission.EYE_TRACKING_FINE solicitado

  5. Activa la función en el tiempo de ejecución y establece el nivel de renderización foveal para tu app:

    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.XR;
    
    public class FoveationStarter : MonoBehaviour
    {
      List<XRDisplaySubsystem> xrDisplays = new List<XRDisplaySubsystem>();
    
      void Start()
      {
        SubsystemManager.GetSubsystems(xrDisplays);
        if (xrDisplays.Count == 1)
        {
          xrDisplays[0].foveatedRenderingLevel = 1.0f; // Full strength
          xrDisplays[0].foveatedRenderingFlags
              = XRDisplaySubsystem.FoveatedRenderingFlags.GazeAllowed;
        }
      }
    }
    

Para obtener más información, consulta la documentación de Unity sobre la renderización foveal.