Zalecane ustawienia aparatu Unity
Aparat Unity udostępnia zestaw opcji domyślnych, które zazwyczaj są średnim przypadkiem dla wszystkich platform. Jednak aparat Unity oferuje pewne zachowania specyficzne dla rzeczywistości mieszanej, które można przełączać za pomocą ustawień projektu.
Konfigurowanie wydajnego środowiska
Ustawienia o niskiej jakości
Ważne jest, aby zmodyfikować ustawienia jakości aparatu Unity na Bardzo niskie , tak aby aplikacja działała i działa dobrze z odpowiednią szybkością klatek, szczególnie w przypadku programowania urządzenia HoloLens. W przypadku programowania na immersywnych zestawach nagłownych, w zależności od specyfikacji pulpitu zasilającego środowisko VR, można nadal osiągnąć szybkość klatek bez parametrów najniższej jakości.
W środowisku Unity 2019 LTS+można ustawić poziom jakości projektu, przechodząc do pozycji Edytuj>projekt Ustawienia> Quality i ustawiając wartość Domyślną, klikając strzałkę w dół na poziom **Bardzo niska jakość.
Ustawienia oświetlenia
Podobnie jak w przypadku ustawień sceny jakości, ważne jest ustawienie optymalnych ustawień oświetlenia dla aplikacji rzeczywistości mieszanej. W aferze Unity ustawienie Oświetlenie, które zwykle będzie miało największy wpływ na wydajność sceny, to Globalne oświetlenie w czasie rzeczywistym. Możesz wyłączyć oświetlenie globalne, przechodząc do okna>Renderowanie>oświetlenia Ustawienia> Realtime Globalne oświetlenie.
Jest inne ustawienie oświetlenia, Baked Global Lighting. To ustawienie może zapewnić wydajne i wizualnie uderzające wyniki na immersywnych zestawach nagłownych, ale nie ma zastosowania do opracowywania urządzenia HoloLens. Globalne oświetlenie jest obliczane tylko dla statycznych obiektów GameObjects, które nie znajdują się w scenach HoloLens ze względu na charakter nieznanego i zmieniającego się środowiska.
Aby uzyskać więcej informacji, przeczytaj globalne oświetlenie z aparatu Unity .
Uwaga
Globalne oświetlenie w czasie rzeczywistym jest ustawiane na scenę , dlatego deweloperzy muszą zapisać tę właściwość dla każdej sceny aparatu Unity w projekcie.
Ścieżka renderowania z pojedynczym przekazywaniem
W aplikacjach rzeczywistości mieszanej scena jest renderowana dwa razy: raz dla każdego oka. W porównaniu do tradycyjnego programowania 3D skutecznie podwaja to ilość pracy, którą należy obliczyć. Ważne jest, aby wybrać najbardziej wydajną ścieżkę renderowania w afeście Unity, aby zaoszczędzić zarówno na procesorze CPU, jak i w czasie procesora GPU. Renderowanie z pojedynczym przekazywaniem optymalizuje potok renderowania aparatu Unity dla aplikacji rzeczywistości mieszanej; Zalecamy włączenie tego ustawienia domyślnie dla każdego projektu.
Aby włączyć tę funkcję w projekcie aparatu Unity
- Otwórz Ustawienia OpenXR (przejdź do pozycji Edytuj>projekt Ustawienia> XR Plugin Management>OpenXR).
- Wybierz pozycję Pojedyncze wystąpienie przekazywane z menu rozwijanego Tryb renderowania.
Aby uzyskać więcej informacji na temat tego podejścia do renderowania, przeczytaj następujące artykuły z aparatu Unity.
Uwaga
Jednym z typowych problemów z renderowaniem pojedynczego wystąpienia z przekazywaniem występuje, jeśli deweloperzy mają już istniejące niestandardowe moduły cieniowania, które nie zostały napisane na potrzeby stancingu. Po włączeniu tej funkcji deweloperzy mogą zauważyć, że niektóre obiekty GameObject są renderowane tylko w jednym oku. Jest to spowodowane tym, że skojarzone niestandardowe cieniowania nie mają odpowiednich właściwości do ściągnięcia.
Włączanie udostępniania buforu głębokości
Aby osiągnąć lepszą stabilność hologramu z percepcji użytkownika, zaleca się włączenie właściwości Udostępnianie buforu głębokości w a także aparatu Unity. Po włączeniu tej opcji aparat Unity udostępni mapę głębokości utworzoną przez aplikację za pomocą platformy Windows Mixed Reality. Platforma może następnie lepiej zoptymalizować stabilność hologramu specjalnie dla sceny dla każdej ramki renderowanej przez aplikację.
Aby włączyć tę funkcję w projekcie aparatu Unity
- Otwórz Ustawienia OpenXR (przejdź do pozycji Edytuj>projekt Ustawienia> XR Plugin Management>OpenXR).
- Wybierz pozycję Głębokość 16-bitowa z menu rozwijanego Tryb przesyłania głębokości.
Ustawienie buforu głębokości 16-bitowej jest szczególnie zalecane w przypadku programowania urządzenia HoloLens. Wybranie 16-bitowej wersji w porównaniu do 24-bitowej znacznie zmniejszy wymagania dotyczące przepustowości, ponieważ mniej danych będzie musiało zostać przeniesione/przetworzone. Oznacza to, że optymalizacja wiąże się z pewnymi kosztami. Upewnij się, że rozumiesz implikacje wymienione w poniższych polach Ważne .
Aby platforma Windows Mixed Reality optymalizowała stabilność hologramu, opiera się na buforze głębokości, aby był dokładny i dopasowany do wszystkich renderowanych hologramów na ekranie. W związku z tym przy współużytkowania buforu głębokości ważne jest, aby podczas renderowania koloru również renderować głębokość. W aplecie Unity większość materiałów nieprzezroczystych lub TransparentCutout domyślnie renderuje głębokość, ale obiekty przezroczyste i tekstowe nie będą renderowane, chociaż jest to zależne od cieniowania i innych czynników.
W przypadku korzystania z cieniowania zestawu narzędzi Mixed Reality Toolkit Standard w celu renderowania głębokości obiektów przezroczystych:
- Wybierz przezroczysty materiał używający cieniowania standardowego zestawu narzędzi MRTK i otwórz okno edytora Inspector
- Wybierz przycisk Napraw teraz w ostrzeżeniu udostępniania buforu głębokości. Można to również wykonać ręcznie, ustawiając tryb renderowania na Niestandardowy, a następnie ustaw wartość Tryb na Przezroczysty, a na koniec ustaw wartość Zapis głębokości na Wł.
Ważne
Deweloperzy powinni uważać na walki Z podczas zmieniania tych wartości wraz z ustawieniami zbliżonych/odległych płaszczyzn aparatu. Walka Z występuje, gdy dwa obiekty gameobject próbują renderować do tego samego piksela i ze względu na ograniczenia wierności buforu głębokości (tj. głębokości), Unity nie może rozpoznać, który obiekt znajduje się przed drugim. Deweloperzy zanotują migotanie między dwoma obiektami gry, ponieważ walczą o tę samą wartość głębokości z. Można to rozwiązać, przełączając się na format głębokości 24-bitowej, ponieważ istnieje większy zakres wartości dla każdego obiektu do obliczenia dla ich głębokości z aparatu.
Jednak zaleca się, szczególnie w przypadku opracowywania urządzenia HoloLens, modyfikowanie bliskich i odległych płaszczyzn aparatu do mniejszego zakresu i zachowanie formatu głębokości 16-bitowej. Głębokość z jest nieliniowo mapowana na zakres wartości wzdłuż bliskich i odległych płaszczyzn kamery. Można to zmodyfikować, wybierając Aparat Main w scenie i w obszarze Inspector (Inspektor), zmień wartości Płaszczyzny w pobliżu i daleko, aby zmniejszyć ich zakres (tj. od 1000m do 100m lub inną wartość x itp.)
Ważne
Aparat Unity nie tworzy buforu wzornika w przypadku korzystania z formatu głębokości 16-bitowej. W związku z tym niektóre efekty interfejsu użytkownika aparatu Unity i inne efekty wymagane przez wzornik nie będą działać, chyba że wybrano format głębokości 24-bitowej, co spowoduje utworzenie buforu wzornika 8-bitowego.
Budynek dla IL2CPP
Środowisko Unity ma przestarzałą obsługę zaplecza skryptów platformy .NET, dlatego zaleca deweloperom korzystanie z il2CPP dla kompilacji programu Visual Studio platformy UWP. Mimo że przynosi to różne korzyści, tworzenie rozwiązania visual studio z aparatu Unity dla IL2CPP może być wolniejsze niż stara metoda .NET. W związku z tym zdecydowanie zaleca się stosowanie najlepszych rozwiązań dotyczących tworzenia il2CPP w celu zaoszczędzenia czasu iteracji programowania.
- Korzystaj z kompilacji przyrostowej, tworząc projekt w tym samym katalogu za każdym razem, ponownie używając wstępnie utworzonych plików.
- Wyłączanie skanowania oprogramowania chroniącego przed złośliwym oprogramowaniem dla folderów projektu i kompilacji
- Otwórz aplikację Ochrona przed wirusami i zagrożeniami w aplikacji ustawień systemu Windows 10
- Wybierz pozycję Zarządzaj Ustawienia w obszarze Ustawienia ochrony przed wirusami i zagrożeniami
- Wybierz pozycję Dodaj lub usuń wykluczenia w sekcji Wykluczenia
- Wybierz pozycję Dodaj wykluczenie i wybierz folder zawierający kod projektu aparatu Unity i dane wyjściowe kompilacji
- Używanie dysku SSD do kompilowania
Aby uzyskać więcej informacji, zobacz Optymalizowanie czasów kompilacji dla IL2CPP .
Uwaga
Ponadto korzystne może być skonfigurowanie serwera pamięci podręcznej, zwłaszcza w przypadku projektów aparatu Unity z dużą ilością zasobów (z wyłączeniem plików skryptów) lub stale zmieniających się scen/zasobów. Podczas otwierania projektu aparat Unity przechowuje kwalifikujące się zasoby do wewnętrznego formatu pamięci podręcznej na maszynie dewelopera. Elementy muszą zostać ponownie zaimportowane, a tym samym ponownie przetworzone podczas modyfikacji. Ten proces można wykonać raz i zapisać na serwerze pamięci podręcznej, a w związku z tym udostępnić innym deweloperom czas, zamiast każdego dewelopera przetwarzać ponowne importowanie nowych zmian lokalnie.
Właściwości publikowania
Ekran powitalny Holographic
Urządzenie HoloLens ma procesor CPU klasy mobilnej i procesor GPU, co oznacza, że ładowanie aplikacji może potrwać nieco dłużej. Podczas ładowania aplikacji użytkownicy będą po prostu widzieć kolor czarny, więc mogą się zastanawiać, co się dzieje. Aby uspokoić je podczas ładowania, możesz dodać ekran powitalny holograficzny.
Aby przełączyć ekran powitalny holograficzny:
- Przejdź do strony Edytowanie>projektu Ustawienia Player>
- Wybierz kartę Sklep Windows i otwórz sekcję Obraz powitalny
- Zastosuj obraz pod właściwością Windows Holographic Holographic > Splash Image .
- Przełączenie opcji Pokaż ekran powitalny aparatu Unity spowoduje włączenie lub wyłączenie ekranu powitalnego marki Unity. Jeśli nie masz licencji aparatu Unity Pro, zawsze będzie wyświetlany ekran powitalny marki Unity.
- Jeśli jest stosowany obraz powitalny Holographic, zawsze będzie wyświetlany, czy pole wyboru Pokaż ekran powitalny aparatu Unity jest włączone, czy wyłączone. Określanie niestandardowego obrazu powitalnego holograficznego jest dostępne tylko dla deweloperów z licencją aparatu Unity Pro.
Pokaż ekran powitalny aparatu Unity | Obraz holograficzny splash | Zachowanie |
---|---|---|
Włączone | Brak | Pokaż domyślny ekran powitalny aparatu Unity przez 5 sekund lub do momentu załadowania aplikacji, w zależności od tego, która z nich jest dłuższa. |
Włączone | Niestandardowy | Pokaż niestandardowy ekran powitalny przez 5 sekund lub do momentu załadowania aplikacji, w zależności od tego, która z nich jest dłuższa. |
Wyłączona | Brak | Pokaż przezroczyste czarne (nic) do momentu załadowania aplikacji. |
Wyłączona | Niestandardowy | Pokaż niestandardowy ekran powitalny przez 5 sekund lub do momentu załadowania aplikacji, w zależności od tego, która z nich jest dłuższa. |
Aby uzyskać więcej informacji, przeczytaj dokumentację ekranu powitalnego aparatu Unity.
Śledzenie utraty
Zestaw słuchawkowy rzeczywistości mieszanej zależy od wyświetlania środowiska wokół niego do konstruowania układów współrzędnych zablokowanych na świecie, które umożliwiają hologramom pozostawanie w pozycji. Gdy zestaw słuchawkowy nie może zlokalizować się na świecie, mówi się, że zestaw słuchawkowy stracił śledzenie. W takich przypadkach funkcjonalność zależna od systemów współrzędnych zablokowanych na świecie, takich jak etapy przestrzenne, kotwice przestrzenne i mapowanie przestrzenne, nie działają.
Jeśli wystąpi utrata śledzenia, domyślne zachowanie aparatu Unity polega na zatrzymaniu renderowania hologramów, wstrzymaniu pętli gry i wyświetleniu śledzenia utraconego powiadomienia, które wygodnie podąża za spojrzeniem użytkowników. Powiadomienia niestandardowe można również udostępnić w postaci obrazu śledzenia utraty. W przypadku aplikacji, które zależą od śledzenia całego środowiska, wystarczy zezwolić aparatowi Unity na całkowite obsłużenie tego celu do momentu odzyskania śledzenia. Deweloperzy mogą podać niestandardowy obraz, który ma być wyświetlany podczas śledzenia utraty.
Aby dostosować utracony obraz śledzenia:
- Przejdź do strony Edytowanie>projektu Ustawienia Player>
- Wybierz kartę Sklep Windows i otwórz sekcję Obraz powitalny
- Zastosuj obraz w obszarze właściwości Obraz śledzenia systemu Windows Holographic>.
Rezygnacja z automatycznego wstrzymywania
Niektóre aplikacje mogą nie wymagać śledzenia (np. aplikacji tylko orientacji, takich jak 360-stopniowa widzów wideo) lub może być konieczne kontynuowanie nieprzerwanego przetwarzania podczas śledzenia. Możesz zrezygnować z domyślnej utraty zachowania śledzenia, ale ponosisz odpowiedzialność za ukrywanie/wyłączanie wszelkich obiektów, które nie byłyby prawidłowo renderowane w scenariuszu śledzenia utraty. W większości przypadków jedyną zawartością zalecaną do renderowania w tym przypadku jest zawartość zablokowana na ciele, wyśrodkowana wokół głównego aparatu.
Aby zrezygnować z zachowania automatycznego wstrzymywania:
- Przejdź do strony Edytowanie>projektu Ustawienia Player>
- Wybierz kartę Sklep Windows i otwórz sekcję Obraz powitalny
- Zmodyfikuj pole wyboru Windows Holographic > On Tracking Loss Pause (Wstrzymywanie śledzenia śledzenia) i Show Image (Pokaż obraz).
Śledzenie zdarzeń utraty
Aby zdefiniować niestandardowe zachowanie podczas śledzenia utraty, obsłuż zdarzenia śledzenia globalnego śledzenia.
Możliwości
Aby aplikacja korzystała z niektórych funkcji, musi zadeklarować odpowiednie możliwości w manifeście. Deklaracje manifestu można składać w środowisku Unity, aby były uwzględniane w każdym przyszłym eksporcie projektu.
Możliwości można włączyć dla aplikacji rzeczywistości mieszanej, wykonując następujące czynności:
- Przejdź do strony Edytowanie>projektu Ustawienia Player>
- Wybierz kartę Sklep Windows, otwórz sekcję Publikowanie Ustawienia i poszukaj listy Możliwości
Odpowiednie możliwości włączania powszechnie używanych interfejsów API dla aplikacji Holographic to:
Możliwość | Interfejsy API wymagające możliwości |
---|---|
SpatialPerception | SurfaceObserver |
Kamerka internetowa | PhotoCapture i VideoCapture |
PicturesLibrary / VideosLibrary | PhotoCapture lub VideoCapture , odpowiednio (podczas przechowywania przechwyconej zawartości) |
Mikrofon | VideoCapture (podczas przechwytywania dźwięku), DictationRecognizer, GrammarRecognizer i KeywordRecognizer |
InternetClient | DictationRecognizer (i do korzystania z profilera aparatu Unity) |