Créer des modèles 3D à utiliser dans la page d’accueil

Le Windows Mixed Reality domicile est le point de départ où les utilisateurs atterrissent avant de lancer des applications. Lors de la conception de votre application pour les casques Windows Mixed Reality, utilisez un modèle 3D comme lanceur d’applications et placez des liens profonds 3D dans le Windows Mixed Reality maison. Cet article décrit les instructions relatives à la création de modèles 3D compatibles avec le Windows Mixed Reality domicile.

Vue d’ensemble des exigences en matière de ressources

Lors de la création de modèles 3D pour Windows Mixed Reality, toutes les ressources doivent respecter certaines exigences :

  1. Exportation : les ressources doivent être remises au format de fichier .glb (binary glTF), .obj ou .fbx
  2. Modélisation : les ressources doivent être inférieures à 10 000 triangles, avoir au maximum 64 nœuds et 32 sous-cœurs par LOD
  3. Matériaux - Les textures ne peuvent pas être supérieures à 4096 x 4096 et la plus petite carte mip ne doit pas être supérieure à 4 sur l’une ou l’autre dimension
  4. Animation : les animations ne peuvent pas durer plus de 20 minutes à 30 FPS (36 000 images clés) et doivent contenir <= 8192 sommets cibles de morphose
  5. Optimisation : les ressources doivent être optimisées à l’aide de WindowsMRAssetConverter. Obligatoire sur les versions <du système d’exploitation Windows = 1709* et recommandé sur les versions >du système d’exploitation Windows = 1803

Notes

L’application Visionneuse 3D prend en charge différents formats et résolutions, mais convertit les modèles en .glb/glTF avant de les afficher dans le Mixed Reality accueil.

Le reste de cet article comprend une vue d’ensemble détaillée de ces exigences et des instructions supplémentaires pour garantir que vos modèles fonctionnent correctement avec le Windows Mixed Reality maison.

Conseils détaillés

Exportation de modèles

Le Windows Mixed Reality accueil s’attend à ce que les ressources 3D soient fournies au format de fichier .glb avec des images incorporées et des données binaires. Glb est la version binaire du format glTF, qui est une norme ouverte libre de redevances pour la livraison d’actifs 3D gérée par le groupe Khronos. À mesure que glTF évolue en tant que norme du secteur pour le contenu 3D interopérable, la prise en charge du format par Microsoft dans les applications et expériences Windows sera également prise en charge. Si vous n’avez pas créé de ressource glTF avant, vous pouvez trouver la liste des exportateurs et convertisseurs pris en charge sur la page github du groupe de travail glTF.

Instructions de modélisation

Windows s’attend à ce que les ressources soient générées à l’aide des instructions de modélisation suivantes pour garantir la compatibilité avec l’expérience Mixed Reality à domicile. Lorsque vous modélisez le programme de votre choix, gardez à l’esprit les recommandations et limitations suivantes :

  1. L’axe haut doit être défini sur « Y ».
  2. La ressource doit être orientée vers l’avant vers l’axe Z positif.
  3. Toutes les ressources doivent être construites sur le plan au sol à l’origine de la scène (0,0,0)
  4. Les unités de travail doivent être définies sur les compteurs et les ressources afin que les ressources puissent être créées à l’échelle mondiale
  5. Tous les maillages n’ont pas besoin d’être combinés, mais il est recommandé si vous ciblez des appareils à ressources limitées
  6. Tous les maillages doivent partager un seul matériau, avec un seul jeu de textures utilisé pour l’ensemble de la ressource
  7. Les UVs doivent être disposés dans une disposition carrée dans l’espace 0-1. Évitez les textures de mosaïques bien qu’elles soient autorisées.
  8. Les multi-UVs ne sont pas pris en charge
  9. Les matériaux recto verso ne sont pas pris en charge

Nombres de triangles et niveaux de détail (LOD)

La Windows Mixed Reality maison ne prend pas en charge les modèles avec plus de 10 000 triangles. Il est recommandé de trianguler vos maillages avant d’exporter pour vous assurer qu’ils ne dépassent pas ce nombre. Windows MR prend également en charge les niveaux de détail (LOD) facultatifs pour garantir une expérience performante et de haute qualité. WindowsMRAssetConverter vous aide à combiner 3 versions de votre modèle en un seul modèle .glb. Windows détermine le LOD à afficher en fonction de la quantité d’espace d’écran que le modèle prend. Seuls 3 niveaux LOD sont pris en charge avec les nombres de triangles recommandés suivants :

Niveau LOD Nombre de triangles recommandé Nombre maximal de triangles
LOD 0 10 000 10 000
LOD 1 5 000 10 000
LOD 2 2 500 10 000

Nombre de nœuds et limites de sous-èmesh

