Översikt över sammanställning 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-visualiseringskvalitet och att vara lyhörd för systemändringar medan MRC registreras.

Utvecklare kan också sömlöst integrera mixad verklighetsinsamling och infogning 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 avbildningsinnehåll på 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 mellan olika världar samt 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 kameran för foto/video (PV). De här två källorna 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 rätt skärm.

Ange fokuspunkt

Integrerande 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 integrerande app att rendera från PV-kameran medan mixed reality-inspelning körs. För att säkerställa att appen stöder ytterligare återgivning korrekt måste appen välja att använda den här funktionen.

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

  • Hologramjusteringen mot 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 vid 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 kommer att användas för att återge hologram för MRC-utdata.

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

Metodtips (HoloLens-specifik)

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 mixed reality-upplevelsen.

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 följer några av de artefakter som du kan se i MRC om din app inte rensas till transparent svart:

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

Det gick inte att rensa till transparent svart: svarta kantartefakter runt hologram Det går inte att rensa till transparent svart: svarta kantartefakter runt hologram

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

Om du anger ett alfavärde för bakgrunden på 1 resulterar det i en svart bakgrund

Förväntat resultat: Hologram visas korrekt blandade med verkligheten (förväntat resultat om rensningen blir transparent svart)

Förväntat resultat om rensningen blir transparent svart

Lösning:

  • Ändra innehåll som visas som ogenomskinlig svart så att det har alfavärdet 0.
  • Se till att appen rensas till transparent svart.
  • Unity rensas som standard automatiskt med MixedRealityToolkit, men om det är en icke-Unity-app bör du ändra färgen 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).

Nu kan du justera alfavärdena för dina tillgångar om du vill, men vanligtvis behöver du inte 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 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 "gnisslande" 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återgivningen på HoloLens 2 undviker detta kompromisser)
  • MRC-foton och -videor respekterar 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 kan se ut att långsamt 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).

Hologram på 2 meter visas perfekt registrerade för världen. Hologram på nära eller fjärranslutna avstånd kan vara något förskjutna.

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 användargränssnittet för kamerainspelning.

MRC med inbyggt kameragränssnitt

Utvecklare kan använda UI-API:et camera capture för att få ett användarinspelat mixed reality-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 ett 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. På så sätt kan programmet starta avbildningar från användarindata, skapa anpassade 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 lägger till en anpassad MRC-kamera med MRC-effekter

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

Andra program kan göra detta genom att använda Windows Media Capture-API:er för att styra kameran och lägga till en MRC-video- och ljudeffekt som inkluderar virtuella hologram och programljud i stillbilder och videor.

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

Samtidiga MRC-begränsningar

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 misslyckas programmet med 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-åtkomst för foton/videokameror

Lär dig mer om inbyggd MRC-åtkomst till foton/videokameror (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