Přehled zachycení hybridní reality
Poznámka
Pokyny k nové funkci MRC pro HoloLens 2 najdete v části Vykreslení z fotovoltaické kamery níže.
Snímek nebo video z hybridní reality (MRC) můžete kdykoli pořídit, ale při vývoji aplikace je potřeba mít na paměti několik věcí. Patří sem osvědčené postupy pro kvalitu vizuálu MRC a odezvu na změny systému, když se zachytávají snímky MRC.
Vývojáři také můžou bezproblémově integrovat zachycení hybridní reality a vkládání do svých aplikací.
MRC na HoloLensu (první generace) podporuje videa a fotky až 720p, zatímco MRC na HoloLens 2 podporuje videa až do rozlišení 1080p a fotky až do rozlišení 4K.
Důležitost kvalitního MRC
Ať už se jedná o snímky obrazovky s hybridní realitou na stránce Microsoft Storu nebo jiní uživatelé sdílející obsah na sociálních sítích, Mixed Reality Zachytávání médií je často prvním vystavením vaší aplikace uživateli. MRC můžete použít k ukázkám aplikace, vzdělávání uživatelů, povzbuzování uživatelů ke sdílení jejich interakcí se smíšeným světem a k výzkumu uživatelů a řešení problémů.
Jak MRC ovlivňuje vaši aplikaci
Povolení MRC v aplikaci
Ve výchozím nastavení nemusí aplikace dělat nic, aby uživatelům umožňovala pořizovat zachycení hybridní reality.
Povolení vylepšeného zarovnání pro MRC v aplikaci
Zachycení hybridní reality ve výchozím nastavení kombinuje holografický výstup pravého oka s fotoaparátem pro fotky/video (PV). Tyto dva zdroje se zkombinují pomocí fokusového bodu nastaveného aktuálně spuštěnou imerzivní aplikací.
To znamená, že hologramy mimo rovinu zaostření nebudou zarovnány kvůli fyzické vzdálenosti mezi fotovoltaické kamery a správným displejem.
Nastavení fokusu
Asistivní aplikace (na HoloLensu) by měly nastavit fokus na místě , kde chtějí mít svou stabilizační rovinu. Tím se zajistí nejlepší zarovnání v náhlavní soupravě i v zachycení hybridní reality.
Pokud není zaostřovací bod nastavený, bude stabilizační rovina ve výchozím nastavení 2 metry.
Vykreslení z fotovoltaické kamery (výslovný souhlas)
HoloLens 2 přidává možnost imerzivní aplikace vykreslovat z fotovoltaické kamery, zatímco je spuštěno zachycení hybridní reality. Aby aplikace podporovala další vykreslování správně, musí se k této funkci přihlásit.
Vykreslování z fotovoltaické kamery nabízí následující vylepšení oproti výchozímu prostředí MRC:
- Zarovnání hologramu s fyzickým prostředím a rukama pro blízké interakce by mělo být přesné ve všech vzdálenostech. Vyhněte se posunu na jiné vzdálenosti, než je zaostřování, jak můžete vidět ve výchozím mrc.
- Pravé oko v náhlavní soupravě nebude ohroženo, protože nebude použito k vykreslení hologramů pro výstup MRC.
Přečtěte si další informace o vykreslování z fotovoltaické kamery (DirectX).
Osvědčené postupy (specifické pro HoloLens)
Očekává se, že MRC bude fungovat bez dalšího úsilí o vývoj, ale při poskytování nejlepšího prostředí pro zachycení hybridní reality je potřeba mít na paměti několik věcí.
MRC používá alfa kanál hologramu k prolnutí se snímky z fotoaparátu .
Nejdůležitějším krokem je zajistit, aby se aplikace vyčistala do průhledné černé barvy místo toho, aby se vyčistala do neprůhledné černé. V Unity se to ve výchozím nastavení provádí pomocí MixedRealityToolkit. Pokud vyvíjíte v jiné platformě než Unity, možná budete muset provést změnu na jednom řádku.
Tady jsou některé artefakty, které se můžou zobrazit v MRC, pokud se vaše aplikace nečistí do průhledné černé barvy:
Příklad selhání: Černé hrany kolem obsahu (nedaří se vymazat na průhlednou černou)
Příklad selhání: Celá scéna na pozadí hologramu se zobrazí černě. Nastavení jedné hodnoty alfa pozadí má za následek černé pozadí.
Očekávaný výsledek: Hologramy se zobrazují správně prolnutí s reálným světem (očekávaný výsledek, pokud je vymazání průhledné černé)
Řešení:
- Změňte libovolný obsah, který se zobrazuje jako neprůkazný černý, tak, aby měl hodnotu alfa 0.
- Ujistěte se, že se aplikace vymaže do průhledné černé barvy.
- Unity se ve výchozím nastavení automaticky vymaže pomocí sady MixedRealityToolkit, ale pokud se jedná o aplikaci bez Unity, měli byste upravit barvu použitou s ID3D11DeiceContext::ClearRenderTargetView(). Chcete zajistit, abyste měli průhlednou černou barvu (0,0,0,0,0) místo neprůhledné černé (0,0,0,1).
Teď můžete vyladit alfa hodnoty vašich prostředků, pokud chcete, ale obvykle to není potřeba. Ve většině případů budou mrc vypadat dobře z krabice. MRC předpokládá předem vynásobenou hodnotu alfa. Hodnoty alfa ovlivní pouze zachycení MRC.
Co očekávat, když je mrc povolený na HoloLensu
Pokud není uvedeno jinak, platí pro HoloLens (první generace) i HoloLens 2 následující:
- Systém omezí vykreslování aplikace na 30 Hz. Tím se vytvoří prostor pro spuštění MRC, aby aplikace nemusela udržovat konstantní rozpočtovou rezervu a také odpovídala snímkové frekvenci záznamu videa MRC 30 snímků za sekundu.
- Při nahrávání nebo streamování MRC se může zdát, že obsah hologramu v pravém oku zařízení "jiskří": text může být obtížnější číst a hrany hologramu se můžou zdát zubatější (přihlášení k třetímu vykreslení kamery na HoloLens 2 tomuto ohrožení zabrání).
- Fotky a videa MRC budou respektovat zaostřovací bod aplikace, pokud ho aplikace povolila, což pomůže zajistit přesné umístění hologramů. U videí je zaostřovaný bod vyhladěný, takže se může zdát, že se hologramy pomalu posunují na místo, pokud se hloubka zaostřovaného bodu výrazně změní. Hologramy, které jsou v různých hloubkách od zaostřovacího bodu, se můžou zdát odsazené od reálného světa (viz příklad níže, kde je zaostřovací bod nastaven na 2 metry, ale hologram je umístěný na 1 metr).
Integrace funkcí MRC z vaší aplikace
Aplikace pro hybridní realitu může z aplikace spustit pořizování fotek nebo videí MRC a zachycený obsah se zpřístupní vaší aplikaci, aniž by se uložil do složky Z fotoaparátu zařízení. Můžete si vytvořit vlastní záznam MRC nebo využít integrované uživatelské rozhraní pro pořizování snímků z fotoaparátu.
MRC s integrovaným uživatelským rozhraním kamery
Vývojáři můžou pomocí rozhraní API pro zachytávání fotoaparátu získat fotku nebo video z hybridní reality pořízené 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 vrátí výsledný snímek do vaší aplikace. Pokud potřebujete přidat vlastní uživatelské rozhraní kamery nebo přístup na nižší úrovni k zachytávání datových proudů, můžete si vytvořit vlastní záznam Mixed Reality Capture.
Vytvoření vlastního záznamu MRC
I když uživatel může vždy aktivovat fotku nebo video pomocí systémové služby mrc capture, aplikace může chtít vytvořit vlastní aplikaci fotoaparátu, která bude obsahovat hologramy v datovém proudu kamery stejně jako MRC. To aplikaci umožňuje spustit záznamy ze vstupu uživatele, vytvořit vlastní uživatelské rozhraní pro nahrávání nebo přizpůsobit nastavení MRC tak, aby jmenovala několik příkladů.
HoloStudio přidává vlastní kameru MRC pomocí efektů MRC
Aplikace Unity by měly vidět Locatable_camera_in_Unity vlastnosti pro povolení hologramů.
Jiné aplikace to můžou udělat pomocí rozhraní API Windows Media Capture k ovládání kamery a přidáním efektu MRC Video a Audio, který do snímků a videí zahrne virtuální hologramy a zvuk aplikací.
Přečtěte si další informace o vytváření vlastního záznamu MRC (DirectX).
Souběžná omezení MRC
Při přístupu k MRC najednou více aplikací je potřeba mít na paměti určitá omezení.
Přístup k fotokamerě nebo videokamerě
V HoloLensu 1 se mrc nepodaří zachytit fotku nebo zachytit video, zatímco proces zaznamenává video nebo pořizování fotky. Platí to i naopak: pokud je MRC spuštěný, aplikace nebude mít přístup ke kameře.
S HoloLens 2 můžete sdílet přístup ke kameře. Pokud nepotřebujete přímou kontrolu nad rozlišením nebo snímkovou frekvencí, můžete mediaCapture inicializovat pomocí vlastnosti SharedMode s SharedReadOnly.
Integrovaný přístup k fotokamerě a videokamerě MRC
Přečtěte si informace o integrovaném přístupu k fotografiím a videokamerě MRC (DirectX).
Přístup MRC pro vývojáře
Při použití 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 kamery, pokud jste si vědomi výše uvedených omezení.
Přečtěte si další informace o přístupu k MRC pro vývojáře (DirectX).