3D-modellen maken voor thuisgebruik

De Windows Mixed Reality home is het beginpunt waar gebruikers terechtkomen voordat ze toepassingen starten. Wanneer u uw toepassing ontwerpt voor Windows Mixed Reality headsets, gebruikt u een 3D-model als startprogramma voor apps en plaatst u 3D-dieptekoppelingen in de Windows Mixed Reality startpagina. In dit artikel worden de richtlijnen beschreven voor het maken van 3D-modellen die compatibel zijn met de Windows Mixed Reality home.

Overzicht van assetvereisten

Bij het maken van 3D-modellen voor Windows Mixed Reality zijn er enkele vereisten waaraan alle assets moeten voldoen:

  1. Exporteren : assets moeten worden geleverd in de bestandsindeling .glb (binary glTF), .obj of .fbx
  2. Modellering : assets moeten kleiner zijn dan 10.000 driehoeken, niet meer dan 64 knooppunten en 32 submeshes per LOD
  3. Materialen : texturen mogen niet groter zijn dan 4096 x 4096 en de kleinste mip-kaart mag niet groter zijn dan 4 op een van beide dimensies
  4. Animatie: animaties mogen niet langer zijn dan 20 minuten bij 30 FPS (36.000 keyframes) en moeten = 8192 morphing doel hoekpunten bevatten <
  5. Optimaliseren: assets moeten worden geoptimaliseerd met windowsMRAssetConverter. Vereist voor Versies van Windows-besturingssysteem <= 1709* en aanbevolen voor 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 de Mixed Reality startpagina.

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 home.

Gedetailleerde richtlijnen

Modellen exporteren

De Windows Mixed Reality home verwacht dat 3D-assets worden geleverd met behulp van de GLB-bestandsindeling met ingesloten afbeeldingen en binaire gegevens. Glb is de binaire versie van de glTF-indeling, een royaltyvrije open standaard voor de levering van 3D-assets die wordt onderhouden door de Khronos-groep. Naarmate glTF zich ontwikkelt als een industriestandaard voor interoperabele 3D-inhoud, wordt de ondersteuning van Microsoft voor de indeling in Windows-apps en -ervaringen hetzelfde. Als u nog geen glTF-asset hebt gemaakt, kunt u een lijst met ondersteunde exporteurs en conversieprogramma's 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 thuiservaring te garanderen. Houd bij het modelleren in uw programma van uw keuze rekening met de volgende aanbevelingen en beperkingen:

  1. De as Omhoog moet worden ingesteld op 'Y'.
  2. Het activum moet vooruit gericht zijn op de positieve Z-as.
  3. Alle activa moeten worden gebouwd op het grondvlak bij de oorsprong van de scène (0,0,0)
  4. Werkeenheden moeten worden ingesteld op meters en activa, zodat activa op wereldschaal kunnen worden gemaakt
  5. Alle meshes hoeven niet te worden gecombineerd, maar het wordt aanbevolen als u zich richt op apparaten met beperkte resources
  6. Alle meshes moeten één materiaal delen, waarbij slechts één textuurset wordt gebruikt voor de hele asset
  7. UV's moeten worden ingedeeld in een vierkante opstelling in de 0-1-ruimte. Vermijd tegels, hoewel dit wel is toegestaan.
  8. Multi-UVs worden niet ondersteund
  9. Dubbelzijdige materialen worden niet ondersteund

