Omówienie przechwytywania rzeczywistości mieszanej

Uwaga

Zobacz Renderowanie z kamery PV poniżej, aby uzyskać wskazówki dotyczące nowej funkcji MRC dla HoloLens 2.

W dowolnym momencie możesz wykonać zdjęcie lub wideo z przechwytywaniem rzeczywistości mieszanej ( MRC), ale podczas tworzenia aplikacji należy pamiętać o kilku kwestiach. Obejmuje to najlepsze rozwiązania dotyczące jakości wizualizacji MRC i reagowanie na zmiany systemu podczas przechwytywania mrC.

Deweloperzy mogą również bezproblemowo integrować przechwytywanie i wstawianie rzeczywistości mieszanej do swoich aplikacji.

MrC on HoloLens (first-generation) obsługuje filmy wideo i zdjęcia do 720p, podczas gdy mrC na HoloLens 2 obsługuje filmy wideo do 1080p i zdjęć do rozdzielczości 4K.

Znaczenie jakości MRC

Niezależnie od tego, czy jest to zrzuty ekranu rzeczywistości mieszanej na stronie sklepu Microsoft Store, czy inni użytkownicy udostępniają zawartość w sieciach społecznościowych, Mixed Reality Przechwytywanie multimediów jest często pierwszym narażeniem użytkowników na twoją aplikację. Możesz użyć narzędzia MRC, aby pokazować swoją aplikację, edukować użytkowników, zachęcać użytkowników do udostępniania ich mieszanych interakcji ze światem oraz do badań użytkowników i rozwiązywania problemów.

Wpływ usługi MRC na aplikację

Włączanie usługi MRC w aplikacji

Domyślnie aplikacja nie musi wykonywać żadnych czynności, aby umożliwić użytkownikom przechwytywanie rzeczywistości mieszanej.

Włączanie ulepszonego wyrównania dla funkcji MRC w aplikacji

Domyślnie funkcja przechwytywania rzeczywistości mieszanej łączy w sobie dane wyjściowe holograficzne z kamerą foto/wideo (PV). Te dwa źródła są łączone przy użyciu punktu koncentracji uwagi ustawionego przez aktualnie uruchomioną aplikację immersywną.

Oznacza to, że hologramy poza płaszczyzną koncentracji uwagi nie będą wyrównane ze względu na odległość fizyczną między kamerą PV a odpowiednim wyświetlaczem.

Ustawianie punktu koncentracji uwagi

Aplikacje immersyjne (na urządzeniu HoloLens) powinny ustawić punkt koncentracji uwagi , w którym mają być ich płaszczyzna stabilizacji. Zapewnia to najlepsze wyrównanie zarówno w zestawie słuchawkowym, jak i w przechwytywaniu rzeczywistości mieszanej.

Jeśli punkt koncentracji uwagi nie jest ustawiony, płaszczyzna stabilizacji będzie domyślnie 2 metrów.

Renderowanie z kamery PV (zgoda)

HoloLens 2 dodaje możliwość renderowania aplikacji immersyjnej z kamery PV podczas uruchamiania przechwytywania rzeczywistości mieszanej. Aby zapewnić prawidłowe renderowanie aplikacji, aplikacja musi wyrazić zgodę na korzystanie z tej funkcji.

Renderowanie z kamery PV oferuje następujące ulepszenia domyślnego środowiska MRC:

  • Wyrównanie hologramu do środowiska fizycznego i rąk do niemal interakcji powinno być dokładne na wszystkich odległościach. Unikaj przesunięcia w odległościach innych niż punkt koncentracji uwagi, jak można zobaczyć w domyślnym mrC.
  • Prawe oko w zestawie słuchawkowym nie zostanie naruszone, ponieważ nie będzie używane do renderowania hologramów dla danych wyjściowych MRC.

Dowiedz się więcej o renderowaniu z kamery PV (DirectX).

Najlepsze rozwiązania (specyficzne dla urządzenia HoloLens)

Oczekuje się, że mrC będzie działać bez dodatkowych wysiłków programistycznych, ale istnieje kilka rzeczy, które należy wziąć pod uwagę podczas zapewniania najlepszego środowiska przechwytywania rzeczywistości mieszanej.