Le Windows Mixed Reality accueil ne prend pas en charge les modèles avec plus de 64 nœuds ou 32 sous-cœurs par LOD. Les nœuds sont un concept dans la spécification glTF qui définit les objets dans la scène. Les sous-ensembles sont définis dans le tableau de primitives sur le maillage de l’objet .

Fonctionnalité Description Max pris en charge Documentation
Nœuds Objets dans la scène glTF 64 par LOD Ici
Sous-cœurs Somme des primitives sur tous les maillages 32 par LOD Ici

Recommandations relatives aux matériaux

Les textures doivent être préparées à l’aide d’un flux de travail de rugosité des métaux PBR. Commencez par créer un ensemble complet de textures, notamment Albedo, Normal, Occlusion, Metallic et Roughness. Windows Mixed Reality prend en charge les textures avec des résolutions allant jusqu’à 4096 x 4096, mais il est recommandé de créer à 512 x 512. Les textures doivent être créées à des résolutions dans des multiples de 4. Il s’agit d’une exigence pour le format de compression appliqué aux textures dans les étapes d’exportation décrites ci-dessous. Lors de la génération de mappages mip ou d’une texture, la mip la plus faible doit être un maximum de 4x4.

Taille de texture recommandée Taille maximale de la texture Mip le plus faible
512 x 512 4096x4096 max 4x4

Carte Albedo (couleur de base)

Couleur brute sans informations d’éclairage. Cette carte contient également la réflectance et les informations diffuses pour les surfaces métalliques (blanc dans la carte métallique) et isolant (noir dans la carte métallique) respectivement.

Normal

Carte Tangent Space Normal

Carte de rugosité

Décrit la microsurface de l’objet. Blanc 1.0 est rugueuse Noir 0.0 est lisse. Cette carte donne à l’élément multimédia le plus de caractère, car il décrit vraiment la surface. Par exemple, les rayures, les empreintes digitales, les taches, la crasse, etc.

Carte d’occlusion ambiante

Carte d’échelle des valeurs montrant les zones de lumière obstruée, ce qui bloque les réflexions

Carte métallique

Indique au nuanceur si quelque chose est métallique ou non. Métal brut = 1,0 blanc Non métallique = 0,0 noir. Il peut y avoir des valeurs grises de transition qui indiquent quelque chose couvrant le métal brut, comme la saleté, mais en général cette carte doit être en noir et blanc uniquement.

Optimisations

Windows Mixed Reality accueil propose une série d’optimisations par-dessus les spécifications glTF principales définies à l’aide d’extensions personnalisées. Ces optimisations sont requises sur les versions <de Windows = 1709 et recommandées sur les versions plus récentes de Windows. Vous pouvez facilement optimiser n’importe quel modèle glTF 2.0 à l’aide du Windows Mixed Reality Asset Converter disponible sur GitHub. Cet outil effectue l’empaquetage et les optimisations de textures corrects, comme indiqué ci-dessous. Pour une utilisation générale, nous vous recommandons d’utiliser WindowsMRAssetConverter, mais si vous avez besoin de davantage de contrôle sur l’expérience et que vous souhaitez créer votre propre pipeline d’optimisation, vous pouvez vous référer à la spécification détaillée ci-dessous.

Notes

Pour obtenir une liste définitive des possibilités de limites de modèle exactes, reportez-vous à l’article Optimisation des modèles 3D pour une utilisation dans Dynamics 365 applications.

Matériaux

Pour améliorer le temps de chargement des ressources dans Mixed Reality environnements Windows MR prend en charge le rendu des textures DDS compressées en fonction du schéma d’empaquetage de textures défini dans cette section. Les textures DDS sont référencées à l’aide de l’extension MSFT_texture_dds. Il est fortement recommandé de compresser des textures.

HoloLens

Les expériences de réalité mixte holoLens s’attendent à ce que les textures soient empaquetées à l’aide d’une configuration à 2 textures à l’aide de la spécification de compression suivante :

glTF, propriété Texture Schéma d’emballage
pbrMetallicRoughness baseColorTexture Rouge (R), Vert (G), Bleu (B)
MSFT_packing_normalRoughnessMetallic normalRoughnessMetallicTexture Normal (RG), Rugosité (B), Métallique (A)

Lors de la compression des textures DDS, la compression suivante est attendue sur chaque carte :

Texture Compression attendue
baseColorTexture, normalRoughnessMetallicTexture BC7

Casques immersifs (VR)

Les expériences de Windows Mixed Reality basées sur PC pour les casques immersifs (VR) s’attendent à ce que les textures soient emballées à l’aide d’une configuration à 3 textures en utilisant la spécification d’empaquetage suivante :

Système d’exploitation >Windows = 1803

