Freigeben über


Empfohlene Einstellungen für Unity

Unity bietet eine Reihe von Standardoptionen, die im Allgemeinen für alle Plattformen im Durchschnitt gelten. Unity bietet jedoch bestimmte Verhaltensweisen für Mixed Reality, die durch Projekteinstellungen umgeschaltet werden können.

Einrichten einer leistungsfähigen Umgebung

Einstellungen mit niedriger Qualität

Es ist wichtig, die Unity-Qualitätseinstellungen auf "Sehr niedrig" zu ändern, damit Ihre Anwendung ausgeführt wird und bei der geeigneten Framerate gut funktioniert, insbesondere für die HoloLens-Entwicklung. Für die Entwicklung auf immersiven Headsets kann man je nach den Spezifikationen des Desktops, der die VR-Erfahrung unterstützt, trotzdem framerate ohne die niedrigsten Qualitätsparameter erzielen.

In Unity 2019 LTS+ können Sie die Qualitätsebene des Projekts festlegen, indem Sie "Project Einstellungen> Quality bearbeiten>" und "Standard" festlegen, indem Sie auf den Abwärtspfeil auf die Stufe **Sehr niedrige Qualität klicken.

Beleuchtungseinstellungen

Ähnlich wie bei Qualitätsszeneeinstellungen ist es wichtig, optimale Beleuchtungseinstellungen für Ihre Mixed Reality-Anwendung festzulegen. In Unity hat die Einstellung "Beleuchtung", die in der Regel den größten Einfluss auf die Leistung ihrer Szene hat, die Realtime Global Lighting. Sie können die globale Beleuchtung deaktivieren, indem Sie zu Window>Rendering>Lighting Einstellungen> Realtime Global Lighting wechseln.

Es gibt eine weitere Beleuchtungseinstellung, backte globale Beleuchtung. Diese Einstellung kann leistungsfähige und visuell auffällige Ergebnisse für immersive Headsets bereitstellen, gilt aber nicht für die HoloLens-Entwicklung. Die backte globale Beleuchtung wird nur für statische GameObjects berechnet, die in HoloLens-Szenen aufgrund der Art einer unbekannten und sich ändernden Umgebung nicht gefunden werden.

Lesen Sie die globale Beleuchtung von Unity , um weitere Informationen zu erhalten.

Hinweis

Die globale Beleuchtung in Echtzeit wird pro Szene festgelegt, und Entwickler müssen diese Eigenschaft für jede Unity-Szene in ihrem Projekt speichern.

Renderpfad für einmalige Übergaben

In Mixed Reality-Anwendungen wird die Szene zweimal gerendert: einmal für jedes Auge. Im Vergleich zur herkömmlichen 3D-Entwicklung verdoppelt dies effektiv die Menge an Arbeit, die berechnet werden muss. Es ist wichtig, den effizientesten Renderingpfad in Unity auszuwählen, um sowohl CPU- als auch GPU-Zeit zu sparen. Single Pass Instanced Rendering optimiert die Unity-Renderingpipeline für Mixed Reality-Apps; wir empfehlen, diese Einstellung standardmäßig für jedes Projekt zu aktivieren.

Aktivieren dieser Funktion in Ihrem Unity-Projekt

  1. Öffnen Sie OpenXR-Einstellungen. (Navigieren Sie zu Bearbeiten>Projekteinstellungen>XR-Plug-In-Verwaltung>OpenXR.)
  2. Wählen Sie im Dropdownmenü Rendermodus die Option Single-Pass-Instanz aus.

Lesen Sie die folgenden Artikel von Unity, um weitere Details mit diesem Renderingansatz zu erhalten.

Hinweis

Ein häufiges Problem beim Single-Pass-Instanzrendering tritt auf, wenn Entwickler bereits vorhandene benutzerdefinierte Shader einsetzen, die noch nicht für die Instanziierung geschrieben wurden. Nach dem Aktivieren dieses Features stellen die Entwickler möglicherweise fest, dass manche Spielobjekte nur für ein Auge gerendert werden. Dies hat den Grund, dass die zugeordneten benutzerdefinierten Shader nicht die geeigneten Eigenschaften für die Instanziierung aufweisen.

Aktivieren der Tiefenpufferfreigabe

Um eine bessere Hologrammstabilität aus der Wahrnehmung des Benutzers zu erzielen, empfiehlt es sich, die Tiefenpufferfreigabeeigenschaft in Unity zu aktivieren. Durch Aktivieren dieses Vorgangs teilt Unity die von Ihrer Anwendung erstellte Tiefenkarte mit der Windows Mixed Reality-Plattform. Die Plattform kann dann die Hologrammstabilität besser optimieren, speziell für Ihre Szene für jeden gegebenen Frame, der von Ihrer Anwendung gerendert wird.

