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.
- Unity'de içerik yazma
- Microsoft Mesh'e yükleme
- İç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.
Sorunlar ve öneriler Unity'deki bir düzenleyici penceresi aracılığıyla bildirilir.
Ö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.
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.
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.
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.
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.
Ö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:
- Unity'nin Profil Oluşturucu
- Unity'nin Çerçeve Hata Ayıklayıcısı
- RenderDoc (ÖNEMLİ: RenderDoc yalnızca Unity düzenleyicisinden yakalama gerçekleştirebilir. Mesh uygulaması derlemeleri çalışmaz).
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