Unity, Android XR'a özel ve Android XR Uzantıları paketini gerektiren bazı performansla ilgili özellikler sunar. Bu özellikleri etkinleştirerek spacewarp ve Vulkan alt örnekleme ile kare hızlarını artırabilir ve GPU yükünü azaltabilir, ayrıca geç bağlama ile izlenen oluşturma gecikmesini azaltabilirsiniz.
Ön koşullar
Bu kılavuzu uygulamadan önce aşağıdaki ön koşulları doğruladığınızdan ve tamamladığınızdan emin olun:
- Projenizi Unity'de ayarlama ile ilgili tüm adımları tamamlayın.
- Android XR Extensions for Unity paketini içe aktarın.
Uzay çarpıtmasını etkinleştirme
URP Application Spacewarp, OpenXR optimizasyonudur ve her iki kareyi sentezleyerek yüksek kare hızlarını korumaya yardımcı olur. Bu teknikte, piksellerin nereye hareket etmesi gerektiğini tahmin etmek için önceki karelerdeki hareket vektörleri ve derinlik verileri kullanılır. Böylece hesaplama gücü ve enerji kullanımı azaltılır.
Avantajları
- Alternatif kareler sentezleyerek GPU oluşturma iş yükünü azaltır.
- Hesaplama gücünü ve enerji tüketimini önemli ölçüde azaltır.
- Kullanıcı hareketleri ile ekran güncellemeleri arasındaki gecikmeyi azaltmak için yeniden projeksiyon kullanır.
Bu özelliği etkinleştirme
- Unity ana menüsünde Edit > Project Settings'i (Düzenle > Proje Ayarları) tıklayın.
- XR Plug-in Management (XR Eklenti Yönetimi) bölümünü genişletin.
- Mevcut XR cihazınıza karşılık gelen sekmeyi seçin.
- OpenXR Özellik Grupları bölümüne gidin.
Tüm Özellikler bölümünde Uygulama SpaceWarp'ı etkinleştirin.
Vulkan alt örneklemeyi etkinleştirme
Vulkan alt örnekleme, parça yoğunluğu haritaları kullanılarak değişken yoğunluklarda görüntülerin oluşturulmasına ve örneklenmesine olanak tanır. Bu Vulkan özelliği, ekranın farklı alanlarının farklı çözünürlüklerde oluşturulup belleğe aktarılmasını sağlar. Bu özellik, özellikle çevresel alanların daha düşük çözünürlük kullanabildiği foveated rendering için yararlıdır.
Avantajları
- Form faktörüne bağlı olarak foveated rendering ile birlikte kullanıldığında farklı düzeylerde iyileşme sağlar.
- Bilineer filtreleme sayesinde çevresel alanlarda aliasing'i azaltır.
- Farklı ekran bölgelerinde değişken hızlı oluşturmanın verimli bir şekilde yapılmasını sağlar.
Bu özelliği etkinleştirme
- Unity ana menüsünde Edit > Project Settings'i (Düzenle > Proje Ayarları) tıklayın.
- XR Plug-in Management (XR Eklenti Yönetimi) bölümünü genişletin ve OpenXR'ı tıklayın.
- Android XR (Uzantılar): Oturum Yönetimi'nin yanındaki dişli simgesini tıklayın.
Alt örnekleme (Vulkan)'yi etkinleştirin.
Geç kilitlemeyi etkinleştirme
Geç kilitleme, kullanıcının fiziksel hareketi ile ekranda oluşan görsel değişiklik arasındaki gecikmeyi en aza indiren bir tekniktir. Bu özellik, baş pozunun kare oluşturma işlem hattında geç güncellenmesine olanak tanır. Böylece, XR uygulamalarınızın hem konforu hem de algılanan kare hızı iyileştirilir. Bu işlemi, giriş gecikmesini neredeyse bir kare süresi kadar azaltarak gerçekleştirir.
Avantajları
- Hareketten fotona (MTP) gecikmesini önemli ölçüde azaltır.
- Kullanıcı konforunu artırır ve hareket hastalığını azaltır.
- Kararlılığı ve hassasiyeti artırır.
Bu özelliği etkinleştirme
Geç bağlamayı etkinleştirmek için uygulamanızın çalışma zamanında özelliği etkinleştirin:
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);
}
}