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. Do programowania na immersywnych zestawach słuchawkowych, 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>jakośćustawień> projektu 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 Mixed Reality. W aferze Unity ustawienie oświetlenia, 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ć globalne oświetlenie, przechodząc do obszaru Ustawienia>oświetlenia renderowania> okien >w czasie rzeczywistym Globalne oświetlenie.

Jest jeszcze jedno ustawienie oświetlenia, Pieczone globalne oświetlenie. 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 GameObject, 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ę i dlatego deweloperzy muszą zapisać tę właściwość dla każdej sceny aparatu Unity w projekcie.

Ścieżka renderowania z pojedynczym przekazywaniem

W Mixed Reality aplikacjach 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, jak i w czasie procesora GPU. Renderowanie z pojedynczym przekazywaniem optymalizuje potok renderowania aparatu Unity dla aplikacji rzeczywistości mieszanej; Zalecamy, aby to ustawienie było domyślnie włączone dla każdego projektu.

Aby włączyć tę funkcję w projekcie aparatu Unity

  1. Otwórz pozycję OpenXR Settings (Edytuj>ustawienia> projektuXR Plugin Management>OpenXR).
  2. Z menu rozwijanego Tryb renderowania wybierz pozycję Pojedyncze wystąpienie z przekazywaniem.

Przeczytaj następujące artykuły z aparatu Unity, aby uzyskać więcej informacji na temat tego podejścia do renderowania.

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 są napisane na potrzeby tworzenia wystąpień. 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 tworzenia wystąpienia.

Zobacz Single Pass Stereo Rendering for HoloLens from Unity (Renderowanie stereo z jednym przekazywaniem dla urządzenia HoloLens z aparatu Unity), aby dowiedzieć się, jak rozwiązać ten problem

Włączanie udostępniania buforu głębokości

Aby osiągnąć lepszą stabilność hologramu z punktu widzenia użytkownika, zaleca się włączenie właściwości Udostępnianie buforu głębokości w aproszcie Unity. Po włączeniu tej opcji aparat Unity udostępni mapę głębokości utworzoną przez aplikację na platformie 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

  1. Otwórz pozycję OpenXR Settings (Edytuj>ustawienia> projektuXR Plugin Management>OpenXR).
  2. Wybierz pozycję Głębokość 16-bitowa z menu rozwijanego Tryb przesyłania głębokości .

Ustawienie bufora głębokości 16-bitowej jest szczególnie zalecane w przypadku opracowywania 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. To powiedziamy, 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, polega na dokładnym buforze głębokości i dopasowaniu wszystkich renderowanych hologramów na ekranie. W związku z tym w przypadku udostępniania 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.

Jeśli używasz cieniowania zestawu narzędzi Mixed Reality Toolkit Standard, aby renderować głębokość dla obiektów przezroczystych:

  1. Wybierz przezroczysty materiał używający cieniowania standardowego zestawu narzędzi MRTK i otwórz okno edytora Inspector
  2. Wybierz przycisk Napraw teraz w ostrzeżeniu o udostępnianiu buforu głębokości. Można to również wykonać ręcznie, ustawiając tryb renderowania na niestandardowy; następnie ustaw opcję Trybna Przezroczysty, a na koniec ustaw wartość Zapis głębokości na .

Ważne

Deweloperzy powinni uważać na walkę Z podczas zmieniania tych wartości wraz z ustawieniami bliskiej/dalekiej płaszczyzny 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 z), Unity nie może rozpoznać, który obiekt znajduje się przed drugim. Deweloperzy zauważą 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ż dla każdego obiektu będzie można obliczyć większą głębokość z aparatu.

Jednak zaleca się, szczególnie w przypadku opracowywania urządzeń 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ż płaszczyzn aparatów blisko i daleko. Można to zmodyfikować, wybierając kamerę główną w scenie i w obszarze Inspector (Inspektor), zmień wartości Bliskie & Dalekie przycinanie płaszczyzny , aby zmniejszyć ich zakres (tj. z 1000m do 100m lub inną wartość x itp.)

Ważne

Aparat Unity nie tworzy bufora 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 8-bitowego buforu wzornika.

Budynek dla IL2CPP

