Sdílet prostřednictvím


Zachycení hybridní reality pro vývojáře (DirectX)

Než sem začnete, doporučujeme se podívat na náš článek s přehledem zachycení hybridní reality.

Vykreslení z fotoaparátu PV (výslovný souhlas)

HoloLens 2 přidává možnost, aby se imerzivní aplikace vykreslovat z fotoaparátu PV, zatímco je spuštěný snímek hybridní reality. Aby aplikace podporovala další vykreslení správně, musí se k této funkci přihlásit.

Vykreslení z fotoaparátu PV nabízí následující vylepšení oproti výchozímu prostředí MRC:

  • Hologram zarovnání na fyzické prostředí a ruce pro blízké interakce by měly být přesné ve všech vzdálenostech. Vyhněte se posunu na jiné vzdálenosti než na fokusu, jak můžete vidět ve výchozím mrc.
  • Pravé oko náhlavní soupravy nebude ohroženo, protože se nebude používat k vykreslení hologramů pro výstup MRC.

Existují tři kroky, jak povolit vykreslování z fotoaparátu PV:

  1. Povolení PhotoVideoCamera HolographicViewConfiguration
  2. Zpracování dalšího vykreslení HolographicCamera
  3. Ověřte, že se vaše shadery a kód vykreslují správně z této další HolographicCamera.
Povolení Funkce PhotoVideoCamera HolographicViewConfiguration v DirectX

Pokud chcete vyjádřit výslovný souhlas s vykreslováním z fotoaparátu PV, aplikace jednoduše povolí HolographicViewConfiguration photoVideoCamera:

var display = Windows.Graphics.Holographic.HolographicDisplay.GetDefault();
var view = display.TryGetViewConfiguration(Windows.Graphics.Holographic.HolographicViewConfigurationKind.PhotoVideoCamera);
if (view != null)
{
    view.IsEnabled = true;
}
Zpracování dalšího vykreslení HolographicCamera v DirectX

Když se aplikace přihlásí k vykreslení z fotoaparátu PV a spustí se zachytávání hybridní reality:

  1. Aktivuje se událost CameraAdded v HolographicSpace. Tuto událost je možné odložit, pokud aplikace v tuto chvíli nemůže zpracovat kameru.
  2. Jakmile se událost dokončí bez nevyřízených odložení, zobrazí se HolographicCamera v dalším seznamu AddedCameras prvku HolographicFrame.

Když se zachycení hybridní reality zastaví (nebo pokud aplikace zakáže konfiguraci zobrazení, zatímco je spuštěný snímek hybridní reality): HolographicCamera se zobrazí v dalším seznamu RemovedCameras HolographicFrame a událost CameraRemoved holographicSpace se aktivuje.

Do HolographicCamera byla přidána vlastnost ViewConfiguration, která pomáhá identifikovat konfiguraci, do které kamera patří.

Ověření podpory shaderů a kódu dalších fotoaparátů

Spusťte zachytávání hybridní reality a zkontrolujte neobvyklé zarovnání, chybějící obsah nebo problémy s výkonem. Podle potřeby aktualizujte shadery a kód.

Pokud existují určité scény, které nepodporují vykreslování do další kamery, můžete zakázat HolographicViewConfiguration PhotoVideoCamera.

Zakázání MRC v aplikaci

2D aplikace

2D aplikace se můžou rozhodnout, že budou mít jejich vizuální obsah nejasný, když je zachytávání hybridní reality spuštěné:

Asistivní aplikace

Imerzivní aplikace se můžou rozhodnout, že jejich vizuální obsah bude vyloučený z zachycení hybridní reality:

  • Nastavení HolographicCameraRenderingParameter IsContentProtectionEnabled pro zakázání zachycení hybridní reality pro přidružený rámec
  • Nastavení Zařízení IsHardwareContentProtectionEnabled na Zařízení HolographicCamera pro zakázání zachycení hybridní reality pro přidruženou holografickou kameru

Klávesnice hesla

