Unity fornisce alcune funzionalità relative alle prestazioni specifiche per Android XR e richiede il pacchetto Android XR Extensions. Attiva queste funzionalità per migliorare i frame rate e ridurre il carico della GPU tramite lo spacewarp e il sottocampionamento Vulkan e per ridurre la latenza di rendering tracciata utilizzando il late latching.
Prerequisiti
Prima di seguire queste indicazioni, assicurati di aver verificato e completato i seguenti prerequisiti:
- Completa tutti i passaggi per configurare il progetto in Unity.
- Importa il pacchetto delle estensioni Android XR per Unity.
Attivare lo space warp
URP Application Spacewarp è un'ottimizzazione OpenXR che aiuta a mantenere frame rate elevati sintetizzando un frame su due. La tecnica utilizza vettori di movimento e dati di profondità dei frame precedenti per prevedere dove devono spostarsi i pixel, riducendo la potenza di calcolo e il consumo di energia.
Vantaggi
- Riduce il carico di lavoro di rendering della GPU sintetizzando frame alternativi.
- Riduce significativamente la potenza di calcolo e il consumo energetico.
- Utilizza la riproiezione per ridurre la latenza tra i movimenti dell'utente e gli aggiornamenti del display.
Attiva questa funzionalità
- Nel menu principale di Unity, fai clic su Modifica > Impostazioni progetto.
- Espandi la sezione Gestione plug-in XR.
- Seleziona la scheda corrispondente al tuo attuale dispositivo XR.
- Vai alla sezione Gruppi di funzionalità OpenXR.
Nella sezione Tutte le funzionalità, attiva Space Warp per le app.
Abilita il sottocampionamento Vulkan
Il sottocampionamento Vulkan consente di creare e campionare immagini a densità variabile utilizzando le mappe di densità dei frammenti. Questa funzionalità Vulkan consente di eseguire il rendering e il trasferimento in memoria di diverse aree dello schermo a risoluzioni diverse, il che è particolarmente utile per il rendering foveato, in cui le aree periferiche possono utilizzare una risoluzione inferiore.
Vantaggi
- Fornisce un miglioramento variabile se combinato con il rendering foveato, a seconda del fattore di forma.
- Riduce l'aliasing nelle aree periferiche tramite il filtraggio bilineare.
- Consente il rendering a velocità variabile efficiente in diverse regioni dello schermo.
Attiva questa funzionalità
- Nel menu principale di Unity, fai clic su Modifica > Impostazioni progetto.
- Espandi la sezione Gestione plug-in XR e poi fai clic su OpenXR.
- Fai clic sull'icona a forma di ingranaggio accanto a Android XR (estensioni): gestione delle sessioni.
Attiva Subcampionamento (Vulkan).
Abilita l'aggancio tardivo
Il late latching è una tecnica che riduce al minimo il ritardo tra il movimento fisico dell'utente e la conseguente modifica visiva sul display. Consente di aggiornare la posa della testa nella pipeline di generazione dei frame, il che migliora sia il comfort sia il frame rate percepito delle tue app XR. Ciò si ottiene riducendo la latenza di input di quasi un intero frame.
Vantaggi
- Riduce significativamente la latenza Motion-to-Photon (MTP).
- Migliora il comfort dell'utente e riduce la chinetosi.
- Migliora la stabilità e la precisione.
Attiva questa funzionalità
Per attivare il caricamento posticipato, attiva la funzionalità in fase di runtime per la tua app:
private XRDisplaySubsystem xrDisplay;
private XRDisplaySubsystem.LateLatchNode lateLatchNode = XRDisplaySubsystem.LateLatchNode.Head;
void Start()
{
List<XRDisplaySubsystem> xrDisplaySubsystems = new();
SubsystemManager.GetSubsystems(xrDisplaySubsystems);
if (xrDisplaySubsystems.Count >= 1)
{
xrDisplay = xrDisplaySubsystems[0];
}
}
void Update()
{
if (xrDisplay != null)
{
transform.position += new Vector3(Mathf.Epsilon, 0, 0);
Quaternion rot = transform.rotation;
rot.x += Mathf.Epsilon;
transform.rotation = rot;
xrDisplay.MarkTransformLateLatched(transform, lateLatchNode);
}
}