Aktivieren dieser Funktion in Ihrem Unity-Projekt

  1. Öffnen Sie OpenXR-Einstellungen. (Navigieren Sie zu Bearbeiten>Projekteinstellungen>XR-Plug-In-Verwaltung>OpenXR.)
  2. Wählen Sie "Tiefe 16 Bit " im Dropdownmenü "Tiefenübermittlungsmodus " aus.

Die 16-Bit-Tiefenpuffereinstellung wird besonders für die HoloLens-Entwicklung empfohlen. Die Auswahl von 16-Bit im Vergleich zu 24-Bit reduziert die Bandbreitenanforderungen erheblich, da weniger Daten verschoben/verarbeitet werden müssen. Das heißt, die Optimierung kommt mit bestimmten Kosten. Stellen Sie sicher, dass Sie die Auswirkungen verstehen, die in den folgenden Feldern "Wichtig" Erwähnung.

Damit die Windows Mixed Reality-Plattform die Stabilität des Hologramms optimiert, basiert sie darauf, dass der Tiefenpuffer korrekt ist und allen gerenderten Hologrammen auf dem Bildschirm entspricht. Daher ist es bei der Freigabe des Tiefenpuffers beim Rendern der Farbe wichtig, auch tiefe zu rendern. In Unity rendern die meisten Opaque- oder TransparentCutout-Materialien standardmäßig Tiefe, aber transparente Und Textobjekte rendern keine Tiefe, obwohl dies von Shadern und anderen Faktoren abhängig ist.

Wenn Sie den Mixed Reality Toolkit Standard-Shader verwenden, um Tiefe für transparente Objekte zu rendern:

  1. Wählen Sie das transparente Material aus, das den MRTK Standard-Shader verwendet, und öffnen Sie das Inspektor-Editor-Fenster.
  2. Wählen Sie die Schaltfläche "Jetzt korrigieren" in der Warnung zur Freigabe des Tiefenpuffers aus. Dies kann auch manuell ausgeführt werden, indem der Renderingmodus auf "Benutzerdefiniert" festgelegt wird. Legen Sie dann den Modus auf "Transparent" fest und legen Sie schließlich "Tiefenschreibzugriff auf Ein" fest.

Wichtig

Entwickler sollten sich vor Z-Kämpfen beim Ändern dieser Werte sowie der Nah-/Weitebeneneinstellungen der Kamera bewusst sein. Z-Fighting tritt auf, wenn zwei Spielobjekte versuchen, dasselbe Pixel zu rendern, und aufgrund von Einschränkungen der Genauigkeit des Tiefenpuffers (d. h. z Tiefe) kann Unity nicht erkennen, welches Objekt sich vor dem anderen befindet. Entwickler werden eine Flackerung zwischen zwei Spielobjekten notieren, während sie für den gleichen Z-Tiefenwert kämpfen . Dies kann gelöst werden, indem sie auf das 24-Bit-Tiefenformat umstellen, da es einen größeren Wertebereich für jedes Objekt gibt, das für seine Z-Tiefe von der Kamera berechnet werden soll.

Es wird jedoch empfohlen, insbesondere bei der HoloLens-Entwicklung, die Nahe- und Weitebene der Kamera stattdessen in einen kleineren Bereich zu ändern und das 16-Bit-Tiefenformat beizubehalten. Die Z-Tiefe ist nicht linear dem Wertebereich entlang der nahe und weit entfernten Kameraebenen zugeordnet. Dies kann geändert werden, indem Sie die Haupt-Kamera in Ihrer Szene und unter "Inspektor" auswählen, die Werte für "Near & Far Clipping Plane" ändern, um ihren Bereich zu verringern (z. B. von 1000 m bis 100m oder einem anderen x-Wert usw.)

Wichtig

Unity erstellt keinen Schablonenpuffer bei Verwendung des 16-Bit-Tiefenformats. Daher funktionieren einige Unity-UI-Effekte und andere erforderliche Schabloneneffekte nicht, es sei denn, das 24-Bit-Tiefenformat ist ausgewählt, wodurch ein 8-Bit-Schablonenpuffer erstellt wird.

Gebäude für IL2CPP

