Sdílet prostřednictvím


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.

  1. Vytváření obsahu v Unity
  2. Nahrání do služby Microsoft Mesh
  3. 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.

Přístup k obsahu Analyzátor výkonu prostřednictvím nabídky Unity

Problémy a návrhy se hlásí prostřednictvím okna editoru v Unity.

Snímek obrazovky s oknem Analyzátor výkonu obsahu

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.

Snímek obrazovky profileru výkonu v izolaci

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.

Snímek obrazovky profileru výkonu ve službě Mesh

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.

Diagram metrik profileru výkonu

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.

Snímek obrazovky dialogového okna Nastavení emulátoru sítě

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.

Snímek obrazovky s profilerem výkonu v editoru Unity

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:

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