Při použití Aktualizace Windows 10 z května 2019 se vizuální obsah automaticky vyloučí z zachycení hybridní reality, když je viditelné heslo nebo připnutí klávesnice.

Zjištění, kdy je MRC aktivní

Třídu AppCapture může aplikace použít k tomu, aby věděla, kdy je spuštěný záznam hybridní reality systému (pro zvuk nebo video).

Poznámka:

Rozhraní Api GetForCurrentView pro AppCapture může vrátit hodnotu null, pokud v zařízení není k dispozici zachytávání hybridní reality. Při pozastavení aplikace je také důležité zrušit registraci události CapturingChanged, jinak se MRC může dostat do zablokovaného stavu.

Integrace funkcí MRC z aplikace

Vaše aplikace pro hybridní realitu může spustit snímek fotky nebo videa MRC z aplikace a zachycený obsah se zpřístupní vaší aplikaci, aniž by byla uložena do složky Z fotoaparátu zařízení. Můžete vytvořit vlastní záznam MRC nebo využít integrované uživatelské rozhraní pro zachycení fotoaparátu.

MRC s integrovaným uživatelským rozhraním fotoaparátu

Vývojáři můžou pomocí rozhraní API uživatelského rozhraní Camera Capture získat fotku nebo video s hybridní realitou zachycenou uživatelem s několika řádky kódu.

Toto rozhraní API spustí integrované uživatelské rozhraní fotoaparátu MRC, ve kterém můžou uživatelé pořizovat fotku nebo video a vrací výsledný snímek do vaší aplikace. Pokud potřebujete přidat vlastní uživatelské rozhraní fotoaparátu nebo přístup k datovým proudům na nižší úrovni, můžete vytvořit vlastní záznam zachytávání v hybridní realitě.

MRC s zachycením obrazovky

Díky aktualizaci HoloLens 2. května 2021 (Windows Holographic, verze 21H1 build 20346.1002) můžou vývojáři použít rozhraní API pro zachycení obrazovky k vyžádání streamu snímků videa hybridní reality.

Vytvoření vlastního záznamu MRC

I když uživatel může vždy aktivovat fotku nebo video pomocí systémové služby pro zachytávání MRC, může aplikace chtít vytvořit vlastní aplikaci fotoaparátu, která obsahuje hologramy ve streamu fotoaparátu stejně jako MRC. Díky tomu může aplikace zahajovat zachytávání ze vstupu uživatele, vytvářet vlastní uživatelské rozhraní pro nahrávání nebo přizpůsobovat nastavení MRC a pojmenovat několik příkladů.

HoloStudio přidá vlastní kameru MRC pomocí efektů MRC.

HoloStudio přidá vlastní kameru MRC pomocí efektů MRC.

Ostatní aplikace to můžou udělat pomocí rozhraní API pro funkci Windows Media Capture k ovládání kamery a přidání efektu videa a zvuku MRC, který bude obsahovat virtuální hologramy a zvuk aplikací v pořádkách a videích.

Aplikace mají dvě možnosti pro přidání efektu:

Poznámka:

Visual Studio nerozpozná obor názvů Windows.Media.MixedRealityCapture, ale řetězce jsou stále platné.

Efekt videa MRC (Windows.Media.MixedRealityCapture.MixedRealityCaptureVideoEffect)

