Pokyny k výkonu pro Mesh
Výkon
Tento článek je úvodem k pochopení významu výkonu při vytváření obsahu ve službě Mesh. Framerate je nejsnadnější jednotka pro racionalizaci výkonu. Za normálníchokolnostch Uživatelské prostředí může být výrazně degradované, pokud se obsah nespustí s optimální přenosovou rychlostí. Mesh nabízí celou řadu nástrojů a doporučení, které vám pomůžou sledovat a dosahovat kvality snímků.
Následující tabulka uvádí cílovou framerate na platformu Mesh, která podporuje.
PC | Android (Quest) |
---|---|
Monitorování obnovovací frekvence (minimálně 30fps) | 72fps |
Jednoduché a složité scény
Stejně jako u všech 3D vývoje je v Mesh kompromis mezi vizuální věrností a výkonem. V závislosti na počítači, na kterém běží mesh, může dojít ke snížení výkonu uživatele, zejména pokud je scéna složitá.
Představte si výkon jako finanční rozpočet. Pokud máte 100 dolarů na útratu, nemůžete utratit 60 USD za vykreslení složitého prostředí, 40 USD simulující pokročilou fyziku a $20 pro vizuální skripty – nakonec byste utratili za rozpočet. Jako vývojář musíte učinit kompromisy mezi vizuální věrností, složitostí interakce, počtem uživatelů a dalšími systémy. Tým Mesh vygeneroval seznam prahových hodnot výkonu, nikoli jako pravidlo, ale průvodce vývojem.
Metodologie profilace
Vytváření prostředí ve službě Mesh obvykle zahrnuje tři kroky.
- Vytváření obsahu v Unity
- Nahrání do služby Microsoft Mesh
- Spuštění obsahu v aplikaci Mesh
V kroku 1 doporučujeme použít kombinaci content Analyzátor výkonu (CPA) a profileru výkonu nalezeného v balíčku sady nástrojů Mesh, který se vyžaduje pro jakýkoli projekt Unity, který se používá k vygenerování prostředí Mesh. Během kroku 2 se nástroj CPA automaticky spustí. Během třetího kroku by profilace měla nastat prostřednictvím integrovaného profileru výkonu mesh.
Nástroje pro analýzu výkonu
Content Analyzátor výkonu (CPA)
K maximalizaci výkonu prostředí Mesh doporučujeme použít Analyzátor výkonu obsahu (CPA). Nástroj CPA může při vytváření obsahu staticky analyzovat. Pomocí CPA můžete auditovat počty trojúhelníků, dávky, využití paměti textury a další. To vám umožní zachytit problémy s optimalizací obsahu a příležitosti před odesláním obsahu do sítě Mesh.
Nástroj CPA spustíte tak, že v položkách nabídky vyberete Analyzátor výkonu Obsah sady nástrojů>Mesh.
Problémy a návrhy se hlásí prostřednictvím okna editoru v Unity.
Důležité
Část analyzátorů CPA se spustí automaticky při nahrávání obsahu do sítě. Vzhledem k tomu, že ne všechny testy se můžou spouštět automaticky, je vhodné v rámci procesu vývoje spustit cpa ručně.
Profiler výkonu
Profiler výkonu poskytuje jednoduché okno pro zobrazení snímkové frekvence projektu Mesh, složitost scény a využití paměti na všech platformách. Profiler výkonu je přístupný v rámci aplikace Mesh a v sadě nástrojů Mesh.
Pokud chcete zobrazit Profiler výkonu v aplikaci Mesh, otevřete panel nastavení a vyberte Pro vývojáře>Profiler výkonu. Profiler výkonu se zobrazí v horní části okna.
Při použití profileru výkonu vyhledejte zmeškané snímky, které se zobrazují jako červená pole označená symbolem x. Zmeškané snímky značí, že váš obsah nenaráží na cílovou snímkovou rychlost sítě a může vyžadovat optimalizaci. Složitost scény a využití paměti se zobrazí pod indikátory zmeškaného rámce. Tato čísla můžou znamenat, proč váš obsah neodpovídá cílové frekvenci sítě Mesh.
Text v profileru výkonu se zčervená, když metrika nesplňuje doporučenou prahovou hodnotu výkonu sítě. Další podrobnosti o prahových hodnotách výkonu najdete v následující části.
Důležité
Dávky nelze zobrazit v aplikaci Mesh. Jsou dostupné jenom v editoru Unity.
Měli byste také sledovat dolní panel paměti a ujistit se, že využití paměti se rychle nemění ani nepřiblíží limitu paměti aplikace.
Pokud chcete zobrazit profiler výkonu v editoru Unity, ujistěte se, že máte ve scéně komponentu Nastavení emulátoru sítě. Ujistěte se, že je nastavení Počáteční počet obrazovky nula. Pokud je to jedna nebo vyšší, při přehrávání nebudete moct zapnout profiler výkonu.
Kliknutím na tlačítko Přehrát Unity přejdete do režimu přehrávání a přepnete profiler výkonu pomocí klávesy v. Profiler výkonu se zobrazí v horní části okna hry.
Důležité
Při prohlížení profileru výkonu v editoru Unity se zobrazí další informace, jako jsou počty dávek a milisekundy, které zabere, aby se určité subsystémy spustily. Všimněte si, že tyto metriky jsou relativní aproximací výkonu a konečné profilace by se měly provádět v rámci aplikace Mesh.
Pokud vás zajímá, jaké časy milisekund v dolní části profileru výkonu měří, najdete tyto informace v části Prahové hodnoty výkonu .
Další nástroje
Profilátor CPA i Performance Profiler jsou vytvořené pro Mesh, ale existuje také několik skvělých nástrojů pro profilaci obsahu v Unity:
- Profiler Unity
- Ladicí program rámce Unity
- RenderDoc (DŮLEŽITÉ: RenderDoc může provádět pouze zachytávání z editoru Unity. Sestavení aplikace Mesh nebudou fungovat).
Prahové hodnoty výkonu
Optimalizace výkonu může být akce vyrovnávání v závislosti na scénáři, pro který vyvíjíte, a prostředí, které chcete dosáhnout. Vykreslení scény ve službě Mesh je přímým důsledkem vytváření obsahu prostředí. Níže jsou uvedeny návrhy vykreslování pro naše aktuální platformy.
Prahové hodnoty vykreslování počítačů
Polycount | Dávky | Následné zpracování |
---|---|---|
<~500 tisíc trojúhelníků | ~200 dávek | Zakázáno |
Textury | Lightmaps | Rozlišení Skyboxu |
< ~160 MB | < ~80 MB | 2048x4096 |
Prahové hodnoty vykreslování androidu (Quest)
Polycount | Dávky | Následné zpracování |
---|---|---|
<~80k Trojúhelníky | ~50 dávek | Zakázáno |
Textury | Lightmaps | Rozlišení Skyboxu |
< ~16 MB | < ~20 MB | 1024x2048 |
Můžete si všimnout, že omezení shaderu nejsou uvedená v předchozích tabulkách. Vzhledem k tomu, že Mesh používá kanál univerzálního vykreslení Unity (URP), doporučujeme používat levnější předpřipravené shadery URP (jako je Univerzální render pipeline/Baked Lit nebo Universal Render Pipeline/Simple Lit). Rozumíme také hodnotě vlastních shaderů. Obecně se snažíme zachovat vlastní shadery pro většinu prostředí v následujících prahových hodnotách:
Matematika vrcholů | Fragment matematiky | Textura |
---|---|---|
< 30 operací | < 120 operací | < 2 vyhledávání |
Důležité
Počítání operací shaderu je v nevýkonné metrice pro výpočet výkonu shaderu. Vývojář shaderu by měl také profilovat svůj shader spuštěný ve službě Mesh, aby ověřil, že běží výkonně.
Pokud vás zajímá, jak je kanál vykreslení URP nakonfigurovaný pro aplikaci Mesh, můžete zkontrolovat vykreslovací moduly specifické pro danou platformu v adresáři \Library\PackageCache\com.microsoft.mesh.toolkit\mesh.toolkit.uploader\Assets\URP .
Prahové hodnoty skriptování
Mesh umožňuje vytvářet interaktivní obsah prostřednictvím vizuálního skriptování, cloudového skriptování, fyziky sítě a/nebo webSlate. Při prohlížení profileru výkonu v editoru Unity se v dolní části profileru zobrazí milisekundy (ms), než se některé subsystémy spustí. Když se text změní ze zelené na červenou, což znamená, že subsystém může být nad rozpočtem. Následující tabulka obsahuje další informace o těchto rozpočtech.
Název subsystému | Maximální rozpočet rámce | Popis |
---|---|---|
Chování | – | Doba potřebná k aktualizaci všech místních skriptů MonoBehaviour (C# a Visual) v milisekundách |
Vykreslení | 25 % | Doba milisekundy pro vykreslení procesoru scény |
WebSlate | – | Čas aktualizace a vykreslení všech webových šablon ve scéně v milisekundách |
Phys Sim | 15 % | Doba milisekundy pro krok simulace PhysX |
Synchronizace Phys | 15 % | Doba milisekundy pro synchronizaci všech fyzikálních těl |
Phys Effx | 10 % | Doba milisekundy k aktualizaci chování fyziky bespoke |
Uživatel VS | 15 % | Čas strávený v grafech vizuálních skriptů umístěných ve scéně v milisekundách |
VS Env | 10 % | Doba strávená aktualizací infrastruktury vizuálních skriptů v milisekundách |
Síť VS | 10 % | Doba milisekund strávená synchronizací stavu sítě skriptů vizuálu |
Výše uvedené hodnoty Max Frame Percentage jsou doporučení založená na obecném obsahu. Jako vývojář je na vás, abyste tyto systémy vyvážit, aby se váš rámec mohl aktualizovat v čase.
Prostředky pro zvýšení výkonu a optimalizace
Základy grafického výkonu https://docs.unity3d.com/Manual/OptimizingGraphicsPerformance.html
Kanál univerzálního vykreslování (URP) https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@14.0/manual/index.html
Batcher SRP https://docs.unity3d.com/Manual/SRPBatcher.html
Vykreslování s jedním průchodem a vlastní shadery https://docs.unity3d.com/Manual/SinglePassInstancing.html