Aracılığıyla paylaş


Mesh için performans yönergeleri

Performans

Bu makale, Mesh'te içerik yazarken performansın önemini anlamaya giriş niteliğindedir. Kare hızı, performansı rasyonalize etmek için en kolay birimdir. Normalde kare hızı "saniye başına kare sayısı" (fps) veya uygulamanızın saniyede bir görüntüyü kaç kez işleyebileceğiyle ölçülür. İçeriğiniz en uygun kare hızında çalışmazsa kullanıcının deneyimi büyük ölçüde düşürülebilir. Mesh, kalite kare hızını izlemenize ve elde etmenize yardımcı olmak için çeşitli araçlar ve öneriler sağlar.

Aşağıdaki tabloda Mesh'in desteklediği platform başına hedef kare hızı listelenmiştir.

PC Android (Görev)
Yenileme hızını izleme (en az 30fps) 72fps

Basit ve karmaşık sahneler

Tüm 3B geliştirmelerde olduğu gibi Mesh'te de görsel aslına uygunluk ve performans arasında bir denge vardır. Mesh çalıştıran makineye bağlı olarak, özellikle de sahneniz karmaşıksa kullanıcınızın performansı düşebilir.

Performansı finansal bütçe gibi düşünün. Harcayabileceğiniz 100 ABD doları varsa karmaşık bir ortamı oluşturmak için 60 ABD doları, gelişmiş fiziği taklit etmek için 40 ABD doları ve görsel betikler için 20 ABD doları harcayamazsınız. Bütçeniz üzerinden harcama yaparsınız. Geliştirici olarak görsel aslına uygunluk, etkileşim karmaşıklığı, kullanıcı sayısı ve diğer sistemler arasında denge kurmanız gerekir. Mesh ekibi, kural olarak değil, geliştirme kılavuzu olarak performans eşiklerinin listesini oluşturdu.

Profil oluşturma metodolojisi

Mesh'te ortam yazma işlemi genellikle üç adımdan oluşur.

  1. Unity'de içerik yazma
  2. Microsoft Mesh'e yükleme
  3. İçeriğinizi Mesh uygulamasında çalıştırma

Birinci adım sırasında, Mesh ortamı oluşturmak için kullanılan unity projelerinde gerekli olan Mesh araç seti paketinde bulunan İçerik Performans Analizi (CPA) ve Performans Profili Oluşturucu'nun bir karışımını kullanmanızı öneririz. İkinci adım sırasında, CPA aracı otomatik olarak çalışır. Son olarak, üçüncü son adım sırasında, profil oluşturma Mesh'in yerleşik Performans Profil Oluşturucu'sunda gerçekleşmelidir.

Performansı analiz etmek için araçlar

İçerik Performans Analizi (CPA)

Mesh deneyiminizin performansını en üst düzeye çıkarmak için İçerik Performans Analizi (CPA) kullanmanızı öneririz. CPA aracı, içeriğinizi yazma zamanında statik olarak analiz edebilir. Üçgen sayılarını, toplu işlemleri, doku belleği kullanımını ve daha fazlasını denetlemek için CPA'yı kullanabilirsiniz. Bu, içerik Mesh'e yüklenmeden önce içerik iyileştirme sorunlarını ve fırsatlarını yakalamanızı sağlar.

CPA aracını çalıştırmak için menü öğelerinden Mesh Araç Seti>İçeriği Performans Analizi'ni seçin.

Unity menüsü aracılığıyla İçerik Performans Analizi erişme

Sorunlar ve öneriler Unity'deki bir düzenleyici penceresi aracılığıyla bildirilir.

İçerik Performans Analizi penceresinin ekran görüntüsü

Önemli

Mesh'e içerik yüklenirken CPA çözümleyicilerinin bir bölümü otomatik olarak çalışır. Tüm testler otomatik olarak çalıştırılamadığından, geliştirme sürecinizin bir parçası olarak CPA'yi el ile çalıştırmak iyi olur.

Performans Profili Oluşturucu

Performans Profili Oluşturucu, Mesh projenizin kare hızını, sahne karmaşıklığını ve tüm platformlardaki bellek kullanımını görüntülemek için basit bir pencere sağlar. Performans Profili Oluşturucu'ya Mesh uygulamasından ve Mesh araç setinin içinden erişilebilir.