MrC używa kanału alfa hologramu do mieszania z obrazami kamery

Najważniejszym krokiem jest upewnienie się, że aplikacja jest czyszcząca na przezroczystą czarną, zamiast czyszcząc nieprzezroczystą czarną. W środowisku Unity jest to domyślnie wykonywane za pomocą zestawu MixedRealityToolkit. Jeśli programujesz w środowisku innych niż Unity, może być konieczne wprowadzenie jednej zmiany w wierszu.

Poniżej przedstawiono niektóre artefakty, które mogą być widoczne w narzędziu MRC, jeśli twoja aplikacja nie czyści przezroczystego czerni:

Przykładowe błędy: czarne krawędzie wokół zawartości (nie można wyczyścić przezroczystego czarnego)

Nie można wyczyścić przezroczystego czarnego: czarne artefakty krawędzi wokół hologramów Nie można wyczyścić przezroczystego czarnego: czarne artefakty krawędzi wokół hologramów

Przykładowe błędy: cała scena tła hologramu jest wyświetlana na czarno. Ustawianie wartości alfa tła jednej z wyników w czarnym tle

Ustawianie wartości alfa tła 1 powoduje czarne tło

Oczekiwany wynik: Hologramy pojawiają się prawidłowo w połączeniu z rzeczywistym światem (oczekiwany wynik w przypadku czyszczenia do przezroczystego czarnego)

Oczekiwany wynik w przypadku wyczyszczenia do przezroczystego czarnego

Rozwiązanie 2.

  • Zmień dowolną zawartość wyświetlaną jako nieprzezroczystą czarną, aby mieć wartość alfa 0.
  • Upewnij się, że aplikacja jest czyszcząca w sposób przezroczysty czarny.
  • Aparat Unity jest domyślnie czyszczona automatycznie za pomocą zestawu MixedRealityToolkit, ale jeśli jest to aplikacja innej niż Unity, należy zmodyfikować kolor używany z identyfikatorem ID3D11DeiceContext::ClearRenderTargetView(). Chcesz mieć pewność, że przezroczyste czarne (0,0,0,0) zamiast nieprzezroczystego czarnego (0,0,0,1).

Teraz możesz dostroić wartości alfa zasobów, jeśli chcesz, ale zazwyczaj nie musisz. W większości przypadków mrC będą wyglądać dobrze z pudełka. MrC zakłada, że wstępnie pomnożone alfa. Wartości alfa będą wpływać tylko na przechwytywanie mrC.

Czego można oczekiwać po włączeniu funkcji MRC na urządzeniu HoloLens

Następujące kwestie dotyczą urządzeń HoloLens (pierwszej generacji) i HoloLens 2, chyba że określono inaczej:

  • System ograniczy aplikację do renderowania 30-Hz. Spowoduje to utworzenie pewnego miejsca do uruchomienia przez MRC, aby aplikacja nie musiała zachować stałej rezerwy budżetowej, a także dopasować szybkość klatek wideo MRC z szybkością 30 klatek na sekundę
  • Zawartość hologramu w prawym oku urządzenia może wydawać się "musujące" podczas nagrywania/przesyłania strumieniowego MRC: tekst może stać się trudniejszy do odczytania, a krawędzie hologramu mogą wydawać się bardziej jaggy (rezygnacja z trzeciego renderowania aparatu na HoloLens 2 uniknąć tego kompromisu)
  • Zdjęcia i filmy MRC będą uwzględniać punkt koncentracji uwagi aplikacji, jeśli aplikacja ją włączyła, co pomoże zapewnić dokładne położenie hologramów. W przypadku filmów wideo punkt koncentracji uwagi jest wygładzony, więc hologramy mogą wydawać się powoli dryfować, jeśli głębokość punktu koncentracji uwagi znacznie się zmieni. Hologramy, które znajdują się w różnych głębokościach od punktu koncentracji uwagi, mogą pojawić się przesunięcie ze świata rzeczywistego (zobacz przykład poniżej, w którym punkt koncentracji uwagi jest ustawiony na 2 metrach, ale hologram jest umieszczony na 1 mierniku).

