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:
- A PhotoVideoCamera HolographicViewConfiguration engedélyezése
- A további HolographicCamera-render kezelése
- 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:
- 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.
- 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:
- Bemutató a DXGI_PRESENT_RESTRICT_TO_OUTPUT jelzővel
- Az alkalmazás felcserélési láncának létrehozása a DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED jelzővel
- A 2019. májusi Windows 10 frissítéssel állítsa be az ApplicationView IsScreenCaptureEnabled elemét
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
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:
- A régebbi API: Windows.Media.Capture.MediaCapture.AddEffectAsync()
- Az új Microsoft által ajánlott API (egy objektumot ad vissza, amely lehetővé teszi a dinamikus tulajdonságok manipulálását): Windows.Media.Capture.MediaCapture.AddVideoEffectAsync() / Windows.Media.Capture.MediaCapture.AddAudioEffectAsync(), amely megköveteli, hogy az alkalmazás létrehozza az IVideoEffectDefinition és az IAudioEffectDefinition saját implementációját. Példákért tekintse meg az MRC mintaalkalmazást .
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.
- Médiarögzítési objektum létrehozása az inicializálási beállításokkal
- A SharingMode tulajdonság beállítása kizárólagosra
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).