Unity hat veraltete Unterstützung für das .NET Scripting-Back-End und empfiehlt daher, dass Entwickler IL2CPP für ihre UWP Visual Studio-Builds verwenden. Obwohl dies verschiedene Vorteile bringt, kann das Erstellen Ihrer Visual Studio-Lösung aus Unity für IL2CPP langsamer sein als die alte .NET-Methode. Daher wird dringend empfohlen, bewährte Methoden für die Erstellung von IL2CPP zu befolgen, um Die Entwicklungszeit zu sparen.

  1. Nutzen Sie die inkrementelle Erstellung, indem Sie Ihr Projekt jedes Mal auf dasselbe Verzeichnis erstellen und die vordefinierten Dateien dort wiederverwenden.
  2. Deaktivieren von Antischadsoftwarescans für Ihre Projekt- und Buildordner
    • Öffnen des Viren- und Bedrohungsschutzes unter Ihrer Windows 10-Einstellungs-App
    • Wählen Sie "Einstellungen verwalten" unter "Viren- und Bedrohungsschutzeinstellungen" aus.
    • Wählen Sie "Ausschlüsse hinzufügen oder entfernen" im Abschnitt "Ausschlüsse" aus.
    • Wählen Sie "Ausschluss hinzufügen" aus, und wählen Sie den Ordner aus, der Ihren Unity-Projektcode enthält, und erstellen Sie Ausgaben.
  3. Verwenden einer SSD zum Erstellen

Weitere Informationen finden Sie unter Optimieren von Buildzeiten für IL2CPP .

Hinweis

Darüber hinaus es kann vorteilhaft sein, besonders für Unity-Projekte mit sehr vielen Ressourcen (mit Ausnahme von Skriptdateien) oder ständig wechselnden Szenen/Ressourcen, einen Cacheserver einzurichten. Beim Öffnen eines Projekts speichert Unity die qualifizierenden Ressourcen in einem internen Cacheformat auf dem Entwicklercomputer. Bei Änderungen müssen die Elemente neu importiert und daher neu verarbeitet werden. Dieser Prozess kann einmal durchgeführt, in einem Cacheserver gespeichert und anschließend für andere Entwickler freigegeben werden, damit diese Zeit sparen und den erneuten Import der Änderungen nicht mehr einzeln und lokal verarbeiten müssen.

Veröffentlichungseigenschaften

Holografischer Begrüßungsbildschirm

HoloLens verfügt über eine CPU und GPU der mobilen Klasse, was bedeutet, dass Apps etwas länger zum Laden dauern können. Während die App geladen wird, sehen die Benutzer einfach schwarz, und daher fragen sie sich vielleicht, was gerade passiert. Um sie beim Laden zu beruhigen, können Sie einen holografischen Begrüßungsbildschirm hinzufügen.

So schalten Sie den holografischen Begrüßungsbildschirm um:

  1. Zur Seite "Projekt bearbeiten>" Einstellungen> Player wechseln
  2. Wählen Sie die Registerkarte "Windows Store " aus, und öffnen Sie den Abschnitt "Begrüßungsbild "
  3. Wenden Sie Ihr Bild unter der Windows Holographic Holographic > Splash Image-Eigenschaft an.
    • Wenn Sie die Option "Unity-Begrüßungsbildschirm anzeigen" aktivieren oder deaktivieren, wird der Begrüßungsbildschirm der Marke Unity aktiviert oder deaktiviert. Wenn Sie nicht über eine Unity Pro-Lizenz verfügen, wird der Branding-Begrüßungsbildschirm von Unity immer angezeigt.
    • Wenn ein holografisches Begrüßungsbild angewendet wird, wird es immer angezeigt, ob das Kontrollkästchen "Unity-Begrüßungsbildschirm anzeigen" aktiviert oder deaktiviert ist. Das Angeben eines benutzerdefinierten holografischen Begrüßungsbilds steht Entwicklern nur mit einer Unity Pro-Lizenz zur Verfügung.
Unity-Begrüßungsbildschirm anzeigen Holografisches Begrüßungsbild Behavior
Ein Keine Zeigen Sie den Standardmäßigen Unity-Begrüßungsbildschirm für 5 Sekunden oder bis die App geladen wird, je nachdem, welcher Wert länger ist.
Ein Benutzerdefiniert Anzeigen des benutzerdefinierten Begrüßungsbildschirms für 5 Sekunden oder bis zum Laden der App, je nachdem, welcher Wert länger ist.
Aus Keine Zeigen Sie transparent schwarz (nichts) an, bis die App geladen wird.
Aus Benutzerdefiniert Anzeigen des benutzerdefinierten Begrüßungsbildschirms für 5 Sekunden oder bis zum Laden der App, je nachdem, welcher Wert länger ist.