glTF, propriété Texture Schéma d’emballage
pbrMetallicRoughness baseColorTexture Rouge (R), Vert (G), Bleu (B)
MSFT_packing_occlusionRoughnessMetallic occlusionRoughnessMetallicTexture Occlusion (R), Rugosité (G), Métallique (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normal (RG)

Lors de la compression des textures DDS, la compression suivante est attendue sur chaque carte :

Texture Compression attendue
normalTexture BC5
baseColorTexture, occlusionRoughnessMetallicTexture BC7
Système d’exploitation <Windows = 1709

glTF, propriété Texture Schéma d’emballage
pbrMetallicRoughness baseColorTexture Rouge (R), Vert (G), Bleu (B)
MSFT_packing_occlusionRoughnessMetallic roughnessMetallicOcclusionTexture Rugosité (R), Métallique (G), Occlusion (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normal (RG)

Lors de la compression des textures DDS, la compression suivante est attendue sur chaque carte :

Texture Compression attendue
normalTexture BC5
baseColorTexture, roughnessMetallicOcclusionTexture BC7

Ajout de loDs de maillage

Windows MR utilise des LOD de nœuds géométriques pour afficher les modèles 3D dans différents niveaux de détail en fonction de la couverture à l’écran. Bien que cette fonctionnalité ne soit techniquement pas obligatoire, elle est recommandée pour toutes les ressources. Actuellement, Windows prend en charge 3 niveaux de détail. Le LOD par défaut est 0, ce qui représente la qualité la plus élevée. Les autres LOD sont numérotés séquentiellement, par exemple, 1, 2 et deviennent progressivement inférieurs en qualité. Le Windows Mixed Reality Asset Converter prend en charge la génération de ressources qui répondent à cette spécification LOD en acceptant plusieurs modèles glTF et en les fusionnant en une seule ressource avec des niveaux LOD valides. Le tableau suivant décrit les cibles de tri LOD et de triangle attendues :

Niveau LOD Nombre de triangles recommandé Nombre maximal de triangles
LOD 0 10 000 10 000
LOD 1 5 000 10 000
LOD 2 2 500 10 000

Lors de l’utilisation de loDs, spécifiez toujours 3 niveaux LOD. Les LOD manquants entraînent l’absence de rendu inattendu du modèle lorsque le système LOD bascule vers le niveau LOD manquant. glTF 2.0 ne prend actuellement pas en charge les LOD dans le cadre de la spécification de base. Les LOD doivent être définis à l’aide de l’extension MSFT_LOD.

Couverture de l’écran

Les loD sont affichés dans Windows Mixed Reality en fonction d’un système piloté par la valeur de couverture d’écran définie sur chaque LOD. Les objets qui consomment actuellement une plus grande partie de l’espace d’écran sont affichés à un niveau LOD plus élevé. La couverture de l’écran ne fait pas partie de la spécification glTF 2.0 de base et doit être spécifiée à l’aide de MSFT_ScreenCoverage dans la section « extras » de l’extension MSFT_lod.

Niveau LOD Plage recommandée Plage par défaut
LOD 0 100% - 50% 0.5
LOD 1 Moins de 50 % - 20 % 0.2
LOD 2 Moins de 20 % - 1 % 0,01
LOD 4 Moins de 1 % -

Instructions relatives à l’animation

Notes

Cette fonctionnalité a été ajoutée dans le cadre de Windows 10 mise à jour d’avril 2018. Sur les versions antérieures de Windows, ces animations ne sont pas lues, mais elles se chargent toujours si elles sont créées conformément aux instructions de cet article.

La maison de réalité mixte prend en charge les objets glTF animés sur HoloLens et les casques immersifs (VR). Si vous souhaitez déclencher des animations sur votre modèle, vous devez utiliser l’extension Carte d’animation au format glTF. Cette extension vous permet de déclencher des animations dans le modèle glTF en fonction de la présence de l’utilisateur dans le monde, par exemple déclencher une animation lorsque l’utilisateur est proche de l’objet ou pendant qu’il le regarde. Si votre objet glTF a des animations, mais ne définit pas de déclencheurs, les animations ne sont pas lues. La section ci-dessous décrit un workflow permettant d’ajouter ces déclencheurs à n’importe quel objet glTF animé.

Outils

Tout d’abord, téléchargez les outils suivants si vous ne les avez pas déjà. Ces outils facilitent l’ouverture d’un modèle glTF, l’aperçu, les modifications et l’enregistrement en tant que glTF ou .glb :

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

Ouverture et aperçu du modèle

Commencez par ouvrir le modèle glTF dans VSCode en faisant glisser le fichier .glTF dans la fenêtre de l’éditeur. Si vous avez un fichier .glb au lieu d’un fichier .glTF, vous pouvez l’importer dans VSCode à l’aide du module complémentaire glTF Tools que vous avez téléchargé. Accédez à « Affichage -> Palette de commandes », puis commencez à taper « glTF » dans la palette de commandes et sélectionnez « glTF : Importer à partir de glb », ce qui affiche un sélecteur de fichiers avec lequel importer un fichier .glb.

Une fois que vous avez ouvert votre modèle glTF, vous devez voir le JSON dans la fenêtre de l’éditeur. Vous pouvez également afficher un aperçu du modèle dans une visionneuse 3D en direct à l’aide de en cliquant avec le bouton droit sur le nom du fichier et en sélectionnant le raccourci de commande « glTF : Aperçu du modèle 3D » dans le menu contextuel.

Ajout des déclencheurs

Les déclencheurs d’animation sont ajoutés au json du modèle glTF à l’aide de l’extension Carte d’animation. L’extension de carte d’animation est documentée publiquement ici sur GitHub (REMARQUE : THIS IS A DRAFT EXTENSION). Pour ajouter l’extension à votre modèle, faites simplement défiler jusqu’à la fin du fichier glTF dans l’éditeur et ajoutez les blocs « extensionsUsed » et « extensions » à votre fichier s’ils n’existent pas déjà. Dans la section « extensionsUsed », vous allez ajouter une référence à l’extension « EXT_animation_map » et dans le bloc « extensions », vous allez ajouter vos mappages aux animations du modèle.

Comme indiqué dans la spécification , vous définissez ce qui déclenche l’animation à l’aide de la chaîne « sémantique » sur une liste d'« animations », qui est un tableau d’index d’animation. Dans l’exemple ci-dessous, nous avons spécifié l’animation à lire pendant que l’utilisateur regarde l’objet :

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

La sémantique des déclencheurs d’animation suivante est prise en charge par l’Windows Mixed Reality accueil.

  • « ALWAYS » : boucler constamment une animation
  • « HELD » : bouclé pendant toute la durée pendant laquelle un objet est saisi.
  • « REGARD » : bouclé pendant qu’un objet est examiné
  • « PROXIMITÉ » : bouclé pendant qu’une visionneuse est proche d’un objet
  • « POINTING » : bouclé pendant qu’un utilisateur pointe vers un objet

Enregistrement et exportation

Une fois que vous avez apporté les modifications à votre modèle glTF, vous pouvez l’enregistrer directement en tant que glTF. Vous pouvez également cliquer avec le bouton droit sur le nom du fichier dans l’éditeur et sélectionner « glTF : Exporter vers GLB (fichier binaire) » pour exporter un fichier .glb.

Restrictions

Les animations ne peuvent pas durer plus de 20 minutes et ne peuvent pas contenir plus de 36 000 images clés (20 minutes à 30 FPS). En outre, lorsque vous utilisez des animations basées sur des cibles morphes, elles ne dépassent pas 8192 sommets de cible morphes ou moins. Le dépassement de ces nombres entraîne la non prise en charge de la ressource animée dans la Windows Mixed Reality maison.

Fonctionnalité Maximale
Duration 20 minutes
Images clés 36 000
Sommets cibles morphes 8 192

Notes d’implémentation glTF

Windows MR ne prend pas en charge le glissement de géométrie à l’aide d’échelles négatives. La géométrie avec des échelles négatives entraînera probablement des artefacts visuels.

La ressource glTF DOIT pointer vers la scène par défaut à l’aide de l’attribut scene à afficher par Windows MR. En outre, le chargeur Windows MR glTF avant la mise à jour Windows 10 avril 2018nécessite des accesseurs :

  • Doit avoir des valeurs minimales et maximales.
  • Le type SCALAR doit être componentType UNSIGNED_SHORT (5123) ou UNSIGNED_INT (5125).
  • Les types VEC2 et VEC3 doivent être componentType FLOAT (5126).

Les propriétés de matériau suivantes sont utilisées à partir des spécifications de base glTF 2.0, mais elles ne sont pas obligatoires :

  • baseColorFactor, metallicFactor, roughnessFactor
  • baseColorTexture : doit pointer vers une texture stockée dans des dds.
  • emissiveTexture : doit pointer vers une texture stockée dans des dds.
  • emissiveFactor
  • alphaMode

Les propriétés matérielles suivantes sont ignorées des spécifications principales :

  • Tous les multi-V
  • metalRoughnessTexture : doit plutôt utiliser l’empaquetage de texture optimisé Microsoft défini ci-dessous
  • normalTexture : doit à la place utiliser l’empaquetage de texture optimisé Microsoft défini ci-dessous
  • normalScale
  • occlusionTexture : doit utiliser à la place l’empaquetage de texture optimisé Microsoft défini ci-dessous
  • occlusionStrength

Windows MR ne prend pas en charge les lignes et les points en mode primitif.

Un seul attribut de vertex UV est pris en charge.

Plus de ressources

Voir aussi