Aantal driehoeken en detailniveaus (LOD's)

De Windows Mixed Reality home biedt geen ondersteuning voor modellen met meer dan 10.000 driehoeken. Het is raadzaam om de meshes te trianguleren voordat u exporteert om ervoor te zorgen dat ze niet groter zijn dan dit aantal. Windows MR biedt ook ondersteuning voor optionele geometrieniveaus van detail (LOD's) om een performante en hoogwaardige ervaring te garanderen. Met WindowsMRAssetConverter kunt u 3 versies van uw model combineren in één .glb-model. Windows bepaalt welke LOD moet worden weergegeven op basis van de hoeveelheid schermomgeving die het model in beslag neemt. Er worden slechts 3 LOD-niveaus ondersteund met de volgende aanbevolen driehoekstellingen:

LOD-niveau Aanbevolen aantal driehoeken Maximum aantal driehoeken
LOD 0 10.000 10.000
LOD 1 5\.000 10.000
LOD 2 2500 10.000

Aantal knooppunten en submesh-limieten

De Windows Mixed Reality home 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. Submehes worden gedefinieerd in de matrix van primitieven op het net in het object.

Functie Beschrijving Max. 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

Texturen moeten worden voorbereid met behulp van een PBR-werkstroom voor metaalruwheid. Begin met het maken van een volledige set patronen, waaronder Albedo, Normal, Occlusion, Metallic en Ruwheid. Windows Mixed Reality ondersteunt texturen met resoluties tot 4096x4096, maar het wordt aanbevolen dat u ontwerpt op 512x512. Patronen moeten worden geschreven bij resoluties in veelvouden van 4. Dit is een vereiste voor de compressieindeling die wordt toegepast op patronen in de onderstaande exportstappen. Bij het genereren van mip-kaarten of een textuur moet de laagste mip maximaal 4x4 zijn.

Aanbevolen textuurgrootte Maximale textuurgrootte Laagste mip
512x512 4096x4096 max 4x4

Albedo-kaart (basiskleur)

Onbewerkte kleur zonder lichtinformatie. Deze kaart bevat ook de reflectie- en diffuse informatie voor respectievelijk metalen (wit in de metalen kaart) en isolator (zwart in de metalen kaart).

Normaal

Standaardkaart van de tangensruimte

Ruwheidskaart

Beschrijft het microoppervlak van het object. Wit 1.0 is ruw Zwart 0.0 is glad. Deze kaart geeft de asset het meeste karakter, omdat het echt het oppervlak beschrijft. Bijvoorbeeld krassen, vingerafdrukken, vlekken, vuil, enzovoort.

Omgevings occlusiekaart

Waardeschaalkaart met gebieden met ge occludeerd licht, waardoor reflecties worden geblokkeerd

Metalen kaart

Geeft aan de arcering door of iets van 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 worden aanbevolen voor nieuwere versies van Windows. U kunt eenvoudig elk glTF 2.0-model optimaliseren met behulp van de Windows Mixed Reality Asset Converter die beschikbaar is op GitHub. Met dit hulpprogramma worden de juiste textuurverpakkingen 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 3D-modeloptimalisatie voor gebruik in Dynamics 365 toepassingen voor een definitieve lijst van de mogelijkheden voor exacte modellimieten.

Materialen

Om de laadtijd van assets in Mixed Reality omgevingen te verbeteren, ondersteunt Windows MR het weergeven van gecomprimeerde DDS-patronen die zijn verpakt volgens het patroonverpakkingsschema dat in deze sectie is gedefinieerd. Naar DDS-patronen wordt verwezen met behulp van de extensie MSFT_texture_dds. 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 Verpakkingsschema
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 op elke kaart verwacht:

Textuur Verwachte compressie
baseColorTexture, normalRoughnessMetallicTexture BC7

Immersive (VR)-headsets

Pc-gebaseerde Windows Mixed Reality ervaringen voor immersive (VR) headsets verwachten dat texturen worden verpakt met behulp van een installatie met drie patronen met behulp van de volgende verpakkingsspecificatie:

Windows OS >= 1803

glTF, eigenschap Textuur Verpakkingsschema
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 op elke kaart verwacht:

Textuur Verwachte compressie
normalTexture BC5
baseColorTexture, occlusionRoughnessMetallicTexture BC7
Windows-besturingssysteem <= 1709

glTF, eigenschap Textuur Verpakkingsschema
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 op elke kaart verwacht:

Textuur Verwachte compressie
normalTexture BC5
baseColorTexture, ruwheidMetallicOcclusionTexture BC7

Mesh-LOD's toevoegen

Windows MR gebruikt 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 deze aanbevolen voor alle assets. Momenteel ondersteunt Windows 3 detailniveaus. De standaard-LOD is 0, wat staat voor de hoogste kwaliteit. Andere LOD's worden opeenvolgend genummerd, bijvoorbeeld 1, 2 en worden steeds 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 volgorde van de lod 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 als 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 extensie MSFT_LOD.

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 verbruiken, 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 Windows 10 update van april 2018. In oudere versies van Windows worden deze animaties niet afgespeeld, maar ze worden nog steeds geladen als ze zijn gemaakt volgens de richtlijnen in dit artikel.

De startpagina voor mixed reality ondersteunt glTF-objecten met animatie op HoloLens en immersive (VR)-headsets. Als u animaties op uw model wilt activeren, moet u de extensie Animatiekaart in de glTF-indeling gebruiken. Met deze extensie kunt u animaties activeren in het glTF-model 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 terwijl deze het bekijkt. Als uw 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 deze nog niet hebt. Met deze hulpprogramma's kunt u eenvoudig elk glTF-model openen, er een voorbeeld van bekijken, wijzigingen aanbrengen en opslaan als glTF of .glb:

  1. Visual Studio Code
  2. glTF Tools voor Visual Studio Code

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 dit importeren in VSCode met behulp van de glTF Tools-invoegtoepassing die u hebt gedownload. Ga naar 'Weergave -> Opdrachtpalet' en typ 'glTF' in het opdrachtpalet en selecteer 'glTF: Importeren uit glb'. Er verschijnt een bestandskiezer waarmee u een .glb kunt importeren.

Zodra 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 met behulp van de door met de rechtermuisknop op de bestandsnaam te klikken en de opdrachtsneltoets 'glTF: Preview 3D-model' te selecteren in het snelmenu.

De triggers toevoegen

Animatietriggers worden toegevoegd aan JSON-model glTF met behulp van de extensie Animation Map. De extensie van de 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 Extensions toe aan uw bestand als deze nog niet bestaan. In de sectie extensionsUsed voegt u een verwijzing toe naar de extensie 'EXT_animation_map' en 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 'semantische' tekenreeks in een lijst met 'animaties', een matrix van animatie-indexen. In het onderstaande voorbeeld hebben we de animatie opgegeven die moet worden afgespeeld terwijl de gebruiker naar het object staart:

  "extensionsUsed": [
    "EXT_animation_map"
  ],
  "extensions" : {
      "EXT_animation_map" : {
            "bindings": [
                {
                    "semantic": "GAZE",
                    "animations": [0]
                }
            ]
      }
  }

De volgende animatietriggers worden ondersteund door de Windows Mixed Reality home.

  • 'ALTIJD': een animatie voortdurend herhalen
  • "HELD": wordt gedurende de hele duur van een object gelust.
  • 'STAREN': wordt in een lus geplaatst terwijl een object wordt bekeken
  • 'NABIJHEID': wordt gelust terwijl een kijker zich in de buurt van een object bevindt
  • 'AANWIJZEN': wordt in een lus geplaatst terwijl een gebruiker naar een object wijst

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 mogen niet langer zijn dan 20 minuten en mogen niet meer dan 36.000 keyframes bevatten (20 minuten bij 30 FPS). Bij het gebruik van morphing op doel gebaseerde animaties mag u bovendien niet meer dan 8192 morphing doel hoekpunten of minder overschrijden. Als u deze aantallen overschrijdt, wordt de asset met animatie niet ondersteund in de Windows Mixed Reality home.

Functie Maximum
Duur 20 minuten
Hoofdframes 36,000
Morph-doelhoeken 8192

GlTF-implementatienotities

Windows MR biedt geen ondersteuning voor de geometrie van het spiegelen 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. Daarnaast vereist het Windows MR glTF-laadprogramma vóór de update van Windows 10 april 2018 accessors:

  • Moet de minimum- en maximumwaarden hebben.
  • Het 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 van de kern glTF 2.0-specificatie, 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 op basis van de kernspecificaties:

  • Alle multi-UVs
  • metalRoughnessTexture: moet in plaats daarvan de door Microsoft geoptimaliseerde textuurverpakking gebruiken die hieronder is gedefinieerd
  • normalTexture: moet in plaats daarvan een voor Microsoft geoptimaliseerde textuurverpakking 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 regels en punten in de primitieve modus.

Slechts één UV-hoekpuntkenmerk wordt ondersteund.

Meer bronnen

Zie ook