Hologramy na 2 metrach będą wyglądać doskonale zarejestrowane na świecie. Hologramy w bliskich lub odległych odległościach mogą być nieznacznie przesunięte.

Integrowanie funkcji MRC z poziomu aplikacji

Aplikacja rzeczywistości mieszanej może uruchomić zdjęcie MRC lub przechwytywanie wideo z poziomu aplikacji, a przechwycona zawartość jest udostępniana aplikacji bez przechowywania w urządzeniu "Roll aparatu". Możesz utworzyć niestandardowy rejestrator MRC lub skorzystać z wbudowanego interfejsu użytkownika przechwytywania kamer.

MrC z wbudowanym interfejsem użytkownika aparatu

Deweloperzy mogą używać interfejsu API interfejsu użytkownika przechwytywania aparatu , aby uzyskać przechwycone przez użytkownika zdjęcie rzeczywistości mieszanej lub wideo z zaledwie kilkoma wierszami kodu.

Ten interfejs API uruchamia wbudowany interfejs użytkownika aparatu MRC, w którym użytkownicy mogą robić zdjęcie lub wideo i zwraca wynikową przechwytywanie aplikacji. Możesz utworzyć niestandardowy rejestrator Mixed Reality Capture, jeśli musisz dodać własny interfejs użytkownika aparatu lub dostęp niższego poziomu do przechwytywania strumieni.

Tworzenie niestandardowego rejestratora MRC

Chociaż użytkownik zawsze może wyzwolić zdjęcie lub wideo przy użyciu systemowej usługi przechwytywania MRC, aplikacja może chcieć utworzyć niestandardową aplikację aparatu, która zawiera hologramy w strumieniu aparatu tak samo jak MRC. Dzięki temu aplikacja może rozpocząć przechwytywanie danych wejściowych użytkownika, utworzyć niestandardowy interfejs użytkownika rejestrowania lub dostosować ustawienia mrC, aby wymienić kilka przykładów.

HoloStudio dodaje niestandardową kamerę MRC przy użyciu efektów MRC

HoloStudio dodaje niestandardową kamerę MRC przy użyciu efektów MRC

Aplikacje aparatu Unity powinny widzieć Locatable_camera_in_Unity dla właściwości w celu włączenia hologramów.

Inne aplikacje mogą to zrobić za pomocą interfejsów API przechwytywania w usłudze Windows Media w celu kontrolowania aparatu i dodawania efektu MRC Video and Audio w celu uwzględnienia wirtualnych hologramów i dźwięku aplikacji w filmach i filmach wideo.

Dowiedz się więcej na temat tworzenia niestandardowego rejestratora MRC (DirectX).

Jednoczesne ograniczenia usługi MRC

Należy pamiętać o pewnych ograniczeniach, gdy wiele aplikacji uzyskuje dostęp do usługi MRC w tym samym czasie.

Dostęp do aparatu fotograficznego/wideo

Na urządzeniu HoloLens 1 mrC nie będzie przechwytywanego zdjęcia lub przechwytywania wideo podczas nagrywania wideo lub robienia zdjęcia. Odwrotna wartość jest również prawdziwa: jeśli funkcja MRC jest uruchomiona, aplikacja nie będzie mogła uzyskać dostępu do aparatu.

Dzięki HoloLens 2 można udostępnić dostęp do aparatu. Jeśli nie potrzebujesz bezpośredniej kontroli nad rozdzielczością lub szybkością klatek, możesz zainicjować metodę MediaCapture przy użyciu właściwości SharedMode z funkcją SharedReadOnly.

Wbudowany dostęp do kamery wideo/zdjęcia MRC

Dowiedz się więcej o wbudowanym dostępie do kamery wideo/zdjęć MRC (DirectX).

Dostęp MRC dla deweloperów

Zalecamy, aby w przypadku korzystania z narzędzia MRC zawsze zażądać wyłącznej kontroli aparatu. Zapewni to aplikacji pełną kontrolę nad ustawieniami aparatu, o ile masz świadomość ograniczeń wymienionych powyżej.

Dowiedz się więcej o dostępie mrC dla deweloperów (DirectX).

Zobacz też