Portování aplikací pro VR Windows Mixed Reality

Windows 10 zahrnují podporu pro moderní a holografické náhlavní soupravy. Pokud jste vytvořili obsah pro jiná zařízení, jako jsou Oculus Rift nebo HTC a, mají závislosti na knihovnách, které existují nad rozhraním API platformy operačního systému. zavedení stávajících aplikací pro prostředí Win32 Unity v rámci systému do Windows Mixed Reality zahrnuje přecílení na využití rozhraní api vr od výrobců v unity pro více dodavatelů.

Požadavky na portování

Při přenosu stávajícího obsahu je na nejvyšší úrovni zapojen následující postup:

  1. ujistěte se, že váš počítač používá Windows 10 Fall Creators Update (16299). Už nedoporučujeme přijímat buildy ve verzi Preview z okruhu Insider Skip dopředu, protože tato sestavení nebudou pro vývoj ve hybridní realitě stabilní.
  2. Upgradujte na nejnovější verzi vaší grafiky nebo herního stroje. herní moduly budou potřebovat podporu Windows 10 SDK verze 10.0.15063.0 (vydané v dubnu 2017) nebo vyšší.
  3. Upgradujte jakýkoli middleware, moduly plug-in nebo komponenty. Pokud vaše aplikace obsahuje nějaké komponenty, je vhodné upgradovat na nejnovější verzi.
  4. Odeberte závislosti pro duplicitní sady SDK. v závislosti na tom, které zařízení váš obsah cílí, budete muset tuto sadu SDK odebrat nebo podmíněně zkompilovat, abyste místo toho mohli cílit Windows rozhraní api. Příkladem tohoto scénáře by byl SteamVR.
  5. Pracujte s problémy při sestavování. V tomto okamžiku je uplatnění přenosu specifické pro vaši aplikaci, váš modul a závislosti komponent, které máte.

Běžné kroky pro přenos

1. Ujistěte se, že máte správný vývojový hardware.

Stránka Průvodce VR patříte mezi fanoušky obsahuje doporučený vývojový hardware.

2. upgradujte na nejnovější let Windows 10

platforma Windows Mixed Reality je stále v aktivním vývoji. doporučujeme, abyste se připojili k programu Windows insider pro přístup k letovému Windows Insider Fast.

  1. instalace Windows 10 Creators Update
  2. připojte se k programu Windows Insider.
  3. Povolit vývojářský režim
  4. přepněte se na Windows Insider Fast lety prostřednictvím části Nastavení Update Security .

3. upgradujte na nejnovější sestavení Visual Studio

  • pokud používáte Visual Studio, upgradujte na nejnovější sestavení
  • přečtěte si téma instalace nástrojů na stránce Visual Studio 2019

4. Vyberte správný adaptér.

  • V systémech, jako jsou poznámkové bloky se dvěma GPU, cílí na správný adaptér. To platí pro Unity a nativní aplikace DirectX, kde je vytvořen ID3D11Device, buď explicitně nebo implicitně (Media Foundation), pro jeho funkci.

Pokyny k přenosu Unity

1. Projděte si výše uvedené společné kroky přenosu.

Projděte si výše uvedené společné kroky a ujistěte se, že vaše vývojové prostředí je správně nastavené. pokud používáte Visual Studio, měli byste v kroku #3 vybrat vývoj her s využitím úlohy Unity. Můžete zrušit výběr volitelné součásti Editor Unity, protože v dalším kroku budete instalovat novější verzi Unity.

2. upgradujte na nejnovější veřejné sestavení Unity s podporou Windows MR.

  1. Stáhněte si nejnovější Doporučené veřejné sestavení Unity s podporou hybridních realit.
  2. Před zahájením uložte kopii projektu.
  3. Přečtěte si dokumentaci , která je k dispozici v Unity o upgradu, pokud byl projekt sestavený na starší verzi Unity.
  4. Postupujte podle pokynů na webu Unity pro používání automatických aktualizačních nástrojů rozhraní API.
  5. Zkontrolujte a podívejte se, jestli existují další změny, které potřebujete udělat, aby se váš projekt spustil, a pracujte se všemi zbývajícími chybami a upozorněními.

Poznámka

Pokud máte middleware, na kterém jste závislí, ověřte, že používáte nejnovější verzi (další podrobnosti najdete v kroku 3 níže).

3. Upgradujte si middleware na nejnovější verze

U jakékoli aktualizace Unity je velmi pravděpodobné, že budete muset aktualizovat jeden nebo více balíčků middlewaru, na kterých vaše hra nebo aplikace závisí. Kromě toho aktuální middleware zvyšuje pravděpodobnost úspěchu v průběhu celého zbytku procesu přenosu dat.

4. cílem aplikace, aby běžela v systému Win32

V rámci vaší aplikace Unity:

  • přejít na soubor – > Nastavení sestavení
  • Vyberte PC, Mac, samostatný Linux.
  • Nastavit cílovou platformu na Windows
  • Nastavit architekturu na x86 vyberte přepínač platforma.

Poznámka

Pokud má vaše aplikace nějaké závislosti na službách specifických pro zařízení, jako je třeba shoda s vytvářením z páry, budete je muset v tomto kroku zakázat. můžete se připojit k ekvivalentním službám, které Windows k dispozici později.

5. nastavení Windows Mixed Reality hardwaru

  1. Kontrola kroků v nastavení pro moderní sluchátka
  2. přečtěte si o používání simulátoru Windows Mixed Reality a procházení Windows Mixed Reality domovské stránky.

