Szkolenie
Ścieżka szkoleniowa
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Ta przeglądarka nie jest już obsługiwana.
Przejdź na przeglądarkę Microsoft Edge, aby korzystać z najnowszych funkcji, aktualizacji zabezpieczeń i pomocy technicznej.
Ten artykuł stanowi wprowadzenie do zrozumienia znaczenia wydajności aplikacji Mixed Reality. Środowisko użytkownika może być znacznie obniżone, jeśli aplikacja nie działa z optymalną szybkością klatek. Hologramy będą wyglądać niestabilnie, a śledzenie głowy środowiska będzie niedokładne, co prowadzi do złego środowiska użytkownika. Wydajność musi być uważana za pierwszą klasę do opracowywania rzeczywistości mieszanej, a nie zadania polskiego.
Poniżej wymieniono wydajne wartości szybkości klatek dla każdej platformy docelowej.
Platforma | Docelowa szybkość klatek |
---|---|
HoloLens | 60 KLATEK NA SEKUNDĘ |
komputery Windows Mixed Reality Ultra | 90 FPS |
komputery Windows Mixed Reality | 60 KLATEK NA SEKUNDĘ |
Poniższa struktura przedstawia najlepsze rozwiązania dotyczące osiągania docelowych szybkości klatek. Aby uzyskać wskazówki dotyczące mierzenia i poprawiania szybkości klatek w środowisku aparatu Unity, zalecamy przeczytanie zaleceń dotyczących wydajności aparatu Unity
Jeśli aplikacja ma niewystarczającą szybkość klatek, pierwszym krokiem jest analizowanie i zrozumienie, gdzie aplikacja intensywnie korzysta z obliczeń. Istnieją dwa podstawowe procesory odpowiedzialne za pracę w celu renderowania sceny: procesor CPU i procesor GPU, z których każda obsługuje różne aspekty aplikacji Mixed Reality. Trzy kluczowe miejsca, w których mogą wystąpić wąskie gardła, to:
Ogólnie rzecz biorąc, aplikacje holoLens będą powiązane z procesorem GPU, ale nie zawsze. Skorzystaj z poniższych narzędzi i technik, aby zrozumieć, gdzie dana aplikacja jest wąskim gardłem.
Istnieje wiele narzędzi, które umożliwiają zrozumienie profilu wydajności i potencjalnych wąskich gardeł w aplikacji rzeczywistości mieszanej.
Poniżej przedstawiono kilka typowych narzędzi ułatwiających zbieranie szczegółowych informacji o profilowaniu dla aplikacji:
Jednym ze sposobów określenia, czy aplikacja jest powiązana z procesorem GPU lub procesorem CPU, jest obniżenie rozdzielczości danych wyjściowych elementu docelowego renderowania. Zmniejszając liczbę pikseli do obliczenia, zmniejszysz obciążenie procesora GPU. Urządzenie będzie renderowane na mniejszą teksturę, a następnie próbkę w górę, aby wyświetlić końcowy obraz.
Po obniżeniu rozdzielczości renderowania, jeśli:
Uwaga
Aparat Unity umożliwia łatwe modyfikowanie rozdzielczości docelowej renderowania aplikacji w czasie wykonywania za pomocą właściwości XRSettings.renderViewportScale . Końcowy obraz przedstawiony na urządzeniu ma stałą rozdzielczość. Platforma będzie próbkować dane wyjściowe niższej rozdzielczości, aby utworzyć obraz o wyższej rozdzielczości do renderowania na ekranach.
UnityEngine.XR.XRSettings.renderScale = 0.7f;
Na ogół większość pracy w aplikacji rzeczywistości mieszanej na procesorze polega na wykonaniu "symulacji" sceny i przetwarzaniu logiki aplikacji. Następujące obszary są przeznaczone do optymalizacji:
Podczas renderowania ramki na procesorze GPU aplikacja jest powiązana z przepustowością pamięci lub szybkością wypełnienia.
Uwaga
Jeśli pracujesz z aparatem Unity, zapoznaj się z naszymi zaleceniami dotyczącymi wydajności procesora GPU specyficznymi dla aparatu Unity. - W a unity użyj właściwości XRSettings.renderViewportScale
Przepustowość pamięci zwykle obejmuje optymalizacje w celu:
Szybkość wypełnienia koncentruje się na zmniejszeniu liczby operacji, które należy obliczyć dla końcowego renderowanego piksela, w tym:
Wyższa liczba wielokątów powoduje zwiększenie liczby operacji procesora GPU, dlatego zmniejszenie liczby wielokątów w scenie skraca czas renderowania. Istnieją inne czynniki, które sprawiają, że cieniowanie geometrii jest kosztowne, ale liczba wielokątów jest najprostszą metryką określającą, ile pracy zajmie renderowanie sceny.
Duże przerysowanie występuje, gdy wiele obiektów jest renderowanych, ale nie jest wyświetlanych na ekranie, ponieważ są one ukryte przez obiekt occluding. Wyobraź sobie, że patrzysz na ścianę, która ma za sobą obiekty. Cała geometria będzie przetwarzana do renderowania, ale tylko nieprzezroczysta ściana musi być renderowana, co powoduje niepotrzebne operacje.
Cieniowania to małe programy uruchamiane na procesorze GPU i wykonujące dwa ważne kroki renderowania:
Zazwyczaj cieniowanie wykonuje wiele przekształceń i obliczeń oświetlenia. Chociaż złożone modele oświetlenia, cienie i inne operacje mogą generować fantastyczne wyniki, są również dostarczane z ceną. Zmniejszenie liczby operacji obliczanych w cieniowaniu może znacznie zmniejszyć pracę wymaganą dla procesora GPU na ramkę.
Efekty przetwarzania końcowego mogą być kosztowne i zwiększyć szybkość wypełniania aplikacji, w tym techniki anty aliasowania, takie jak MSAA. Na urządzeniu HoloLens zalecamy unikanie tych technik i dodatkowych etapów cieniowania, takich jak geometria, kadłub i cieniowanie obliczeniowe.
Nadmierne przydzielanie pamięci i operacje cofania przydziału mogą spowodować niespójną wydajność, zamarznięte ramki i inne szkodliwe zachowanie. Szczególnie ważne jest zrozumienie zagadnień dotyczących pamięci podczas opracowywania w środowisku Unity, ponieważ zarządzanie pamięcią jest kontrolowane przez moduł odśmiecający pamięć.
Buforowanie obiektów to popularna technika zmniejszania kosztów ciągłych alokacji i cofania przydziałów obiektów. Odbywa się to przez przydzielanie dużej puli identycznych obiektów i ponowne użycie nieaktywnych, dostępnych wystąpień z tej puli zamiast stale duplikować i niszczyć obiekty w czasie. Pule obiektów doskonale nadają się do ponownego użycia składników, które mają zmienny okres istnienia w aplikacji.
Szkolenie
Ścieżka szkoleniowa
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Dokumentacja
Stabilność hologramu - Mixed Reality
HoloLens automatycznie stabilizuje hologramy, ale istnieją kroki, które deweloperzy mogą wykonać, aby jeszcze bardziej poprawić stabilność hologramu.
Wspólne doświadczenia w rzeczywistości mieszanej - Mixed Reality
Aplikacje holograficzne mogą udostępniać kotwice przestrzenne z jednego urządzenia HoloLens do innego, umożliwiając użytkownikom renderowanie hologramu w tym samym miejscu w świecie rzeczywistym na wielu urządzeniach.
Testowanie aplikacji na urządzeniu HoloLens - Mixed Reality
Dowiedz się więcej na temat ogólnych wskazówek i sugestii dotyczących testowania i optymalizacji wydajności aplikacji holoLens rzeczywistości mieszanej.