Übersicht über Mixed Reality-Aufnahmen
Hinweis
Anleitungen zu einer neuen MRC-Funktion für HoloLens 2 finden Sie unten unter Rendern von der PV-Kamera.
Sie können jederzeit ein Mixed Reality-Foto oder -Video (Mixed Reality Capture, MRC) aufnehmen, aber es gibt einige Dinge, die Sie bei der Entwicklung Ihrer Anwendung beachten sollten. Dies umfasst bewährte Methoden für die visuelle MRC-Qualität und die Reaktion auf Systemänderungen, während MRCs erfasst werden.
Entwickler können Mixed Reality-Erfassung und -Einfügung auch nahtlos in ihre Apps integrieren.
MRC auf HoloLens (erste Generation) unterstützt Videos und Fotos bis zu 720p, während MRC auf HoloLens 2 Videos bis zu 1080p und Fotos mit einer Auflösung von bis zu 4K unterstützt.
Die Bedeutung der MRC-Qualität
Unabhängig davon, ob es sich um Mixed Reality-Screenshots auf Ihrer Microsoft Store-Seite oder um andere Benutzer handelt, die Aufzeichnungsinhalte in sozialen Netzwerken teilen, Mixed Reality Capture-Medien sind häufig benutzer, die zuerst Ihrer App ausgesetzt sind. Sie können MRC verwenden, um Ihre App zu demorieren, Benutzer zu schulen, Benutzer zu ermutigen, ihre Interaktionen mit gemischten Welten zu teilen, und für Benutzerforschung und Problemlösung.
Auswirkungen von MRC auf Ihre App
Aktivieren von MRC in Ihrer App
Standardmäßig muss eine App nichts tun, um Es Benutzern zu ermöglichen, Mixed Reality-Aufnahmen zu machen.
Aktivieren einer verbesserten Ausrichtung für MRC in Ihrer App
Die Mixed Reality-Aufnahme kombiniert standardmäßig die holografische Ausgabe des rechten Auges mit der Foto-/Videokamera (PV). Diese beiden Quellen werden mithilfe des Fokuspunkts kombiniert, der von der derzeit ausgeführten immersiven App festgelegt wird.
Dies bedeutet, dass Hologramme außerhalb der Fokusebene aufgrund des physischen Abstands zwischen der PV-Kamera und dem rechten Display nicht ausgerichtet werden.
Festlegen des Fokuspunkts
Immersive Apps (auf HoloLens) sollten den Fokuspunkt festlegen, an dem sich ihre Stabilisierungsebene befinden soll. Dadurch wird die optimale Ausrichtung sowohl im Headset als auch in der Mixed Reality-Aufnahme sichergestellt.
Wenn kein Fokuspunkt festgelegt ist, wird die Stabilisierungsebene standardmäßig auf 2 Meter festgelegt.
Rendern von der PV-Kamera (Opt-In)
HoloLens 2 fügt die Möglichkeit hinzu, dass eine immersive App von der PV-Kamera gerendert werden kann, während Mixed Reality-Aufnahmen ausgeführt werden. Um sicherzustellen, dass die App das zusätzliche Rendern ordnungsgemäß unterstützt, muss die App diese Funktion aktivieren.
Das Rendern von der PV-Kamera bietet die folgenden Verbesserungen gegenüber der standardmäßigen MRC-Benutzeroberfläche:
- Die Ausrichtung des Hologramms auf Ihre physische Umgebung und ihre Hände für nahe Interaktionen sollte in allen Entfernungen genau sein. Vermeiden Sie einen Offset in anderen Entfernungen als dem Fokuspunkt, wie sie möglicherweise im Standard-MRC angezeigt werden.
- Das rechte Auge im Headset wird nicht kompromittiert, da es nicht zum Rendern der Hologramme für die MRC-Ausgabe verwendet wird.
Erfahren Sie mehr über das Rendern von der PV-Kamera (DirectX).
Bewährte Methoden (HoloLens-spezifisch)
Es wird erwartet, dass MRC ohne zusätzlichen Entwicklungsaufwand funktioniert, aber es gibt einige Dinge zu beachten, wenn sie die beste Mixed Reality-Aufnahmeerfahrung bieten.
MRC verwendet den Alphakanal des Hologramms, um mit den Kamerabildern zu verschmelzen
Der wichtigste Schritt besteht darin, sicherzustellen, dass Ihre App auf transparent schwarz statt zu undurchsichtigem Schwarz löscht. In Unity erfolgt dies standardmäßig mit dem MixedRealityToolkit. Wenn Sie in Nicht-Unity entwickeln, müssen Sie möglicherweise eine Einzige Zeile ändern.
Hier sind einige der Artefakte, die möglicherweise in MRC angezeigt werden, wenn Ihre App nicht in transparentes Schwarz löscht:
Beispielfehler: Schwarze Kanten um den Inhalt herum (fehler beim Löschen in transparentes Schwarz)
Beispielfehler: Die gesamte Hintergrundszene des Hologramms wird schwarz angezeigt. Das Festlegen eines Alpha-Hintergrundwerts von 1 führt zu einem schwarzen Hintergrund
Erwartetes Ergebnis: Hologramme werden ordnungsgemäß mit der realen Welt gemischt angezeigt (erwartetes Ergebnis, wenn sie zu transparentem Schwarz entfernt werden)
Lösung:
- Ändern Sie alle Inhalte, die als undurchsichtig schwarz angezeigt werden, um den Alphawert 0 zu erhalten.
- Stellen Sie sicher, dass die App auf transparent schwarz löscht.
- Unity löscht standardmäßig automatisch mit dem MixedRealityToolkit, aber wenn es sich um eine Nicht-Unity-App handelt, sollten Sie die Farbe ändern, die mit ID3D11DeiceContext::ClearRenderTargetView() verwendet wird. Sie möchten sicherstellen, dass Sie transparent schwarz (0,0,0,0,0) anstelle von undurchsichtigem Schwarz (0,0,0,1) sind.
Sie können nun die Alphawerte Ihrer Ressourcen optimieren, wenn Sie möchten, aber in der Regel nicht müssen. Die meiste Zeit sehen MRCs gut aus. MRC geht davon aus, dass alpha vorab multipliziert ist. Die Alphawerte wirken sich nur auf die MRC-Erfassung aus.
Was zu erwarten ist, wenn MRC in HoloLens aktiviert ist
Folgendes gilt sowohl für HoloLens (erste Generation) als auch für HoloLens 2, sofern nicht anders angegeben:
- Das System drosselt die Anwendung auf 30 Hz-Rendering. Dadurch entsteht etwas Spielraum für die Ausführung von MRC, sodass die App keine konstante Budgetreserve einhalten muss und auch die MRC-Videoaufzeichnungs-Framerate von 30 fps entspricht.
- Hologramminhalte im rechten Auge des Geräts scheinen beim Aufzeichnen/Streamen von MRC zu "funkeln": Text kann schwieriger zu lesen sein, und Hologrammränder können jaggyer erscheinen (wenn Sie sich für das dritte Kamerarendering auf HoloLens 2 vermeidet diese Kompromittierung).
- MRC-Fotos und -Videos respektieren den Fokuspunkt der Anwendung, wenn sie von der Anwendung aktiviert wurde, wodurch sichergestellt wird, dass Hologramme genau positioniert sind. Bei Videos wird der Fokuspunkt geglättet, sodass Hologramme langsam in position driften, wenn sich die Fokuspunkttiefe erheblich ändert. Hologramme, die sich in unterschiedlichen Tiefen vom Fokuspunkt befinden, können von der realen Welt entfernt erscheinen (siehe Beispiel unten, wo der Fokuspunkt auf 2 Meter festgelegt ist, aber das Hologramm bei 1 Meter positioniert ist).
Integrieren von MRC-Funktionen aus Ihrer App
Ihre Mixed Reality-App kann die MRC-Foto- oder Videoaufnahme in der App starten, und der erfasste Inhalt wird für Ihre App verfügbar gemacht, ohne in der "Kamerarolle" des Geräts gespeichert zu werden. Sie können einen benutzerdefinierten MRC-Rekorder erstellen oder die integrierte Kameraaufnahme-Benutzeroberfläche nutzen.
MRC mit integrierter Kamerabenutzeroberfläche
Entwickler können die Kameraaufnahme-UI-API verwenden, um ein vom Benutzer aufgenommenes Mixed Reality-Foto oder Video mit nur wenigen Codezeilen abzurufen.
Diese API startet die integrierte MRC-Kamerabenutzeroberfläche, auf der Benutzer ein Foto oder Video aufnehmen können, und gibt die resultierende Aufnahme an Ihre App zurück. Sie können einen benutzerdefinierten Mixed Reality Capture-Recorder erstellen, wenn Sie eine eigene Kamerabenutzeroberfläche oder einen niedrigeren Zugriff auf Aufzeichnungsdatenströme hinzufügen müssen.
Erstellen eines benutzerdefinierten MRC-Recorders
Während der Benutzer über den MRC-Erfassungsdienst des Systems immer ein Foto oder Video auslösen kann, möchte eine Anwendung möglicherweise eine benutzerdefinierte Kamera-App erstellen, die Hologramme wie MRC im Kamerastream enthält. Dadurch kann die Anwendung Aufzeichnungen von Benutzereingaben starten, eine benutzerdefinierte Aufzeichnungsoberfläche erstellen oder MRC-Einstellungen anpassen, um einige Beispiele zu nennen.
HoloStudio fügt eine benutzerdefinierte MRC-Kamera mit MRC-Effekten hinzu
Unity-Anwendungen sollten Locatable_camera_in_Unity für die Eigenschaft sehen, um Hologramme zu aktivieren.
Andere Anwendungen können dazu die Windows Media Capture-APIs verwenden, um die Kamera zu steuern und einen MRC-Video- und Audioeffekt hinzuzufügen, um virtuelle Hologramme und Anwendungsaudio in Stills und Videos einzuschließen.
Weitere Informationen zum Erstellen eines benutzerdefinierten MRC-Recorders (DirectX)
Gleichzeitige MRC-Einschränkungen
Sie müssen bestimmte Einschränkungen beachten, wenn mehrere Apps gleichzeitig auf MRC zugreifen.
Zugriff auf Foto-/Videokameras
Auf HoloLens 1 kann MRC kein Foto oder Video aufnehmen, während ein Prozess videos oder ein Foto aufnimmt. Umgekehrt gilt auch: Wenn MRC ausgeführt wird, erhält die Anwendung keinen Zugriff auf die Kamera.
Mit HoloLens 2 können Sie den Zugriff auf die Kamera freigeben. Wenn Sie keine direkte Steuerung der Auflösung oder Bildfrequenz benötigen, können Sie MediaCapture mithilfe der SharedMode-Eigenschaft mit SharedReadOnly initialisieren.
Integrierter MRC-Foto-/Videokamerazugriff
Erfahren Sie mehr über den integrierten MRC-Zugriff auf Foto-/Videokameras (DirectX).
MRC-Zugriff für Entwickler
Es wird empfohlen, bei Verwendung von MRC immer die exklusive Steuerung für die Kamera anzufordern. Dadurch wird sichergestellt, dass Ihre Anwendung die vollständige Kontrolle über die Einstellungen für die Kamera hat, solange Sie die oben aufgeführten Einschränkungen kennen.
Erfahren Sie mehr über den MRC-Zugriff für Entwickler (DirectX).