Vegyes valóság rögzítése fejlesztőknek (DirectX)

Megjegyzés

A HoloLens 2 új MRC-képességével kapcsolatos útmutatásért lásd az alábbi Renderelés a MÉ kameráról című témakört.

Az első lépések előtt javasoljuk, hogy tekintse meg a vegyes valóság rögzítéséről szóló áttekintő cikket.

Renderelés a PV kameráról (opt-in)

HoloLens 2 lehetővé teszi, hogy egy modern alkalmazás rendereljen a PV-kameráról, miközben a vegyes valóság rögzítése fut. Annak érdekében, hogy az alkalmazás megfelelően támogatja a további renderelést, az alkalmazásnak be kell jelentkeznie erre a funkcióra.

A PV kamera renderelése az alábbi fejlesztéseket kínálja az alapértelmezett MRC-felülethez képest:

  • A fizikai környezethez és a kézhez való hologram-igazításnak minden távolságban pontosnak kell lennie. Ne legyen eltolás a fókuszponttól eltérő távolságban, ahogy az az alapértelmezett MRC-ben is látható.
  • A headset jobb szeme nem sérül, mivel nem fogja használni az MRC-kimenet hologramjának renderelésére.

A PV-kameráról történő renderelés engedélyezésének három lépése van:

  1. A PhotoVideoCamera HolographicViewConfiguration engedélyezése
  2. A további HolographicCamera-render kezelése
  3. Ellenőrizze, hogy az árnyékolók és a kód megfelelően jelenik-e meg ebből a további HolographicCamera-ból
A PhotoVideoCamera HolographicViewConfiguration engedélyezése a DirectX-ben

A PV-kameráról való megjelenítésre való feliratkozáshoz egy alkalmazás egyszerűen engedélyezi a PhotoVideoCamera HolographicViewConfiguration elemét:

var display = Windows.Graphics.Holographic.HolographicDisplay.GetDefault();
var view = display.TryGetViewConfiguration(Windows.Graphics.Holographic.HolographicViewConfigurationKind.PhotoVideoCamera);
if (view != null)
{
    view.IsEnabled = true;
}
A további HolographicCamera renderelés kezelése a DirectX-ben

Amikor az alkalmazás engedélyezi a renderelést a PV-kameráról, és elindul a vegyes valóság rögzítése:

  1. A HolographicSpace CameraAdded eseménye aktiválódik. Ez az esemény késleltethető, ha az alkalmazás jelenleg nem tudja kezelni a kamerát.
  2. Ha az esemény befejeződött, és nem történt meg a halasztás, a HolographicCamera megjelenik a következő HolographicFrame AddedCameras listájában.

Amikor a vegyes valóság rögzítése leáll (vagy ha az alkalmazás letiltja a nézetkonfigurációt, miközben a vegyes valóság rögzítése fut): a HolographicCamera megjelenik a következő HolographicFrame RemovedCameras listájában, és a HolographicSpace CameraRemoved eseménye aktiválódik.

A Rendszer hozzáadta a ViewConfiguration tulajdonságot a HolographicCamera elemhez, amely segít azonosítani a kamera konfigurációját.

Az árnyékolók és a kód támogatásának ellenőrzése további kamerákkal

Futtasson vegyes valósági rögzítést, és ellenőrizze, hogy vannak-e szokatlan igazítási, hiányzó tartalom- vagy teljesítményproblémák. Szükség szerint frissítse az árnyékolókat és a kódot.

Ha vannak olyan jelenetek, amelyek nem támogatják a további kamera renderelését, letilthatja a PhotoVideoCamera HolographicViewConfiguration elemét.

Az MRC letiltása az alkalmazásban

2D alkalmazás

A 2D-s alkalmazások dönthetnek úgy, hogy a vegyes valóság rögzítésekor elfedik a vizualizációs tartalmaikat:

Modern alkalmazás

A modern alkalmazások dönthetnek úgy, hogy a vizuális tartalmaikat kizárják a vegyes valóságból:

  • A HolographicCameraRenderingParameter IsContentProtectionEnabled tulajdonságának beállítása a társított keret vegyes valósági rögzítésének letiltásához
  • A HolographicCamera IsHardwareContentProtectionEnabled beállítása a vegyes valóság rögzítésének letiltásához a társított holografikus kamerához

