Vytvoření 3D modelů pro použití na domovské stránce
Domovská stránka Windows Mixed Reality je výchozím bodem, kde se uživatelé dostanou před spuštěním aplikací. Při navrhování aplikace pro náhlavní soupravy Windows Mixed Reality použijte jako spouštěč aplikací 3D model a umístěte 3D přímé odkazy na domovskou stránku Windows Mixed Reality. Tento článek popisuje pokyny pro vytváření 3D modelů kompatibilních s domovskou aplikací Windows Mixed Reality.
Přehled požadavků na prostředky
Při vytváření 3D modelů pro Windows Mixed Reality existují určité požadavky, které musí všechny prostředky splňovat:
- Export – Prostředky musí být doručeny ve formátu souboru .glb (binární formát glTF), .obj nebo .fbx.
- Modelování – Prostředky musí být menší než 10 tisíc trojúhelníků, nesmí mít více než 64 uzlů a 32 podmnožek na LOD.
- Materiály - Textury nesmí být větší než 4096 x 4096 a nejmenší mapa mip by neměla být větší než 4 na obou rozměrech.
- Animace – Animace nesmí být delší než 20 minut při 30 FPS (36 000 klíčových snímků) a musí obsahovat <8192 cílových vrcholů morfingu.
- Optimalizace – Prostředky by měly být optimalizovány pomocí windowsMRAssetConverter. Požadováno ve verzích operačního <systému Windows = 1709* a doporučeno ve verzích operačního >systému Windows = 1803
Poznámka:
Aplikace 3D Viewer podporuje různé formáty a rozlišení, ale nakonec převede modely na .glb/glTF před jejich zobrazením na domovské stránce hybridní reality.
Zbytek tohoto článku obsahuje podrobný přehled těchto požadavků a další pokyny, které zajistí, aby vaše modely dobře fungovaly s domovskou částí Windows Mixed Reality.
Podrobné pokyny
Export modelů
Domovská stránka Windows Mixed Reality očekává, že se doručí 3D prostředky pomocí formátu souboru .glb s vloženými obrázky a binárními daty. Glb je binární verze formátu glTF, což je bezplatně otevřený standard pro doručování 3D aktiv udržovaných skupinou Khronos. S tím, jak se glTF vyvíjí jako oborový standard pro interoperabilní 3D obsah, bude microsoft podporovat formát napříč aplikacemi a prostředími Windows. Pokud jste ještě nevytvořili prostředek glTF, najdete seznam podporovaných exportérů a převaděčů na stránce githubu pracovní skupiny glTF.
Pokyny pro modelování
Systém Windows očekává, že se prostředky vygenerují pomocí následujících pokynů pro modelování, aby byla zajištěna kompatibilita s domovským prostředím hybridní reality. Při modelování v programu podle vašeho výběru mějte na paměti následující doporučení a omezení:
- Osa nahoru by měla být nastavená na Y.
- Prostředek by měl čelit "dopředu" směrem k kladné ose Z.
- Všechny prostředky by měly být postaveny na pozemní rovině na místě původu (0,0,0)
- Pracovní jednotky by měly být nastaveny na měřiče a prostředky, aby bylo možné prostředky vytvářet ve světovém měřítku.
- Všechna síť nemusí být kombinována, ale doporučuje se, pokud cílíte na zařízení s omezenými prostředky.
- Všechny sítě by měly sdílet jeden materiál, přičemž pro celý prostředek se používá pouze jedna sada textur.
- UV musí být rozloženy ve čtvercovém uspořádání v prostoru 0-1. Vyhněte se dlaždicím textur, i když jsou povolené.
- Více uživatelských virtuálních počítačů se nepodporuje.
- Oboustranné materiály nejsou podporovány.
Trojúhelníkové počty a úrovně podrobností (LOD)
Domovská stránka Windows Mixed Reality nepodporuje modely s více než 10 000 trojúhelníky. Před exportem doporučujeme sítě triangulatovat, aby se zajistilo, že tento počet nepřekročí. Systém Windows MR také podporuje volitelné úrovně geometrie podrobností (LOD), aby se zajistil výkon a vysoce kvalitní prostředí. WindowsMRAssetConverter vám pomůže kombinovat 3 verze modelu do jednoho modelu .glb. Systém Windows určuje, který lod se má zobrazit na základě množství nemovitostí obrazovky, které model zabírá. S následujícími doporučenými počty trojúhelníků se podporují pouze 3 úrovně LOD:
Úroveň LOD | Doporučený počet trojúhelníků | Maximální počet trojúhelníků |
---|---|---|
LOD 0 | 10,000 | 10,000 |
LOD 1 | 5 000 | 10,000 |
LOD 2 | 2 500 | 10,000 |
Počty uzlů a limity dílčích uzlů
Domovská stránka Windows Mixed Reality nepodporuje modely s více než 64 uzly nebo 32 dílčími sadami na LOD. Uzly jsou konceptem ve specifikaci glTF, která definuje objekty ve scéně. Submeshes jsou definovány v poli primitiv v síti v objektu.
Funkce | Popis | Maximální podporovaná hodnota | Dokumentace |
---|---|---|---|
Uzly | Objekty ve scéně glTF | 64 na LOD | zde. |
Podmnožky | Součet primitiv ve všech sítích | 32 na LOD | zde. |
Pokyny k materiálům
Textury by měly být připraveny pomocí pracovního postupu hrubosti kovu PBR. Začněte tím, že vytvoříte úplnou sadu textur včetně Albedo, Normal, Occlusion, Metal a Drsnost. Windows Mixed Reality podporuje textury s rozlišením až 4096x4096, ale doporučuje se, abyste ho vytvořili na 512x512. Textury by měly být vytvořené v rozlišeních v násobcích 4. Toto je požadavek na formát komprese použitý na textury v níže uvedených krocích exportu. Při generování map mip nebo textury musí být nejnižší mip maximálně 4x4.
Doporučená velikost textury | Maximální velikost textury | Nejnižší mip |
---|---|---|
512 × 512 | 4096x4096 | max. 4x4 |
Mapa Albedo (základní barva)
Nezpracovaná barva bez informací o osvětlení. Tato mapa obsahuje také odrazové a difuzní informace pro kov (bílá v kovové mapě) a izolátor (černá v kovové mapě) povrchy v uvedeném pořadí.
Normální
Tangens Space Normal map
Mapa hrubosti
Popisuje mikrovrchoch objektu. Bílý 1,0 je hrubý Černý 0,0 je hladký. Tato mapa dává assetu nejvíce znaků, protože skutečně popisuje povrch. Například škrábance, otisky prstů, ztlumení, šukání a tak dále.
Okolí okluze – mapa
Mapa měřítka hodnot zobrazující oblasti odlehlého světla, které blokuje odrazy
Kovová mapa
Řekne shaderu, jestli je něco kovového nebo ne. Nezpracovaný kov = 1,0 bílá Nekovová = 0,0 černá. Mohou existovat přechodné šedé hodnoty, které označují něco, co pokrývá nezpracovaný kov, jako je nečistota, ale obecně by tato mapa měla být pouze černá a bílá.
Optimalizace
Domovská stránka Windows Mixed Reality nabízí řadu optimalizací nad specifikací core glTF definovanou pomocí vlastních rozšíření. Tyto optimalizace jsou vyžadovány ve verzích <Windows = 1709 a doporučuje se v novějších verzích Windows. Jakýkoli model glTF 2.0 můžete snadno optimalizovat pomocí nástroje Windows Mixed Reality Asset Converter, který je k dispozici na GitHubu. Tento nástroj provede správné balení textury a optimalizace, jak je uvedeno níže. Pro obecné použití doporučujeme použít WindowsMRAssetConverter, ale pokud potřebujete větší kontrolu nad prostředím a chcete vytvořit vlastní optimalizační kanál, můžete se podívat na podrobnou specifikaci níže.
Poznámka:
Konečný seznam možností přesných limitů modelu najdete v článku optimalizace 3D modelu pro použití v aplikacích Dynamics 365.
Materiály
Pro zlepšení doby načítání prostředků v prostředích hybridní reality windows MR podporuje vykreslování komprimovaných textur DDS zabalených podle schématu balení textury definovaného v této části. Na textury DDS se odkazuje pomocí rozšíření MSFT_texture_dds. Komprese textur je vysoce doporučená.
HoloLens
Prostředí hybridní reality založené na HoloLensu očekávají, že se textury zabalí pomocí nastavení 2 textury pomocí následující specifikace balení:
Vlastnost glTF | Textura | Schéma balení |
---|---|---|
pbrMetallicRoughness | baseColorTexture | Červená (R), zelená (G), modrá (B) |
MSFT_packing_normalRoughnessMetallic | normalRoughnessMetallicTexture | Normální (RG), hrubost (B), kovová (A) |
Při komprimaci textur DDS se na každé mapě očekává následující komprese:
Textura | Očekávaná komprese |
---|---|
baseColorTexture, normalRoughnessMetallicTexture | BC7 |
Imerzivní náhlavní soupravy (VR)
Prostředí Windows Mixed Reality založené na počítači pro imerzivní náhlavní soupravy (VR) očekávají, že textury budou zabaleny pomocí nastavení 3 textury pomocí následující specifikace balení:
Operační systém >Windows = 1803
Vlastnost glTF | Textura | Schéma balení |
---|---|---|
pbrMetallicRoughness | baseColorTexture | Červená (R), zelená (G), modrá (B) |
MSFT_packing_occlusionRoughnessMetallic | OkluzeRoughnessMetallicTexture | Okluze (R), hrubost (G), kovová (B) |
MSFT_packing_occlusionRoughnessMetallic | normalTexture | Normální (RG) |
Při komprimaci textur DDS se na každé mapě očekává následující komprese:
Textura | Očekávaná komprese |
---|---|
normalTexture | BC5 |
baseColorTexture, occlusionRoughnessMetallicTexture | BC7 |
Operační systém <Windows = 1709
Vlastnost glTF | Textura | Schéma balení |
---|---|---|
pbrMetallicRoughness | baseColorTexture | Červená (R), zelená (G), modrá (B) |
MSFT_packing_occlusionRoughnessMetallic | hrubostMetallicOcclusionTexture | Hrubost (R), kovová (G), okluze (B) |
MSFT_packing_occlusionRoughnessMetallic | normalTexture | Normální (RG) |
Při komprimaci textur DDS se na každé mapě očekává následující komprese:
Textura | Očekávaná komprese |
---|---|
normalTexture | BC5 |
baseColorTexture, hrubostMetallicOcclusionTexture | BC7 |
Přidání síťových identifikátorů LOD
Systém Windows MR používá k vykreslení 3D modelů 3D v různých úrovních podrobností v závislosti na pokrytí na obrazovce. I když tato funkce není technicky povinná, doporučuje se pro všechny prostředky. V současné době Windows podporuje 3 úrovně podrobností. Výchozí lod je 0, což představuje nejvyšší kvalitu. Ostatní identifikátory LOD se číslují postupně, například 1, 2 a postupně snižují kvalitu. Převaděč prostředků windows Mixed Reality podporuje generování prostředků, které splňují tuto specifikaci LOD tím, že přijímá více modelů glTF a slučuje je do jednoho prostředku s platnými úrovněmi LOD. Následující tabulka popisuje očekávané pořadí LOD a cíle trojúhelníku:
Úroveň LOD | Doporučený počet trojúhelníků | Maximální počet trojúhelníků |
---|---|---|
LOD 0 | 10,000 | 10,000 |
LOD 1 | 5 000 | 10,000 |
LOD 2 | 2 500 | 10,000 |
Při použití identifikátorů LOD vždy zadejte 3 úrovně LOD. Chybějící identifikátory LOD způsobí, že se model neočekávaně nevykreslí, protože systém LOD přepne na chybějící úroveň LOD. glTF 2.0 v současné době nepodporuje identifikátory LOD jako součást specifikace jádra. Identifikátory LOD by měly být definovány pomocí rozšíření MSFT_LOD.
Pokrytí obrazovky
V systému Windows Mixed Reality se zobrazují identifikátory LOD založené na systému řízeném hodnotou pokrytí obrazovky nastavenou na každém LOD. Objekty, které aktuálně využívají větší část místa na obrazovce, se zobrazují na vyšší úrovni LOD. Pokrytí obrazovky není součástí specifikace glTF 2.0 core a musí se zadat pomocí MSFT_ScreenCoverage v části "extras" rozšíření MSFT_lod.
Úroveň LOD | Doporučený rozsah | Výchozí rozsah |
---|---|---|
LOD 0 | 100% - 50% | 0.5 |
LOD 1 | Méně než 50 % – 20 % | 0,2 |
LOD 2 | Méně než 20 % – 1 % | 0,01 |
LOD 4 | Pod 1 % | - |
Pokyny pro animaci
Poznámka:
Tato funkce byla přidána jako součást aktualizace Windows 10 z dubna 2018. Ve starších verzích Windows se tyto animace nepřehrají, ale při vytváření se budou dál načítat podle pokynů v tomto článku.
Domovská stránka hybridní reality podporuje animované objekty glTF na náhlavních soupravách HoloLens a imerzivní (VR). Pokud chcete aktivovat animace ve vašem modelu, budete muset použít rozšíření Mapa animací ve formátu glTF. Toto rozšíření umožňuje aktivovat animace v modelu glTF na základě přítomnosti uživatele na světě, například aktivovat animaci, když se uživatel nachází blízko objektu nebo když se na něj dívá. Pokud objekt glTF obsahuje animace, ale nedefinuje triggery, animace se nepřehrají. Následující část popisuje jeden pracovní postup pro přidání těchto triggerů do libovolného animovaného objektu glTF.
Nástroje
Nejprve si stáhněte následující nástroje, pokud je ještě nemáte. Tyto nástroje usnadňují otevření libovolného modelu glTF, jeho náhled, provedení změn a uložení zpět jako glTF nebo .glb:
Otevření a zobrazení náhledu modelu
Začněte otevřením modelu glTF ve VSCode přetažením souboru .glTF do okna editoru. Pokud máte soubor .glb místo souboru .glTF, můžete ho importovat do VSCode pomocí doplňku nástroje glTF, který jste stáhli. Přejděte na "View - Command Palette" (Zobrazit –> Paleta příkazů) a začněte psát "glTF" do palety příkazů a vyberte "glTF: Import z glb", který zobrazí výběr souborů, se kterým můžete importovat soubor .glb.
Po otevření modelu glTF by se měl v okně editoru zobrazit JSON. Náhled modelu můžete zobrazit také v živém 3D prohlížeči tak, že kliknete pravým tlačítkem na název souboru a v místní nabídce vyberete zástupce příkazu glTF: Preview 3D Model.
Přidání triggerů
Aktivační události animace se přidají do formátu JSON modelu glTF pomocí rozšíření Mapa animací. Rozšíření mapy animací je veřejně zdokumentované tady na GitHubu (POZNÁMKA: TOTO JE ROZŠÍŘENÍ KONCEPTU). Pokud chcete přidat rozšíření do modelu, stačí přejít na konec souboru glTF v editoru a přidat do souboru blok "extensionsUsed" a "extensions", pokud ještě neexistují. V části "extensionsUsed" přidáte odkaz na rozšíření "EXT_animation_map" a v bloku rozšíření přidáte mapování na animace v modelu.
Jak je uvedeno ve specifikaci , definujete, co aktivuje animaci pomocí řetězce sémantického řetězce v seznamu "animací", což je pole animačních indexů. V následujícím příkladu jsme zadali animaci, která se má přehrát, když uživatel na objekt nahlíží:
"extensionsUsed": [
"EXT_animation_map"
],
"extensions" : {
"EXT_animation_map" : {
"bindings": [
{
"semantic": "GAZE",
"animations": [0]
}
]
}
}
Domovská stránka Windows Mixed Reality podporuje následující sémantiku aktivačních událostí animace.
- "ALWAYS": Neustále smyčce animace
- "HELD": Smyčka během celé doby trvání objektu je uchycena.
- "GAZE": Smyčka při pohledu na objekt
- "PROXIMITY": Smyčka, když je prohlížeč blízko objektu
- "POINTING": Smyčka, když uživatel ukazuje na objekt
Ukládání a export
Jakmile provedete změny modelu glTF, můžete ho uložit přímo jako glTF. Můžete také kliknout pravým tlačítkem myši na název souboru v editoru a vybrat "glTF: Export do GLB (binární soubor)" pro export souboru .glb.
Omezení
Animace nesmí být delší než 20 minut a nesmí obsahovat více než 36 000 klíčových snímků (20 minut při 30 FPS). Navíc při použití animací morfingu založených na cíli nepřekračuje 8192 cílových vrcholů nebo méně. Překročení těchto počtů způsobí nepodporovaný animovaný asset na domovské stránce Windows Mixed Reality.
Funkce | Maximum |
---|---|
Doba trvání | 20 minut |
Klíčové rámce | 36,000 |
Morfing – cílové vrcholy | 8192 |
Poznámky k implementaci glTF
Windows MR nepodporuje překlopení geometrie pomocí záporných měřítk. Geometrie s negativními měřítky pravděpodobně způsobí artefakty vizuálů.
Prostředek glTF musí odkazovat na výchozí scénu pomocí atributu scény, který má vykreslit systém Windows MR. Kromě toho zavaděč Windows MR glTF před aktualizací Windows 10 duben 2018 vyžaduje přístupové objekty:
- Musí obsahovat minimální a maximální hodnoty.
- Typ SCALAR musí být componentType UNSIGNED_SHORT (5123) nebo UNSIGNED_INT (5125).
- Typ VEC2 a VEC3 musí být componentType FLOAT (5126).
Následující vlastnosti materiálu se používají ze specifikace core glTF 2.0, ale nevyžadují se:
- baseColorFactor, metalFactor, hrubostFactor
- baseColorTexture: Musí odkazovat na texturu uloženou v dds.
- emissiveTexture: Musí odkazovat na texturu uloženou v dds.
- emissiveFactor
- alphaMode
Následující vlastnosti materiálu jsou ignorovány ze specifikace jádra:
- Všechny více uživatelských virtuálních počítačů
- metalRoughnessTexture: Místo toho je nutné použít balení textur optimalizované pro Microsoft definované níže
- normalTexture: Místo toho musí používat balení textur optimalizované microsoftem definované níže.
- normalScale
- occlusionTexture: Místo toho musí používat balení textur optimalizované pro Microsoft definované níže.
- okluzeStrength
Windows MR nepodporuje primitivní čáry a body režimu.
Podporuje se pouze jeden atribut vrcholu UV.
Další materiály
- glTF Exportéry a převaděče
- glTF Toolkit
- Specifikace glTF 2.0
- Specifikace rozšíření Microsoft glTF LOD
- Specifikace rozšíření balení textury hybridní reality PC
- Specifikace rozšíření textury textury HoloLens
- Specifikace rozšíření Microsoft DDS Textures glTF