Performans Profili Oluşturucu'nun yalıtımlı ekran görüntüsü

Mesh uygulamasında Performans Profil Oluşturucusu'nı görüntülemek için ayarlar panelini açın ve Geliştiriciler>için Performans Profili Oluşturucu'ya tıklayın. Performans Profili Oluşturucu pencerenin üst orta kısmında görünür.

Mesh'te Performans Profili Oluşturucu'nun ekran görüntüsü

Performans Profili Oluşturucu'nun kullanımı sırasında, 'x' ile işaretlenmiş kırmızı kutular olarak görünen yanıtsız çerçeveleri arayın. Eksik kareler, içeriğinizin Mesh'in hedef kare hızına isabet etmediğini ve iyileştirme çalışması gerekebileceğini gösterir. Sahne karmaşıklığı ve bellek kullanımı, kaçırılan çerçeve göstergelerinin altında görüntülenir. Bu sayılar, içeriğinizin neden Mesh'in hedef kare hızına göre olmadığını gösterebilir.

Performans Profili Oluşturucu ölçümlerinin diyagramı

Bir ölçüm Mesh'in önerilen performans eşiğini karşılamadığında Performans Profili Oluşturucu'da metin kırmızıya döner. Performans eşikleri hakkındaki diğer ayrıntılar bir devam bölümünde listelenmiştir.

Önemli

Batch'ler Mesh uygulamasında görüntülenemez. Bunlar yalnızca Unity düzenleyicisinde kullanılabilir.

Ayrıca bellek kullanımının hızla değişmediğinden veya uygulamanın bellek sınırına yaklaşmadığından korumak için alt bellek çubuğunu da izlemeniz gerekir.

Unity düzenleyicisinde Performans Profili Oluşturucu'nu görüntülemek için, sahnenizde Mesh Öykünücüsü Kurulumu bileşeninin olduğundan emin olun. İlk Ekran Sayısı ayarının sıfır olduğundan emin olun. Bir veya daha yüksekse oynatırken Performans Profili Oluşturucu'ya geçiş yapamazsınız.

Mesh Öykünücüsü Kurulumu iletişim kutusunun ekran görüntüsü

Yürütme moduna geçmek için Unity'nin Yürüt düğmesine tıklayın, 'v' tuşuyla Performans Profili Oluşturucu'nun ayarını açın. Performans Profili Oluşturucu, oyun penceresinin üst merkezinde görünür.

Unity düzenleyicisinde Performans Profili Oluşturucu'nun ekran görüntüsü

Önemli

Unity düzenleyicisinde Performans Profili Oluşturucuyu görüntülerken toplu iş sayıları ve belirli alt sistemlerin yürütülmesi için gereken milisaniyelik süre gibi daha fazla bilgi parlarsınız. Bu ölçümlerin, performansın göreli bir tahmini olduğunu ve Mesh uygulamasında son profil oluşturmanın gerçekleşmesi gerektiğini unutmayın.

Performans Profili Oluşturucu'nun alt kısmındaki milisaniyelik sürelerin ne kadar olduğunu merak ediyorsanız bu bilgileri performans eşikleri bölümünde bulabilirsiniz.

Diğer araçlar

Hem CPA hem de Performans Profili Oluşturucu Mesh için özel olarak oluşturulmuş olsa da Unity'de içerik profili oluşturmak için birkaç harika araç da vardır:

Performans eşikleri

Performansı iyileştirme, geliştirmekte olduğunuz senaryoya ve elde etmek istediğiniz deneyime bağlı olarak bir dengeleme eylemi olabilir. Mesh'te bir sahnenin işlenmesi, ortamın içeriğinin nasıl yazıldığından doğrudan bir sonuçtur. Geçerli platformlarımız için işleme önerileri aşağıdadır.

Bilgisayar işleme eşikleri

Polycount Toplu işler İşlem sonrası
<~500k Üçgenler Yaklaşık 200 toplu iş Devre dışı
Doku Lightmaps Skybox Çözünürlüğü
< Yaklaşık 160 MB < Yaklaşık 80 MB 2048x4096

Android (Görev) işleme eşikleri