Název vlastnosti Type Výchozí hodnota Popis
StreamType UINT32 (MediaStreamType) 1 (VideoZáznam) Popište, pro který stream zachytávání se tento efekt používá. Zvuk není k dispozici.
HologramCompositionEnabled boolean TRUE Příznak pro povolení nebo zakázání hologramů v zachytávání videa
RecordingIndicatorEnabled boolean TRUE Příznak pro povolení nebo zakázání indikátoru záznamu na obrazovce během zachytávání hologramu
Stabilizace videa boolean FALSE Příznak pro povolení nebo zakázání stabilizace videa s využitím sledování HoloLens.
Stabilizace videaBufferLength UINT32 0 Nastavte, kolik historických snímků se používá k stabilizaci videa. 0 je latence a téměř "volná" z hlediska výkonu a výkonu. 15 se doporučuje pro nejvyšší kvalitu (za cenu 15 snímků latence a paměti).
GlobalOpacityCoefficient float (číslo s plovoucí řádovou čárkou) 0.9 (HoloLens) 1.0 (Imerzivní náhlavní souprava) Nastavte globální koeficient neprůhlednosti hologramu v rozsahu od 0,0 (plně transparentní) do 1,0 (plně neprůhledný).
BlankOnProtectedContent boolean FALSE Příznak pro povolení nebo zakázání vrácení prázdného rámce, pokud existuje 2d aplikace pro UPW zobrazující chráněný obsah. Pokud je tento příznak false a aplikace pro 2d UPW zobrazuje chráněný obsah, aplikace pro 2d UPW se nahradí chráněnou texturou obsahu v náhlavní soupravě i v zachycení hybridní reality.
ShowHiddenMesh boolean FALSE Příznakem povolíte nebo zakážete zobrazení skryté sítě a sousedního obsahu holografické kamery.
Velikost výstupu Velikost 0, 0 Po oříznutí nastavte požadovanou velikost výstupu pro stabilizaci videa. Pokud je zadána hodnota 0 nebo neplatná velikost výstupu, je zvolena výchozí velikost oříznutí.
OutputSubtype String Nv12 Nastavte požadovaný podtyp výstupu po sestavení hologramu nebo stabilizaci videa. Podporuje podtypy Nv12 a Argb32 MediaEncodingSubtypes.
PreferredHologramPerspective UINT32 Vykreslení z nastavení Fotoaparátu na portálu zařízení s Windows Výčet použitý k označení, která konfigurace zobrazení holografické kamery by měla být zachycena: 0 (Zobrazení) znamená, že aplikace nebude požádána o vykreslení z fotoaparátu fotky nebo videa, 1 (PhotoVideoCamera) požádá aplikaci, aby se vykreslovala z fotoaparátu fotky nebo videa (pokud ji aplikace podporuje). Podporováno pouze v HoloLens 2

Poznámka:

Výchozí hodnotu PreferredHologramPerspective můžete změnit na portálu zařízení s Windows tak, že přejdete na stránku Zachycení hybridní reality a zrušíte zaškrtnutí políčka Vykreslit z fotoaparátu. Výchozí nastavení je 1 (PhotoVideoCamera), ale pokud ho chcete nastavit na hodnotu 0 (Zobrazení), můžete ho zrušit zaškrtnutím políčka.

Výchozí hodnota PreferredHologramPerspective byla před aktualizací z června 2020 ( Windows Holographic, verze 2004 build 19041.1106 a Windows Holographic, verze 1903 build 18362.1064).

Podpora outputSubtype byla přidána s aktualizací z května 2021 (Windows Holographic, verze 21H1 build 20346.1002).

Zvukový efekt MRC (Windows.Media.MixedRealityCapture.MixedRealityCaptureAudioEffect)

Název vlastnosti Type Výchozí hodnota Popis
MixerMode UINT32 2 (Mikrofon a zvuk systému) Výčet použitý k označení, které zdroje zvuku se mají použít: 0 (pouze zvuk mikrofonu), 1 (pouze zvuk systému), 2 (Mikrofon a Zvuk systému)
LoopbackGain float (číslo s plovoucí řádovou čárkou) Nastavení Získání zvuku aplikace na portálu zařízení s Windows Získání, které se použije pro systémový zvukový svazek. Pohybuje se od 0,0 do 5,0. Podporováno pouze v HoloLens 2
MicrophoneGain float (číslo s plovoucí řádovou čárkou) Nastavení Získání zvuku mikrofonu na portálu zařízení s Windows Získat pro hlasitost mikrofonu. Pohybuje se od 0,0 do 5,0. Podporováno pouze v HoloLens 2

Poznámka:

Výchozí hodnotu LoopbackGain nebo MicrophoneGain můžete změnit na portálu zařízení s Windows tak, že přejdete na stránku Zachycení hybridní reality a upravíte posuvník vedle příslušného nastavení. Obě nastavení mají výchozí hodnotu 1,0, ale můžete ji nastavit na libovolnou hodnotu mezi 0,0 a 5,0.

Při konfiguraci výchozích hodnot získání pomocí portálu zařízení s Windows jsme přidali aktualizaci z června 2020 (Windows Holographic, verze 2004 build 19041.1106 a Windows Holographic, verze 1903 build 18362.1064).

Souběžná omezení MRC

Pokud více aplikací současně přistupuje k MRC, musíte mít na paměti určitá omezení.

Přístup k fotoaparátu s fotkou nebo videem

Na HoloLens 1 se MRC nepodaří zachytit fotku nebo zachytit video, když proces nahrává video nebo fotí fotku. Opačná hodnota je také pravdivá: pokud je spuštěný MRC, aplikace nebude mít přístup ke kameře.

S HoloLens 2 je možné sdílet přístup ke kameře. Pokud nepotřebujete přímou kontrolu nad rozlišením nebo snímkovou rychlostí, můžete inicializovat MediaCapture pomocí vlastnosti SharedMode se SharedReadOnly.

Integrovaný přístup k fotce a videokamerě MRC

Funkce MRC integrované do Windows 10 (prostřednictvím Cortany, nabídky Start, hardwarových zkratek, Miracastu, portálu zařízení s Windows):

  • Ve výchozím nastavení se spustí s exclusiveControl.

Do subsystému MRC však byla přidána podpora pro provoz ve sdíleném režimu:

  • Pokud aplikace požádá o přístup ExclusiveControl k fotoaparátu s fotkou nebo videem, integrované MRC automaticky přestane používat fotoaparát s fotkou nebo videem, aby žádost aplikace byla úspěšná.
  • Pokud je integrované v MRC spuštěno, když má aplikace ExclusiveControl, integrované MRC se spustí v režimu SharedReadOnly.

Tato funkce sdíleného režimu má určitá omezení:

  • Fotka prostřednictvím Cortany, hardwarových zkratek nebo nabídky Start: Vyžaduje aktualizaci Windows 10 z dubna 2018 (nebo novější).
  • Video prostřednictvím Cortany, hardwarových zkratek nebo nabídky Start: Vyžaduje aktualizaci Windows 10 z dubna 2018 (nebo novější).
  • Streamování MRC přes Miracast: Vyžaduje Aktualizace Windows 10 z října 2018 (nebo novější).
  • Streamování MRC přes portál zařízení s Windows nebo přes doprovodnou aplikaci HoloLens: Vyžaduje HoloLens 2

Poznámka:

Rozlišení a frekvence snímků integrovaného uživatelského rozhraní fotoaparátu MRC se může snížit z normálních hodnot, když jiná aplikace používá fotoaparát fotky nebo videa.

Přístup MRC pro vývojáře

Při používání MRC doporučujeme vždy požádat o výhradní kontrolu kamery. Tím zajistíte, že vaše aplikace bude mít plnou kontrolu nad nastavením fotoaparátu, pokud víte o výše uvedených omezeních.

Upozornění

Než budete pokračovat, nezapomeňte si pečlivě přečíst poznámky SharingMode.

  • Nastavení kamery podle vašich představ
  • Spusťte aplikaci, zachyťte snímky videa pomocí počátečního rozhraní API a pak povolte MRC.

Upozornění

Pokud před spuštěním aplikace spustíte MRC, nemůžeme zaručit, že funkce bude fungovat podle očekávání.

Úplný vzorek výše uvedeného procesu najdete v ukázce pro sledování holografických tváří.

Poznámka:

Před aktualizací Windows 10 z dubna 2018 se vlastní záznam MRC aplikace vzájemně vylučují se systémem MRC (zachytávání fotek, zachytávání videí nebo streamování z portálu zařízení s Windows).

Viz také