Jelszóbillentyűzet

A Windows 10 2019. májusi frissítéssel a vizuális tartalmak automatikusan ki lesznek zárva a vegyes valóságból, ha egy jelszó vagy egy pin-billentyűzet látható.

Annak ismerete, hogy mikor aktív az MRC

Az AppCapture osztály segítségével az alkalmazások tudják, mikor fut a rendszer vegyes valóságának rögzítése (hang- vagy videofunkciók esetén).

Megjegyzés

Az AppCapture GetForCurrentView API null értéket adhat vissza, ha a vegyes valóság rögzítése nem érhető el az eszközön. Az alkalmazás felfüggesztése esetén is fontos a CaptureChanged esemény regisztrációjának törlése, különben az MRC blokkolt állapotba léphet.

MRC-funkciók integrálása az alkalmazásból

A vegyes valóság alkalmazás az alkalmazáson belülről indíthat MRC-fénykép- vagy videorögzítést, a rögzített tartalmak pedig az eszköz "Filmtekercs" tárolása nélkül érhetők el az alkalmazás számára. Létrehozhat egyéni MRC-rögzítőt, vagy kihasználhatja a beépített kamerarögzítési felhasználói felület előnyeit.

MRC beépített kamera felhasználói felülettel

A fejlesztők a Camera Capture UI API-val mindössze néhány sornyi kóddal készíthetnek el egy felhasználó által rögzített vegyes valósági fényképet vagy videót.

Ez az API elindítja a beépített MRC kamera felhasználói felületet, ahol a felhasználók fényképet vagy videót készíthetnek, és visszaadhatják az eredményül kapott felvételt az alkalmazásnak. Létrehozhat egyéni Mixed Reality Capture felvevőt, ha saját kamera felhasználói felületét vagy alacsonyabb szintű hozzáférést kell adnia a streamek rögzítéséhez.

MRC képernyőfelvétellel

A 2021. májusi HoloLens 2 frissítéssel (Windows Holographic, 21H1 build: 20346.1002) a fejlesztők a Screen capture API használatával kérhetik a vegyes valóság videókereteinek streamelését.

Egyéni MRC-rögzítő létrehozása

Bár a felhasználó mindig aktiválhat fényképet vagy videót a rendszer MRC rögzítési szolgáltatásával, előfordulhat, hogy egy alkalmazás olyan egyéni kameraalkalmazást szeretne létrehozni, amely hologramokat tartalmaz a kamerastreamben, akárcsak az MRC. Ez lehetővé teszi, hogy az alkalmazás elindítsa a felhasználói bevitelből származó rögzítéseket, egyéni rögzítési felhasználói felületet hozzon létre, vagy testre szabja az MRC-beállításokat, hogy néhány példát említsen.

A HoloStudio egyéni MRC-kamerát ad hozzá MRC-effektusokkal

A HoloStudio egyéni MRC-kamerát ad hozzá MRC-effektusokkal

Ezt más alkalmazások is megtehetik a Windows Media Capture API-k használatával a Kamera vezérléséhez, valamint egy MRC video- és hangeffektus hozzáadásához, amely virtuális hologramokat és alkalmazáshangokat tartalmaz az állóképekben és videókban.

Az alkalmazásoknak két lehetősége van a hatás hozzáadására:

Megjegyzés

A Visual Studio nem ismeri fel a Windows.Media.MixedRealityCapture névteret, de a sztringek továbbra is érvényesek.

MRC videoeffektus (Windows.Media.MixedRealityCapture.MixedRealityCaptureVideoEffect)

