3D-modellen maken voor gebruik in het huis
De startpagina van Windows Mixed Reality is het beginpunt waar gebruikers terechtkomen voordat ze toepassingen starten. Wanneer u uw toepassing voor Windows Mixed Reality-headsets ontwerpt, gebruikt u een 3D-model als startprogramma voor apps en plaatst u 3D-dieptekoppelingen in het windows Mixed Reality-huis. In dit artikel vindt u een overzicht van de richtlijnen voor het maken van 3D-modellen die compatibel zijn met het windows Mixed Reality-huis.
Overzicht van assetvereisten
Bij het maken van 3D-modellen voor Windows Mixed Reality zijn er enkele vereisten waaraan alle assets moeten voldoen:
- Exporteren - Assets moeten worden geleverd in de bestandsindeling .glb (binary glTF), .obj of .fbx
- Modellering : assets moeten kleiner zijn dan 10k driehoeken, hebben niet meer dan 64 knooppunten en 32 submeshes per LOD
- Materialen - Patronen mogen niet groter zijn dan 4096 x 4096 en de kleinste mipkaart mag niet groter zijn dan 4 op beide dimensies
- Animatie : animaties mogen niet langer zijn dan 20 minuten bij 30 FPS (36.000 sleutelframes) en moeten = 8192 doelhoeken bevatten <
- Optimaliseren - Assets moeten worden geoptimaliseerd met behulp van de WindowsMRAsset Converter. Vereist voor Windows-besturingssysteemversies <= 1709* en aanbevolen op Windows-besturingssysteemversies >= 1803
Notitie
De 3D Viewer-app ondersteunt verschillende indelingen en resoluties, maar converteert uiteindelijk modellen naar .glb/glTF voordat ze worden weergegeven in het mixed reality-huis.
De rest van dit artikel bevat een gedetailleerd overzicht van deze vereisten en extra richtlijnen om ervoor te zorgen dat uw modellen goed werken met de windows Mixed Reality-startpagina.
Gedetailleerde richtlijnen
Modellen exporteren
In de startpagina van Windows Mixed Reality wordt verwacht dat 3D-assets worden geleverd met de .glb-bestandsindeling met ingesloten afbeeldingen en binaire gegevens. Glb is de binaire versie van de glTF-indeling, een royaltyvrije open standaard voor 3D-activalevering die wordt onderhouden door de Khronos-groep. Naarmate glTF zich ontwikkelt als industriestandaard voor interoperabele 3D-inhoud, biedt Microsoft dus ondersteuning voor de indeling in Windows-apps en -ervaringen. Als u nog geen glTF-asset hebt gemaakt voordat u een lijst met ondersteunde exporteurs en conversieprogramma's kunt vinden op de github-pagina van de glTF-werkgroep.
Richtlijnen voor modellering
Windows verwacht dat assets worden gegenereerd met behulp van de volgende modelleringsrichtlijnen om compatibiliteit met de Mixed Reality Home-ervaring te garanderen. Houd bij het modelleren in uw programma van uw keuze rekening met de volgende aanbevelingen en beperkingen:
- De as Omhoog moet worden ingesteld op 'Y'.
- De asset moet 'vooruit' naar de positieve Z-as worden gericht.
- Alle activa moeten worden gebouwd op het grondvlak bij de oorsprong van de scène (0,0,0)
- Werkeenheden moeten worden ingesteld op meters en assets, zodat assets op wereldschaal kunnen worden opgesteld
- Alle meshes hoeven niet te worden gecombineerd, maar het wordt aanbevolen als u zich richt op apparaten met beperkte resources
- Alle meshes moeten één materiaal delen, waarbij slechts één textuurset wordt gebruikt voor het hele activum
- UV's moeten worden ingedeeld in een vierkante rangschikking in de ruimte 0-1. Vermijd tegelpatroon, hoewel ze zijn toegestaan.
- Multi-UVs worden niet ondersteund
- Dubbelzijdige materialen worden niet ondersteund
Aantal driehoeken en detailniveaus (LOD's)
De startpagina van Windows Mixed Reality biedt geen ondersteuning voor modellen met meer dan 10.000 driehoeken. Het is raadzaam om uw meshes te trianguleren voordat u exporteert om ervoor te zorgen dat deze niet groter zijn dan dit aantal. Windows MR ondersteunt ook optionele geometrieniveaus van detail (LOD's) om een hoogwaardige en hoogwaardige ervaring te garanderen. De WindowsMRAssetConverter helpt u bij het combineren van 3 versies van uw model in één .glb-model. Windows bepaalt welke LOD moet worden weergegeven op basis van de hoeveelheid schermvastgoed die het model in beslag neemt. Er worden slechts 3 LOD-niveaus ondersteund met de volgende aanbevolen driehoeken:
LOD-niveau | Aanbevolen aantal driehoeken | Maximumaantal driehoeken |
---|---|---|
LOD 0 | 10,000 | 10,000 |
LOD 1 | 5.000 | 10,000 |
LOD 2 | 2500 | 10,000 |
Aantal knooppunten en submesh-limieten
De startpagina van Windows Mixed Reality biedt geen ondersteuning voor modellen met meer dan 64 knooppunten of 32 submeshes per LOD. Knooppunten zijn een concept in de glTF-specificatie waarmee de objecten in de scène worden gedefinieerd. Submeshes worden gedefinieerd in de matrix van primitieven op het mesh in het object.
Functie | Beschrijving | Maximaal ondersteund | Documentatie |
---|---|---|---|
Knooppunten | Objecten in de glTF-scène | 64 per LOD | Hier |
Submeshes | Som van primitieven op alle meshes | 32 per LOD | Hier |
Materiaalrichtlijnen
Patronen moeten worden voorbereid met behulp van een PBR-werkstroom voor metalen ruwheid. Begin met het maken van een volledige set texturen, waaronder Albedo, Normal, Occlusion, Metallic en Ruwheid. Windows Mixed Reality ondersteunt patronen met resoluties tot 4096x4096, maar het wordt aanbevolen dat u met 512x512 werkt. Patronen moeten worden gemaakt bij resoluties in veelvouden van 4. Dit is een vereiste voor de compressie-indeling die wordt toegepast op patronen in de onderstaande exportstappen. Bij het genereren van mip-kaarten of een patroon moet de laagste mip maximaal 4x4 zijn.
Aanbevolen patroongrootte | Maximale textuurgrootte | Laagste mip |
---|---|---|
512x512 | 4096x4096 | max 4x4 |
Kaart albedo (basiskleur)
Onbewerkte kleur zonder lichtinformatie. Deze kaart bevat ook de reflectantie- en diffuse informatie voor respectievelijk metalen (wit in de metalen kaart) en de isolatieoppervlakken (zwart in de metalen kaart).
Normaal
Tangens Space Normal-kaart
Ruwheidskaart
Beschrijft het microoppervlak van het object. Wit 1.0 is ruw Zwart 0.0 is glad. Deze kaart geeft de asset het meeste teken, omdat deze het oppervlak echt beschrijft. Bijvoorbeeld krassen, vingerafdrukken, smudges, grime, enzovoort.
Kaart voor omgevings occlusie
Kaart met waardeschaal met gebieden van occluded licht, waardoor reflecties worden geblokkeerd
Metalen kaart
Vertelt de shader of iets metaal is of niet. Raw Metal = 1,0 wit Non-metal = 0,0 zwart. Er kunnen overgangsgrijswaarden zijn die duiden op iets dat het onbewerkte metaal bedekt, zoals vuil, maar in het algemeen moet deze kaart alleen zwart-wit zijn.
Optimalisaties
Windows Mixed Reality Home biedt een reeks optimalisaties bovenop de kernspecificatie glTF die is gedefinieerd met behulp van aangepaste extensies. Deze optimalisaties zijn vereist voor Windows-versies <= 1709 en aanbevolen voor nieuwere versies van Windows. U kunt eenvoudig elk glTF 2.0-model optimaliseren met behulp van het Windows Mixed Reality Asset Converter dat beschikbaar is op GitHub. Met dit hulpprogramma worden de juiste patroonverpakkingen en optimalisaties uitgevoerd, zoals hieronder is opgegeven. Voor algemeen gebruik raden we u aan de WindowsMRAssetConverter te gebruiken, maar als u meer controle over de ervaring nodig hebt en uw eigen optimalisatiepijplijn wilt bouwen, kunt u de gedetailleerde specificatie hieronder raadplegen.
Notitie
Raadpleeg het artikel over optimalisatie van 3D-modellen voor gebruik in Dynamics 365-toepassingen voor een definitieve lijst met de mogelijkheden voor exacte modellimieten.
Materialen
Om de laadtijd van assets in Mixed Reality-omgevingen te verbeteren, biedt Windows MR ondersteuning voor het weergeven van gecomprimeerde DDS-patronen die zijn verpakt volgens het patroonverpakkingsschema dat in deze sectie is gedefinieerd. DDS-patronen worden verwezen met behulp van de MSFT_texture_dds-extensie. Het comprimeren van patronen wordt ten zeerste aanbevolen.
HoloLens
Op HoloLens gebaseerde mixed reality-ervaringen verwachten dat patronen worden verpakt met behulp van een installatie met twee patronen met behulp van de volgende verpakkingsspecificatie:
glTF-eigenschap | Textuur | Pakschema |
---|---|---|
pbrMetallicRoughness | baseColorTexture | Rood (R), Groen (G), Blauw (B) |
MSFT_packing_normalRoughnessMetallic | normalRoughnessMetallicTexture | Normaal (RG), Ruwheid (B), Metallic (A) |
Bij het comprimeren van de DDS-patronen wordt de volgende compressie verwacht op elke kaart:
Textuur | Verwachte compressie |
---|---|
baseColorTexture, normalRoughnessMetallicTexture | BC7 |
Insluitende headsets (VR)
Pc-gebaseerde Windows Mixed Reality-ervaringen voor insluitende headsets (VR) verwachten dat patronen worden verpakt met behulp van een installatie met drie patronen met behulp van de volgende verpakkingsspecificatie:
Windows OS >= 1803
glTF-eigenschap | Textuur | Pakschema |
---|---|---|
pbrMetallicRoughness | baseColorTexture | Rood (R), Groen (G), Blauw (B) |
MSFT_packing_occlusionRoughnessMetallic | occlusionRoughnessMetallicTexture | Occlusie (R), Ruwheid (G), Metallic (B) |
MSFT_packing_occlusionRoughnessMetallic | normalTexture | Normaal (RG) |
Bij het comprimeren van de DDS-patronen wordt de volgende compressie verwacht op elke kaart:
Textuur | Verwachte compressie |
---|---|
normalTexture | BC5 |
baseColorTexture, occlusionRoughnessMetallicTexture | BC7 |
Windows OS <= 1709
glTF-eigenschap | Textuur | Pakschema |
---|---|---|
pbrMetallicRoughness | baseColorTexture | Rood (R), Groen (G), Blauw (B) |
MSFT_packing_occlusionRoughnessMetallic | ruwheidMetallicOcclusionTexture | Ruwheid (R), Metallic (G), Occlusie (B) |
MSFT_packing_occlusionRoughnessMetallic | normalTexture | Normaal (RG) |
Bij het comprimeren van de DDS-patronen wordt de volgende compressie verwacht op elke kaart:
Textuur | Verwachte compressie |
---|---|
normalTexture | BC5 |
baseColorTexture, ruwheidMetallicOcclusionTexture | BC7 |
Mesh-LOD's toevoegen
Windows MR maakt gebruik van geometrieknooppunt-LOD's om 3D-modellen in verschillende detailniveaus weer te geven, afhankelijk van de dekking op het scherm. Hoewel deze functie technisch niet vereist is, wordt dit aanbevolen voor alle assets. Op dit moment ondersteunt Windows drie detailniveaus. De standaard-LOD is 0, die de hoogste kwaliteit vertegenwoordigt. Andere LOD's worden opeenvolgend genummerd, bijvoorbeeld 1, 2 en worden geleidelijk lager in kwaliteit. Het Windows Mixed Reality Asset Converter ondersteunt het genereren van assets die voldoen aan deze LOD-specificatie door meerdere glTF-modellen te accepteren en deze samen te voegen in één asset met geldige LOD-niveaus. De volgende tabel bevat een overzicht van de verwachte LOD-volgorde en driehoeksdoelen:
LOD-niveau | Aanbevolen aantal driehoeken | Maximumaantal driehoeken |
---|---|---|
LOD 0 | 10,000 | 10,000 |
LOD 1 | 5.000 | 10,000 |
LOD 2 | 2500 | 10,000 |
Wanneer u LOD's gebruikt, geeft u altijd 3 LOD-niveaus op. Ontbrekende LOD's zorgen ervoor dat het model niet onverwacht wordt weergegeven omdat het LOD-systeem overschakelt naar het ontbrekende LOD-niveau. glTF 2.0 biedt momenteel geen ondersteuning voor LOD's als onderdeel van de kernspecificatie. LOD's moeten worden gedefinieerd met behulp van de MSFT_LOD-extensie.
Schermdekking
LOD's worden weergegeven in Windows Mixed Reality op basis van een systeem dat wordt aangestuurd door de schermdekkingswaarde die is ingesteld op elke LOD. Objecten die momenteel een groter deel van de schermruimte gebruiken, worden weergegeven op een hoger LOD-niveau. Schermdekking maakt geen deel uit van de kernspecificatie glTF 2.0 en moet worden opgegeven met behulp van MSFT_ScreenCoverage in de sectie 'extra's' van de MSFT_lod-extensie.
LOD-niveau | Aanbevolen bereik | Standaardbereik |
---|---|---|
LOD 0 | 100% - 50% | 0,5 |
LOD 1 | Onder 50% - 20% | 0,2 |
LOD 2 | Onder 20% - 1% | 0,01 |
LOD 4 | Minder dan 1% | - |
Animatierichtlijnen
Notitie
Deze functie is toegevoegd als onderdeel van de Update van Windows 10 april 2018. In oudere versies van Windows worden deze animaties niet afgespeeld, maar ze worden nog steeds geladen als ze zijn geschreven volgens de richtlijnen in dit artikel.
Het mixed reality-huis ondersteunt geanimeerde glTF-objecten op HoloLens en insluitende (VR)-headsets. Als u animaties op uw model wilt activeren, moet u de extensie Animatiekaart gebruiken in de glTF-indeling. Met deze extensie kunt u animaties in het glTF-model activeren op basis van de aanwezigheid van de gebruiker in de wereld, bijvoorbeeld een animatie activeren wanneer de gebruiker zich dicht bij het object bevindt of wanneer ze ernaar kijken. Als u glTF-object animaties heeft, maar geen triggers definieert, worden de animaties niet afgespeeld. In de onderstaande sectie wordt één werkstroom beschreven voor het toevoegen van deze triggers aan een glTF-object met animatie.
Hulpprogramma's
Download eerst de volgende hulpprogramma's als u ze nog niet hebt. Met deze hulpprogramma's kunt u eenvoudig elk glTF-model openen, bekijken, wijzigingen aanbrengen en opslaan als glTF of .glb:
Het model openen en bekijken
Open eerst het glTF-model in VSCode door het GLTF-bestand naar het editorvenster te slepen. Als u een .glb hebt in plaats van een GLTF-bestand, kunt u het importeren in VSCode met behulp van de glTF Tools-invoegtoepassing die u hebt gedownload. Ga naar 'View -> Command Palette' en begin met het typen van 'glTF' in het opdrachtenpalet en selecteer 'glTF: Importeren uit glb', waarna een bestandskiezer wordt weergegeven waarmee u een .glb wilt importeren.
Nadat u uw glTF-model hebt geopend, ziet u de JSON in het editorvenster. U kunt ook een voorbeeld van het model bekijken in een live 3D-viewer door met de rechtermuisknop op de bestandsnaam te klikken en de opdracht 'glTF: Preview 3D Model' te selecteren in het snelmenu met de rechtermuisknop.
De triggers toevoegen
Animatietriggers worden toegevoegd aan glTF-model JSON met behulp van de extensie Animatietoewijzing. De extensie animatiekaart wordt hier openbaar gedocumenteerd op GitHub (OPMERKING: DIT IS EEN CONCEPTEXTENSIE). Als u de extensie aan uw model wilt toevoegen, schuift u naar het einde van het glTF-bestand in de editor en voegt u het blok extensionsUsed en extensies toe aan uw bestand als deze nog niet bestaan. In de sectie extensionsUsed voegt u een verwijzing toe naar de extensie 'EXT_animation_map'. In het blok Extensies voegt u uw toewijzingen toe aan de animaties in het model.
Zoals vermeld in de specificatie definieert u wat de animatie activeert met behulp van de tekenreeks 'semantische' in een lijst met 'animaties', een matrix met animatie-indexen. In het onderstaande voorbeeld hebben we de animatie opgegeven die moet worden afgespeeld terwijl de gebruiker naar het object kijkt:
"extensionsUsed": [
"EXT_animation_map"
],
"extensions" : {
"EXT_animation_map" : {
"bindings": [
{
"semantic": "GAZE",
"animations": [0]
}
]
}
}
De volgende animatie activeert semantiek die wordt ondersteund door de startpagina van Windows Mixed Reality.
- "ALTIJD": Een animatie voortdurend herhalen
- "HELD": Tijdens de gehele duur wordt een object vastgepakt.
- "GAZE": Lus terwijl een object wordt bekeken
- 'NABIJHEID': Gelused terwijl een viewer zich in de buurt van een object bevindt
- 'AANWIJZEN': gelussen terwijl een gebruiker naar een object verwijst
Opslaan en exporteren
Zodra u de wijzigingen in uw glTF-model hebt aangebracht, kunt u het rechtstreeks opslaan als glTF. U kunt ook met de rechtermuisknop op de naam van het bestand in de editor klikken en 'glTF: Exporteren naar GLB (binair bestand)' selecteren om een .glb te exporteren.
Beperkingen
Animaties kunnen niet langer zijn dan 20 minuten en mogen niet meer dan 36.000 sleutelframes bevatten (20 minuten bij 30 FPS). Bij het gebruik van morphing van doelanimaties is bovendien niet groter dan 8192 doelpunten of minder. Als u deze aantallen overschrijdt, wordt de animatieasset niet ondersteund in het windows Mixed Reality-huis.
Functie | Maximum |
---|---|
Duur | 20 minuten |
Sleutelframes | 36,000 |
Hoekpunten van morfdoel | 8192 |
glTF-implementatieopmerkingen
Windows MR biedt geen ondersteuning voor het spiegelen van geometrie met behulp van negatieve schalen. Geometrie met negatieve schalen leidt waarschijnlijk tot visuele artefacten.
De glTF-asset MOET verwijzen naar de standaardscène met behulp van het scènekenmerk dat moet worden weergegeven door Windows MR. Bovendien vereist de Windows MR glTF-laadprogramma voordat de Update van Windows 10 april 2018 toegangsrechten heeft :
- Moet minimum- en maximumwaarden hebben.
- Type SCALAR moet componentType UNSIGNED_SHORT (5123) of UNSIGNED_INT (5125) zijn.
- Type VEC2 en VEC3 moeten componentType FLOAT (5126) zijn.
De volgende materiaaleigenschappen worden gebruikt vanuit de kernspecificatie glTF 2.0, maar niet vereist:
- baseColorFactor, metallicFactor, ruwheidFactor
- baseColorTexture: moet verwijzen naar een patroon dat is opgeslagen in dds.
- emissiveTexture: Moet verwijzen naar een patroon dat is opgeslagen in dds.
- emissiveFactor
- alphaMode
De volgende materiaaleigenschappen worden genegeerd vanuit de kernspecificatie:
- Alle multi-UVs
- metalRoughnessTexture: Moet in plaats daarvan de door Microsoft geoptimaliseerde patroonverpakking gebruiken die hieronder is gedefinieerd
- normalTexture: Moet in plaats daarvan de door Microsoft geoptimaliseerde patroonverpakking gebruiken die hieronder is gedefinieerd
- normalScale
- occlusionTexture: Moet in plaats daarvan de door Microsoft geoptimaliseerde patroonverpakking gebruiken die hieronder is gedefinieerd
- occlusionStrength
Windows MR biedt geen ondersteuning voor primitieve moduslijnen en punten.
Er wordt slechts één UV-hoekpuntkenmerk ondersteund.
Meer resources
- glTF-exporteurs en conversieprogramma's
- glTF Toolkit
- glTF 2.0-specificatie
- Specificatie van Microsoft glTF LOD-extensie
- Specificatie van uitbreidingen voor mixed reality-patronen
- Specificatie van uitbreidingen voor patronen van HoloLens Mixed Reality-patroon
- Specificatie van Microsoft DDS Textures glTF-extensies