Weitere Informationen finden Sie in der Dokumentation zum Begrüßungsbildschirm von Unity.

Verlust der Nachverfolgung

Ein Mixed Reality-Headset hängt davon ab, wie sich die Umgebung befindet, um weltweit gesperrte Koordinatensysteme zu konstruieren, wodurch Hologramme in der Position neu Standard werden können. Wenn sich das Headset in der Welt nicht finden kann, wird das Headset gesagt, dass das Tracking verloren gegangen ist. In diesen Fällen funktionieren Funktionen, die von weltgesperrten Koordinatensystemen abhängig sind, z. B. räumliche Phasen, räumliche Verankerungen und räumliche Zuordnungen, nicht.

Wenn ein Verlust der Nachverfolgung auftritt, besteht das Standardverhalten von Unity darin, das Rendern von Hologrammen zu beenden, die Spielschleife anzuhalten und eine nachverfolgung verloren gegangene Benachrichtigung anzuzeigen, die bequem dem Blick der Benutzer folgt. Benutzerdefinierte Benachrichtigungen können auch in Form eines Bilds zum Nachverfolgen von Verlusten bereitgestellt werden. Für Apps, die von der Nachverfolgung für ihre gesamte Erfahrung abhängen, reicht es aus, Unity dies vollständig zu verarbeiten, bis die Nachverfolgung wiedererlangt wird. Entwickler können ein benutzerdefiniertes Bild bereitstellen, das während des Nachverfolgens von Verlusten angezeigt werden soll.

So passen Sie das verlorene Bild für die Nachverfolgung an:

  1. Zur Seite "Projekt bearbeiten>" Einstellungen> Player wechseln
  2. Wählen Sie auf der Registerkarte "Windows Store " aus, und öffnen Sie den Abschnitt "Begrüßungsbild "
  3. Wenden Sie Ihr Bild unter der Windows Holographic > Tracking Loss Image-Eigenschaft an.

Deaktivieren der automatischen Pause

Einige Apps erfordern möglicherweise keine Nachverfolgung (z. B. nur Ausrichtungs-Apps wie 360-Grad-Video-Viewer) oder müssen die Verarbeitung fortsetzen, während die Nachverfolgung verloren geht. Sie können den Standardmäßigen Verlust des Nachverfolgungsverhaltens deaktivieren, aber Sie sind für das Ausblenden/Deaktivieren von Objekten verantwortlich, die in einem Tracking-Verlustszenario nicht ordnungsgemäß gerendert würden. In den meisten Fällen wird der einzige Inhalt empfohlen, der in diesem Fall gerendert werden soll, ist textkörpergesperrter Inhalt, der um die Standard Kamera zentriert ist.

So deaktivieren Sie das verhalten der automatischen Pause:

  1. Wechseln zur >Seite "Projekt bearbeiten Einstellungen> Player"
  2. Wählen Sie die Registerkarte "Windows Store " aus, und öffnen Sie den Abschnitt "Begrüßungsbild "
  3. Ändern Sie das Kontrollkästchen "Windows Holographic > On Tracking Loss Pause" und "Bild anzeigen".

Nachverfolgen von Verlustereignissen

Um benutzerdefiniertes Verhalten beim Verlust der Nachverfolgung zu definieren, behandeln Sie die globalen Tracking-Verlustereignisse.

Capabilities

Damit eine App bestimmte Funktionen nutzen kann, muss sie die entsprechenden Funktionen im Manifest deklarieren. Die Manifestdeklarationen können in Unity erfolgen, damit sie in jedem zukünftigen Projektexport enthalten sind.

Funktionen können für eine Mixed Reality-Anwendung aktiviert werden, indem Sie:

  1. Zur Seite "Projekt bearbeiten>" Einstellungen> Player wechseln
  2. Wählen Sie die Registerkarte "Windows Store" aus, öffnen Sie den Abschnitt "Veröffentlichung Einstellungen", und suchen Sie nach der Liste "Funktionen".

Die anwendbaren Funktionen zum Aktivieren der häufig verwendeten APIs für Holographic-Apps sind:

Funktion APIs, die Funktionen erfordern
SpatialPerception SurfaceObserver
WebCam PhotoCapture und VideoCapture
PicturesLibrary / VideosLibrary PhotoCapture bzw. VideoCapture (beim Speichern des aufgenommenen Inhalts)
Mikrofon VideoCapture (beim Aufzeichnen von Audio), DictationRecognizer, GrammarRecognizer und KeywordRecognizer
InternetClient DictationRecognizer (und zur Verwendung des Unity Profilers)

Weitere Informationen