Tulajdonság neve Típus Alapértelmezett érték Description
StreamType UINT32 (MediaStreamType) 1 (VideoRecord) Írja le, hogy ez az effektus melyik rögzítési adatfolyamhoz használható. A hang nem érhető el.
HologramCompositionEnabled boolean IGAZ Jelölő a hologramok videorögzítésben való engedélyezéséhez vagy letiltásához.
RecordingIndicatorEnabled boolean IGAZ Jelző a rögzítésjelző engedélyezéséhez vagy letiltásához a képernyőn a hologram rögzítése során.
VideoStabilizationEnabled boolean HAMIS A HoloLens tracker által működtetett videostabilizálás engedélyezéséhez vagy letiltásához használható jelző.
VideoStabilizationBufferLength UINT32 0 Adja meg, hogy hány előzménykeretet használ a rendszer a videóstabilizáláshoz. A 0 0 késésű, és szinte "mentes" a teljesítmény és a teljesítmény szempontjából. A 15-ös érték ajánlott a legjobb minőséghez (15 képkocka késés és memória árán).
GlobalOpacityCoefficient float 0.9 (HoloLens) 1.0 (Modern headset) Állítsa be a hologram globális átlátszatlansági együtthatóját 0,0 (teljesen átlátszó) és 1,0 (teljesen átlátszatlan) tartományban.
BlankOnProtectedContent boolean HAMIS Megjelölés üres keret visszaadásának engedélyezéséhez vagy letiltásához, ha egy 2d UWP-alkalmazás védett tartalmat jelenít meg. Ha ez a jelző hamis, és egy 2d UWP-alkalmazás védett tartalmat jelenít meg, a 2d UWP-alkalmazást a headsetben és a vegyes valóságban is védett tartalom-textúra váltja fel.
ShowHiddenMesh boolean HAMIS Jelző a holografikus kamera rejtett területhálójának és a szomszédos tartalmak megjelenítésének engedélyezéséhez vagy letiltásához.
Kimenetméret Méret 0, 0 Állítsa be a kívánt kimeneti méretet a videóstabilizálás körülvágása után. Ha 0 vagy érvénytelen kimeneti méret van megadva, a rendszer alapértelmezett körülvágási méretet választ.
OutputSubtype Sztring Nv12 Állítsa be a kívánt kimeneti altípust hologram-összeállítás és/vagy videóstabilizálás után. Támogatja az Nv12 és az Argb32MediaEncodingSubtypes típusokat.
PreferredHologramPerspective UINT32 Renderelés kamerából beállítás a Windows-eszközportálon A holografikus kameranézet konfigurációjának rögzítésére szolgáló szám: 0 (Megjelenítés) azt jelenti, hogy az alkalmazásnak nem kell renderelést kérnie a fénykép-/videokameráról, 1 (PhotoVideoCamera) megkéri az alkalmazást, hogy renderelje a fénykép-/videokameráról (ha az alkalmazás támogatja). Csak a HoloLens 2 támogatott

Megjegyzés

A PreferredHologramPerspective alapértelmezett értékét a Windows eszközportálon módosíthatja, ha a Mixed Reality Rögzítés lapra lép, és törli a Renderelés a kamerából jelölőnégyzet jelölését. A beállítás alapértelmezés szerint 1 (PhotoVideoCamera), de bejelölése nélkül 0 -ra (Megjelenítés) állítható be.

A PreferredHologramPerspective alapértelmezett értéke 0 (megjelenítés) volt a 2020. júniusi frissítés előtt (Windows Holographic, 2004-es build 19041.1106 és Windows Holographic, 1903-18362.1064-es build).

Az OutputSubtype támogatása a 2021. májusi frissítéssel (Windows Holographic, 21H1 build 20346.1002) lett hozzáadva.

MRC audioeffektus (Windows.Media.MixedRealityCapture.MixedRealityCaptureAudioEffect)

Tulajdonság neve Típus Alapértelmezett érték Description
MixerMode UINT32 2 (Mikrofon és rendszerhang) Szám, amely jelzi, hogy mely hangforrásokat kell használni: 0 (csak mikrofonos hang), 1 (csak rendszerhang), 2 (Mikrofon és rendszerhang)
VisszacsatolásGain float App Audio Gain beállítás a Windows-eszközportálon A rendszer hangkötetére való alkalmazás elsajátításához. Tartomány: 0,0 és 5,0 között. Csak a HoloLens 2 támogatott
MikrofonGain float Mikrofonos hangelérési beállítás a Windows-eszközportálon A mikrofonkötetre való alkalmazás elsajátításához. Tartomány: 0,0 és 5,0 között. Csak a HoloLens 2 támogatott

Megjegyzés

