Översikt över hämtning av mixad verklighet

Anteckning

Se Rendera från PV-kameran nedan för vägledning om en ny MRC-funktion för HoloLens 2.

Du kan ta ett MRC-foto ( Mixed Reality Capture ) när som helst, men det finns få saker att tänka på när du utvecklar ditt program. Detta inkluderar metodtips för mrc-visuell kvalitet och att vara lyhörd för systemändringar medan MRC:er samlas in.

Utvecklare kan också sömlöst integrera samlad och infogad mixad verklighet i sina appar.

MRC på HoloLens (första generationen) stöder videor och foton upp till 720p, medan MRC på HoloLens 2 stöder videor upp till 1080p och foton upp till 4K-upplösning.

Vikten av kvalitets-MRC

Oavsett om det är skärmbilder av mixad verklighet på din Microsoft Store-sida eller andra användare som delar inspelningsinnehåll i sociala nätverk är Mixed Reality Capture-media ofta en användares första exponering för din app. Du kan använda MRC för att demonstrera din app, utbilda användare, uppmuntra användare att dela sina interaktioner i mixad värld och för användarforskning och problemlösning.

Hur MRC påverkar din app

Aktivera MRC i din app

Som standard behöver en app inte göra något för att göra det möjligt för användare att ta bilder av mixad verklighet.

Aktivera förbättrad justering för MRC i din app

Som standard kombinerar mixed reality capture det högra ögats holografiska utdata med foto-/videokameran (PV). Dessa två källor kombineras med hjälp av den fokuspunkt som anges av den för närvarande aktiva uppslukande appen.

Det innebär att hologram utanför fokusplanet inte justeras på grund av det fysiska avståndet mellan PV-kameran och den högra skärmen.

Ange fokuspunkt

Uppslukande appar (på HoloLens) bör ange fokuspunkten för var de vill att deras stabiliseringsplan ska vara. Detta säkerställer den bästa justeringen i både headsetet och i mixad verklighet.

Om en fokuspunkt inte har angetts är stabiliseringsplanet som standard 2 meter.

Rendera från PV-kameran (anmäl dig)

HoloLens 2 lägger till möjligheten för en uppslukande app att rendera från PV-kameran medan mixed reality-avbildningen körs. För att säkerställa att appen stöder ytterligare återgivning korrekt måste appen välja den här funktionen.

Återgivning från PV-kameran ger följande förbättringar jämfört med standard-MRC-upplevelsen:

  • Hologramjustering till din fysiska miljö och händer för nära interaktioner bör vara korrekt på alla avstånd. Undvik att ha en förskjutning på andra avstånd än fokuspunkten som du kan se i standard-MRC.
  • Det högra ögat i headsetet kommer inte att komprometteras, eftersom det inte används för att återge hologram för MRC-utdata.

Läs mer om rendering från PV-kameran (DirectX).

Metodtips (HoloLens specifika)

MRC förväntas fungera utan ytterligare utvecklingsarbete, men det finns några saker att vara medveten om när du ger den bästa mixade verklighetsfångstupplevelsen.

MRC använder hologrammets alfakanal för att blanda med kamerabilderna

Det viktigaste steget är att se till att appen rensas till transparent svart i stället för att rensa till ogenomskinlig svart. I Unity görs detta som standard med MixedRealityToolkit. Om du utvecklar i icke-Unity kan du behöva göra en ändring på en rad.

Här är några av de artefakter som du kan se i MRC om appen inte rensas till transparent svart:

Exempelfel: Svarta kanter runt innehållet (det går inte att rensa till transparent svart)

Failure to clear to transparent black: black edge artifacts around holograms Failing to clear to transparent black: black edge artifacts around holograms

Exempelfel: Hela bakgrundsscenen i hologrammet visas som svart. Om du anger ett alfavärde i bakgrunden för ett resultat i en svart bakgrund

Setting a background alpha value of 1 results in a black background

Förväntat resultat: Hologram visas korrekt blandat med det verkliga (förväntat resultat om det rensas till transparent svart)

Expected result if clearing to transparent black

Lösning:

  • Ändra innehåll som visas som ogenomskinlig svart för att ha alfavärdet 0.
  • Kontrollera att appen rensas till transparent svart.
  • Unity rensar som standard automatiskt med MixedRealityToolkit, men om det är en icke-Unity-app bör du ändra den färg som används med ID3D11DeiceContext::ClearRenderTargetView(). Du vill se till att du rensar till transparent svart (0,0,0,0) i stället för ogenomskinlig svart (0,0,0,1).