6. cílem aplikace, aby běžela na Windows Mixed Reality

  1. Nejdřív je nutné odebrat nebo podmíněně zkompilovat veškerou podporu knihovny specifickou pro konkrétní sadu VR SDK. Tyto prostředky často mění nastavení a vlastnosti projektu způsobem, který je nekompatibilní s jinými sadami VR, jako je Windows Mixed Reality.
    • například pokud váš projekt odkazuje na sadu SteamVR SDK, budete muset projekt aktualizovat, aby se místo toho používala společná rozhraní api pro prostředí Unity, která podporují Windows Mixed Reality i SteamVR.
    • Konkrétní kroky pro podmíněně bez dalších sad SDK pro VR jsou již brzy.
  2. v projektu Unity cílíte na sadu Windows 10 SDK .
  3. Pro každou scénu Nastavte kameru

7. k umístění obsahu do podlahy použijte fázi.

Můžete vytvářet hybridní prostředí realit napříč celou škálou různých zkušeností.

Pokud provádíte přenos se škálovánímna více míst, je nutné zajistit, aby byla jednota nastavená na místo pro sledování stanice :

XRDevice.SetTrackingSpaceType(TrackingSpaceType.Stationary);

Tento kód výše nastavuje systém souřadnic World v Unity pro sledování nehybného rámce reference. V režimu samostatného sledování se při spuštění aplikace zobrazí obsah umístěný v editoru těsně před výchozím umístěním kamery (vpřed je-Z) před uživatelem. Pokud chcete Přecentrovat původní původ uživatele, můžete zavolat XR Unity. InputTracking. recentre – metoda

Pokud přenášíte prostředí se stálou škálou nebo prostorovým škálováním, bude se obsah vztahovat k podlaze. Máte důvod na podlahu uživatele pomocí prostorové fáze, která představuje definovaný počátek na úrovni patr a volitelná místnost pro uživatele, nastavené během prvního spuštění. Pro tato prostředí je nutné zajistit, aby byla jednota nastavena na typ prostoru sledování RoomScale . I když je výchozí hodnota RoomScale, budete ji chtít explicitně nastavit a zajistit, abyste se mohli vrátit k situaci, kdy uživatel přesunul svůj počítač z místnosti, ve které byly kalibrovány:

if (XRDevice.SetTrackingSpaceType(TrackingSpaceType.RoomScale))
{
    // RoomScale mode was set successfully.  App can now assume that y=0 in Unity world coordinate represents the floor.
}
else
{
    // RoomScale mode was not set successfully.  App cannot make assumptions about where the floor plane is.
}

Jakmile vaše aplikace úspěšně nastaví typ prostoru Sledování RoomScale, obsah umístěný na rovině y = 0 se zobrazí v podlaze. Počátek na pozici (0, 0) bude konkrétní místo na podlaze, kde se uživatel stood při instalaci místnosti s-Z, který představuje směr směrování, ke kterému došlo během instalace.

V kódu skriptu můžete zavolat metodu TryGetGeometry, pokud jste typu UnityEngine. experimentální. XR. hranice, který získá mnohoúhelník hranice a určíte typ hranice TrackedArea. Pokud uživatel definoval hranici (vrátíte seznam vrcholů), je bezpečné doručovat uživatele do prostorové škály , kde se mohou vyskytnout scény, kterou vytvoříte.

Systém automaticky vykreslí hranici, když k ní uživatel přistupuje. Vaše aplikace nemusí použít tento mnohoúhelník k vykreslení samotné hranice.

Další informace najdete na stránce věnované souřadnicovým systémům na stránce Unity .

Příklad výsledků:

Příklad výsledků

Algoritmus je založen na blogu Daniel Smilkov: největší obdélník v mnohoúhelníku .

8. práce přes vstupní model

Každá hra nebo aplikace cílící na stávající HMD budou mít sadu vstupů, které zpracovávají, typy vstupů potřebných pro prostředí a specifická rozhraní API, která volá, aby získali tyto vstupy. Investovali jsme se k tomu, že se snažíme co nejjednodušší a snadno využívat vstupy dostupné v Windows Mixed Reality.

podrobnosti o tom, jak Windows Mixed Reality zveřejňuje vstup a jak se tato funkce mapuje na to, co vaše aplikace může dělat, najdete v průvodci vstupním portem pro Unity na sousední kartě.

9. testování výkonu a ladění

Windows Mixed Reality bude k dispozici pro širokou škálu zařízení, od vysoce koncových herních počítačů až po široké trhy běžných počítačů. V závislosti na tom, na jakém trhu cílíte, existuje značný rozdíl v dostupných rozpočtech výpočtů a grafikách pro vaši aplikaci. Během tohoto cvičení přenosu pravděpodobně využíváte počítač úrovně Premium a pro vaši aplikaci máte k dispozici značné výpočetní a grafické rozpočty. Pokud chcete aplikaci zajistit pro širší cílovou skupinu, měli byste ji otestovat a profilovat na reprezentativním hardwaru, na který chcete cílit.

Unity iVisual Studio zahrnují profilátory výkonu a pokyny microsoftu i společnosti Intel k publikování pokynů pro profilaci a optimalizaci výkonu. K dispozici je rozsáhlá diskuze o výkonu v tématu Vysvětlení výkonu pro Mixed Reality. Dále jsou k dispozici konkrétní podrobnosti o Unity v části Recommendations pro Unity.

Pokyny k nereálnímu přenosu

Důležité

Pokud používáte kontrolery HP Reverb G2, najdete další pokyny pro mapování vstupu v tomto článku.

Viz také