A Windows eszközportálon módosíthatja a LoopbackGain vagy a MicrophoneGain alapértelmezett értékét a Mixed Reality Rögzítés lapon, és módosíthatja a megfelelő beállítások melletti csúszkát. Mindkét beállítás alapértelmezett értéke 1.0, de bármilyen értékre beállítható 0,0 és 5,0 között.

A 2020. júniusi frissítés (Windows Holographic, 2004-es build 19041.1106-os és Windows Holographic, 1903-ban készült 18362.1064-es build) segítségével lett hozzáadva az alapértelmezett nyereségértékek konfigurálásához.

Egyidejű MRC-korlátozások

Tisztában kell lennie bizonyos korlátozásokkal, ha egyszerre több alkalmazás is hozzáfér az MRC-hez.

Fénykép-/videokamera-hozzáférés

A HoloLens 1-ben az MRC nem fog rögzíteni egy fényképet vagy videót, miközben egy folyamat videót rögzít vagy fényképet készít. A fordított érték is igaz: ha az MRC fut, az alkalmazás nem fog hozzáférni a kamerához.

A HoloLens 2 lehetővé teszi a kamera hozzáférésének megosztását. Ha nincs szüksége a felbontás vagy a képkockasebesség közvetlen vezérlésére, inicializálhatja a MediaCapture-t a SharedMode tulajdonsággal a SharedReadOnly használatával.

Beépített MRC fénykép- és videokamera-hozzáférés

A Windows 10 beépített MRC-funkciók (Cortana, Start menü, hardveres parancsikonok, Miracast, Windows-eszközportál):

  • Alapértelmezés szerint az ExclusiveControl használatával fog futni

Az MRC-alrendszer azonban támogatást kapott a megosztott módban való működéshez:

  • Ha egy alkalmazás kizárólagos hozzáférést kér a fénykép-/videokamerához, a beépített MRC automatikusan leáll a fénykép-/videokamerával, így az alkalmazás kérése sikeres lesz
  • Ha a beépített MRC akkor indul el, amikor egy alkalmazás kizárólagos vezérlőt futtat, a beépített MRC SharedReadOnly módban fog futni

Ez a megosztott mód bizonyos korlátozásokkal rendelkezik:

  • Fénykép Cortanán, hardveres billentyűparancsokon vagy Start menün keresztül: A 2018. áprilisi frissítés (vagy újabb) Windows 10 szükséges
  • Videó Cortanán, hardveres billentyűparancsokon vagy Start menün keresztül: A Windows 10 2018. áprilisi frissítés (vagy újabb) szükséges
  • Streamelési MRC a Miracasten keresztül: A 2018. októberi frissítés (vagy újabb) Windows 10 szükséges
  • MrC streamelése Windows-eszközportálon vagy a HoloLens társalkalmazáson keresztül: HoloLens 2

Megjegyzés

A beépített MRC kamera felhasználói felületének felbontása és képkockasebessége csökkenthető a normál értékekkel, ha egy másik alkalmazás a fénykép-/videokamerát használja.

MRC-hozzáférés fejlesztőknek

Azt javasoljuk, hogy mrC használata esetén mindig kizárólagos vezérlést kérjen a kamerához. Ez biztosítja, hogy az alkalmazás teljes mértékben szabályozni tudja a kamera beállításait, amennyiben tisztában van a fent felsorolt korlátozásokkal.

Figyelemfelhívás

A folytatás előtt mindenképpen olvassa el figyelmesen a SharingMode megjegyzéseit .

  • A kamera beállítása a kívánt módon
  • Indítsa el az alkalmazást, rögzítse a videókereteket a start API-val, majd engedélyezze az MRC-t

Figyelemfelhívás

Ha az alkalmazás elindítása előtt elindítja az MRC-t, nem tudjuk garantálni, hogy a funkció a várt módon fog működni.

A fenti folyamat teljes mintáját a holografikus arckövetési mintában találja.

Megjegyzés

A 2018. áprilisi frissítés Windows 10 előtt az alkalmazás egyéni MRC-rögzítője kölcsönösen kizárva lett a rendszer MRC-jével (fényképek rögzítése, videók rögzítése vagy streamelés a Windows-eszközportálról).

Lásd még