Środowisko Unity ma przestarzałą obsługę zaplecza skryptów platformy .NET i dlatego zaleca deweloperom korzystanie z funkcji IL2CPP na potrzeby kompilacji programu Visual Studio platformy UWP. Chociaż przynosi to różne korzyści, tworzenie rozwiązania programu Visual Studio z aparatu Unity dla IL2CPP może być wolniejsze niż stara metoda platformy .NET. Dlatego zdecydowanie zaleca się stosowanie najlepszych rozwiązań dotyczących tworzenia il2CPP w celu zaoszczędzenia czasu iteracji programowania.

  1. Korzystaj z kompilowania przyrostowego, tworząc projekt w tym samym katalogu za każdym razem, ponownie używając wstępnie skompilowanych plików.
  2. Wyłączanie skanowania oprogramowania chroniącego przed złośliwym oprogramowaniem dla projektu & folderów kompilacji
    • Otwórz ochronę przed wirusami & przed zagrożeniami w aplikacji ustawień Windows 10
    • Wybierz pozycję Zarządzaj ustawieniami w obszarze Ustawienia ochrony przed wirusami & 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 skompiluj dane wyjściowe
  3. 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, szczególnie 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 zasoby kwalifikujące się do wewnętrznego formatu pamięci podręcznej na maszynie dewelopera. Elementy muszą zostać ponownie zaimportowane i w ten sposób ponownie przetworzone po zmodyfikowaniu. 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 holograficzny

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ć czarno, więc mogą się zastanawiać, co się dzieje. Aby uspokoić je podczas ładowania, możesz dodać holograficzny ekran powitalny.

Aby przełączyć ekran powitalny holograficzny:

  1. Przejdź do strony Edytowanie>odtwarzaczaustawień> projektu
  2. Wybierz kartę Sklep Windows i otwórz sekcję Obraz powitalny
  3. 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 z marką Unity. Jeśli nie masz licencji aparatu Unity Pro, ekran powitalny marki Unity będzie zawsze wyświetlany.
    • 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 powitalny holograficzny 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, co jest dłuższe.
Włączone Niestandardowy Pokaż niestandardowy ekran powitalny przez 5 sekund lub do momentu załadowania aplikacji, w zależności od tego, co jest dłuższe.
Wyłączone Brak Pokaż przezroczysty czarny (nic), dopóki aplikacja nie zostanie załadowana.
Wyłączone Niestandardowy Pokaż niestandardowy ekran powitalny przez 5 sekund lub do momentu załadowania aplikacji, w zależności od tego, co jest dłuższe.

Aby uzyskać więcej informacji, przeczytaj dokumentację ekranu powitalnego aparatu Unity .

Śledzenie utraty

Zestaw słuchawkowy rzeczywistości mieszanej zależy od tego, czy środowisko wokół niego tworzy układy współrzędnych zablokowanych na świecie, co pozwala hologramom pozostać 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ą.

W przypadku utraty ś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 pozwolić aparatowi Unity na całkowite obsłużenie tego celu do momentu odzyskania śledzenia. Deweloperzy mogą dostarczyć niestandardowy obraz, który ma być wyświetlany podczas śledzenia utraty.

Aby dostosować utracony obraz śledzenia:

  1. Przejdź do strony Edytowanie>odtwarzaczaustawień> projektu
  2. Wybierz kartę Sklep Windows i otwórz sekcję Obraz powitalny
  3. Zastosuj obraz w obszarze właściwości Obraz śledzenia śledzenia systemu Windows>.

Rezygnacja z automatycznego wstrzymywania

Niektóre aplikacje mogą nie wymagać śledzenia (np. aplikacji tylko do orientacji , takich jak 360 stopni 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 wszystkich 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 takim przypadku jest zawartość zablokowana na ciele, skoncentrowana wokół głównego aparatu.

Aby zrezygnować z automatycznego zachowania wstrzymywania:

  1. Przejdź do strony Edytowanie>odtwarzaczaustawień> projektu
  2. Wybierz kartę Sklep Windows i otwórz sekcję Obraz powitalny
  3. Zmodyfikuj pole wyboru Windows Holographic > On Tracking Loss Pause (Wstrzymywanie śledzenia śledzenia) i Show Image (Pokaż obraz).

Śledzenie zdarzeń utraty

Aby zdefiniować zachowanie niestandardowe w przypadku śledzenia utraty, obsłuż zdarzenia śledzenia globalnego utraty.

Możliwości

Aby aplikacja korzystała z pewnych funkcji, musi zadeklarować odpowiednie możliwości w manifeście. Deklaracje manifestu można składać w afeście Unity, aby były uwzględniane w każdym przyszłym eksporcie projektu.

Możliwości można włączyć dla aplikacji Mixed Reality, wykonując następujące czynności:

  1. Przejdź do strony Edytowanie>odtwarzaczaustawień> projektu
  2. Wybierz kartę Sklep Windows, otwórz sekcję Ustawienia publikowania 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
ZdjęciaLibrary / 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)

Zobacz też