Polycount Toplu işler İşlem sonrası
<~80k Üçgenler Yaklaşık 50 toplu iş Devre dışı
Doku Lightmaps Skybox Çözünürlüğü
< Yaklaşık 16 MB < Yaklaşık 20 MB 1024x2048

Gölgelendirici kısıtlamalarının yukarıdaki tablolarda belirtilmediğini fark edebilirsiniz. Mesh Unity'nin Evrensel İşleme İşlem Hattı'nı (URP) kullandığından daha ucuz kullanıma açık URP gölgelendiricileri (Evrensel İşleme İşlem Hattı/Baked Lit veya Evrensel İşleme İşlem Hattı/Basit Aydınlatma gibi) kullanmanızı öneririz. Ayrıca özel gölgelendiricilerin değerini de anlıyoruz. Genel olarak, ortamın çoğu için özel gölgelendiricilerimizi aşağıdaki eşikler içinde tutmaya çalışırız:

Köşe matematiği Parça matematiği Doku
< 30 işlem < 120 işlem < 2 arama

Önemli

Gölgelendirici işlemlerini sayma, gölgelendirici performansını hesaplamaya yönelik kusurlu ölçümdedir. Gölgelendirici geliştiricisi, düzgün çalıştığını doğrulamak için Mesh'te çalışan gölgelendiricinin profilini de oluşturmalıdır.

URP'nin işleme işlem hattının Mesh uygulaması için nasıl yapılandırıldığını merak ediyorsanız, projenizin \Library\PackageCache\com.microsoft.mesh.toolkit\mesh.toolkit.uploader\Assets\URP dizininde platforma özgü işleyicileri inceleyebilirsiniz.

Betik oluşturma eşikleri

Mesh, görsel betik, bulut betiği oluşturma, Mesh Fiziği ve/veya WebSlate aracılığıyla etkileşimli içerik oluşturmanıza olanak tanır. Unity düzenleyicisinde Performans Profili Oluşturucu görüntülenirken, profil oluşturucunun alt kısmında belirli alt sistemlerin yürütülmesi için gereken milisaniye (ms) süre görüntülenir. Metin, bir alt sistemin bütçeyi aşabileceğini gösteren yeşilden kırmızıya değiştiğinde. Aşağıdaki tabloda bu bütçeler hakkında daha fazla bilgi sağlanmaktadır.

Alt sistem adı Maksimum Çerçeve Bütçesi Açıklama
Davranış Yok Tüm yerel MonoBehaviour betiklerini (C# ve Görsel) güncelleştirmek için geçen milisaniyelik süre
İşleme %25 Sahnenin CPU işlemesi için milisaniyelik süre
WebSlate Yok Olay yerindeki WebSlates'i güncelleştirmek ve işlemek için milisaniyelik süre
Fizyoterapi Sim %15 PhysX simülasyonunu adımlandırmak için milisaniyelik süre
Fiziği Eşitleme %15 Tüm fizik bedenlerini eşitlemek için milisaniyelik süre
Fiziksel Effx %10 Önemli fizik davranışlarını güncelleştirmek için milisaniyelik süre
VS Kullanıcısı %15 Görünüme yerleştirilen Görsel Betik grafiklerinde harcanan milisaniyelik süre
VS Env %10 Visual Script altyapısını güncelleştirmek için harcanan milisaniyelik süre
VS Net %10 Visual Script ağ durumunu eşitlemek için harcanan milisaniyelik süre

Yukarıda listelenen "Maksimum Kare Yüzdesi" değerleri genel içeriğe dayalı önerilerdir. Geliştirici olarak, çerçevenizin ayrılan süre içinde güncelleştirilebilmesini sağlamak için bu sistemleri dengelemek size bağlıdır.

Performans ve İyileştirme Kaynakları

Grafik performansıyla ilgili temel bilgiler https://docs.unity3d.com/Manual/OptimizingGraphicsPerformance.html

Evrensel İşleme İşlem Hattı (URP) https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@14.0/manual/index.html

SRP Batcher https://docs.unity3d.com/Manual/SRPBatcher.html

Tek geçişli örnekli işleme ve özel gölgelendiriciler https://docs.unity3d.com/Manual/SinglePassInstancing.html