Du kan nu justera alfavärdena för dina tillgångar om du vill, men behöver vanligtvis inte göra det. För det mesta kommer MRCs att se bra ut ur lådan. MRC förutsätter för multiplicerad alfa. Alfavärdena påverkar bara MRC-avbildningen.

Vad du kan förvänta dig när MRC är aktiverat på HoloLens

Följande gäller för både HoloLens (första generationen) och HoloLens 2, om inget annat anges:

  • Systemet begränsar programmet till 30-Hz-återgivning. Detta skapar ett visst utrymme för MRC att köra så att appen inte behöver behålla en konstant budgetreserv och matchar även MRC-videopostramhastigheten på 30 fps
  • Holograminnehåll i enhetens högra öga kan verka "gnistrande" när du spelar in/strömmar MRC: text kan bli svårare att läsa och hologramkanter kan verka mer ojämna (om du väljer tredje kameraåtergivning på HoloLens 2 undviker du denna kompromiss)
  • MRC-foton och videor kommer att respektera programmets fokuspunkt om programmet har aktiverat det, vilket hjälper till att säkerställa att hologram är korrekt placerade. För videor jämnas fokuspunkten ut så att hologram långsamt verkar glida på plats om fokuspunktens djup ändras avsevärt. Hologram som är på olika djup från fokuspunkten kan visas som förskjutning från den verkliga världen (se exemplet nedan där Fokuspunkt är inställd på 2 meter men hologrammet är placerat på 1 meter).

Holograms at 2 meters will appear perfectly registered to the world. Holograms at close or far distances may be slightly offset.

Integrera MRC-funktioner inifrån din app

Din mixed reality-app kan starta MRC-foto eller videoinspelning inifrån appen, och innehållet som samlas in görs tillgängligt för din app utan att lagras i enhetens "Kamerarulle". Du kan skapa en anpassad MRC-inspelare eller dra nytta av det inbyggda kamerainspelningsgränssnittet.

MRC med inbyggt kameragränssnitt

Utvecklare kan använda API:et camera capture UI för att få ett användarinspelat foto eller video med bara några rader kod.

Det här API:et startar det inbyggda MRC-kameragränssnittet där användarna kan ta ett foto eller en video och returnera den resulterande avbildningen till din app. Du kan skapa en anpassad Mixed Reality Capture-inspelare om du behöver lägga till ditt eget kameragränssnitt eller åtkomst på lägre nivå för att samla in strömmar.

Skapa en anpassad MRC-inspelare

Användaren kan alltid utlösa ett foto eller en video med hjälp av systemets MRC-inspelningstjänst, men ett program kanske vill skapa en anpassad kameraapp som innehåller hologram i kameraströmmen precis som MRC. Detta gör att programmet kan starta avbildningar från användarindata, skapa anpassat inspelningsgränssnitt eller anpassa MRC-inställningar för att nämna några exempel.

HoloStudio lägger till en anpassad MRC-kamera med MRC-effekter

HoloStudio adds a custom MRC camera using MRC effects

Unity-program bör se Locatable_camera_in_Unity för egenskapen för att aktivera hologram.

Andra program kan göra detta med hjälp av Windows Media Capture-API:er för att styra kameran och lägga till en MRC-video- och ljudeffekt för att inkludera virtuella hologram och programljud i stillbilder och videor.

Läs mer om att skapa en anpassad MRC-inspelare (DirectX).

Begränsningar för samtidig MRC

Du måste vara medveten om vissa begränsningar när flera appar använder MRC samtidigt.

Åtkomst till foto-/videokamera

På HoloLens 1 misslyckas MRC med att ta ett foto eller spela in video medan en process spelar in video eller tar ett foto. Det omvända är också sant: om MRC körs kommer programmet inte att få åtkomst till kameran.

Med HoloLens 2 är det möjligt för dig att dela åtkomst till kameran. Om du inte behöver direkt kontroll över upplösningen eller bildfrekvensen kan du initiera MediaCapture med egenskapen SharedMode med SharedReadOnly.

Inbyggd MRC-foto-/videokameraåtkomst

Lär dig mer om inbyggd MRC-åtkomst till foto-/videokamera (DirectX).

MRC-åtkomst för utvecklare

Vi rekommenderar att du alltid begär exklusiv kontroll för kameran när du använder MRC. Detta säkerställer att ditt program har fullständig kontroll över inställningarna för kameran så länge du är medveten om begränsningarna som anges ovan.

Läs mer om MRC-åtkomst för utvecklare (DirectX).

Se även