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

La maison Windows Mixed Reality 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 3D profonds dans la maison Windows Mixed Reality. Cet article décrit les instructions relatives à la création de modèles 3D compatibles avec la maison Windows Mixed Reality.

Vue d’ensemble des conditions requises pour les ressources

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

  1. Exportation : les ressources doivent être remises au format de fichier .glb (glTF binaire), .obj ou .fbx
  2. Modélisation - Les ressources doivent être inférieures à 10 000 triangles, n’ont pas plus de 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 dépasser 20 minutes à 30 FPS (36 000 images clés) et doivent contenir <= 8192 sommets cibles cibles morphes
  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ées sur les versions >du système d’exploitation Windows = 1803

Remarque

L’application Visionneuse 3D prend en charge différents formats et résolutions, mais convertit finalement les modèles en .glb/glTF avant de les afficher dans la maison de réalité mixte.

Le reste de cet article inclut une vue d’ensemble détaillée de ces exigences et des instructions supplémentaires pour vous assurer que vos modèles fonctionnent bien avec la maison Windows Mixed Reality.

Instructions détaillées

Exportation de modèles

La maison Windows Mixed Reality s’attend à ce que les ressources 3D soient fournies à l’aide du 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 gratuite gratuite pour la livraison des ressources 3D maintenue par le groupe Khronos. À mesure que glTF évolue en tant que norme du secteur pour le contenu 3D interopérable, Microsoft prend donc en charge le format dans les applications et expériences Windows. Si vous n’avez pas créé de ressource glTF avant de trouver la liste des exportateurs et convertisseurs pris en charge sur la page github du groupe de travail glTF.

Recommandations en matière 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 d’accueil Mixed Reality. Lors de la modélisation dans votre 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 faire face à « avancer » vers l’axe Z positif.
  3. Toutes les ressources doivent être construites sur le plan terrestre à l’origine de la scène (0,0,0)
  4. Les unités de travail doivent être définies sur des compteurs et des 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 limités aux ressources
  6. Tous les maillages doivent partager un matériau, avec un seul ensemble 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 prises en charge
  9. Les matériaux à deux côtés ne sont pas pris en charge

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

La maison Windows Mixed Reality ne prend pas en charge les modèles avec plus de 10 000 triangles. Il est recommandé de trianguler vos maillages avant de les 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 aidera à combiner 3 versions de votre modèle en un seul modèle .glb. Windows détermine le LOD à afficher en fonction de la quantité de biens immobiliers de l’écran que le modèle prend en charge. Seuls 3 niveaux LOD sont pris en charge avec les nombres de triangles recommandés suivants :

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

Nombres de nœuds et limites de sous-mémoire

La maison Windows Mixed Reality ne prend pas en charge les modèles avec plus de 64 nœuds ou 32 sous-tableaux par LOD. Les nœuds sont un concept dans la spécification glTF qui définit les objets de 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-titres Somme des primitives sur tous les maillages 32 par LOD ici

Recommandations en matière

Les textures doivent être préparées à l’aide d’un flux de travail de rugosité métallique PBR. Commencez par créer un ensemble complet de textures, notamment Albedo, Normal, Occlusion, Metal et Roughness. Windows Mixed Reality prend en charge les textures avec des résolutions allant jusqu’à 4096x4096, mais il est recommandé de créer à 512 x 512. Les textures doivent être créées à des résolutions dans plusieurs 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, le mip le plus bas doit être un maximum de 4 x 4.

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

Carte Albedo (couleur de base)

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

Normale

Carte Tangent Space Normal

Carte de rugosité

Décrit la microsurface de l’objet. Blanc 1.0 est brut Noir 0.0 est lisse. Cette carte donne à la ressource le plus de caractère, car elle décrit vraiment la surface. Par exemple, des égratignures, des empreintes digitales, des taches, des grimaces, et ainsi de suite.

Carte d’occlusion ambiante

Carte de l’échelle de valeur montrant les zones de lumière obstruée, qui bloquent 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étal = 0,0 noir. Il peut y avoir des valeurs grises transitionnelles qui indiquent quelque chose couvrant le métal brut comme la saleté, mais en général cette carte doit être noire et blanche uniquement.

Optimisations

La maison Windows Mixed Reality offre une série d’optimisations sur la spécification glTF principale définie à 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 convertisseur d’actifs Windows Mixed Reality disponible sur GitHub. Cet outil effectue l’empaquetage et les optimisations de texture corrects, comme indiqué ci-dessous. Pour une utilisation générale, nous vous recommandons d’utiliser WindowsMRAssetConverter, mais si vous avez besoin d’un contrôle plus approfondi 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.

Remarque

Pour obtenir la liste définitive des possibilités pour les limites exactes du modèle, reportez-vous à l’article d’optimisation du modèle 3D à utiliser dans les applications Dynamics 365.

Matériaux

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

HoloLens

Les expériences de réalité mixte basées sur HoloLens s’attendent à ce que les textures soient emballées à l’aide d’une configuration de 2 textures à l’aide de la spécification d’emballage suivante :

glTF, propriété Texture Schéma d’emballage
pbrMessageicRoughness baseColorTexture Rouge (R), Vert (G), Bleu (B)
MSFT_packing_normalRoughnessMetallic normalRoughnessMessageicTexture 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, normalRoughnessMessageicTexture BC7

Casques immersifs (VR)

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

Système d’exploitation >Windows = 1803

glTF, propriété Texture Schéma d’emballage
pbrMessageicRoughness baseColorTexture Rouge (R), Vert (G), Bleu (B)
MSFT_packing_occlusionRoughnessMetallic occlusionRoughnessTexticTexture 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, occlusionRoughnessMessageicTexture BC7
Système d’exploitation <Windows = 1709

glTF, propriété Texture Schéma d’emballage
pbrMessageicRoughness baseColorTexture Rouge (R), Vert (G), Bleu (B)
MSFT_packing_occlusionRoughnessMetallic roughness ProbeicOcclusionTexture 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, roughness AllocateicOcclusionTexture BC7

Ajout de loD de maillage

Windows MR utilise des LOD de nœud geometry pour afficher des modèles 3D dans différents niveaux de détail en fonction de la couverture à l’écran. Bien que cette fonctionnalité ne soit pas requise techniquement, 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, qui représente la plus haute qualité. D’autres LOD sont numérotées séquentiellement, par exemple, 1, 2 et obtiennent progressivement moins de qualité. 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 présente les cibles de tri et de triangle LOD attendues :

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

Lorsque vous utilisez des LOD, spécifiez toujours 3 niveaux LOD. Les LOD manquants entraînent le rendu inattendu du modèle, car 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 principale. 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 de l’é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 supérieur. 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 d’animation

Remarque

Cette fonctionnalité a été ajoutée dans le cadre de la mise à jour d’avril 2018 de Windows 10. Sur les versions antérieures de Windows, ces animations ne seront pas lues, mais elles seront toujours chargées 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 Animation Map 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 lorsqu’il le regarde. Si vous avez des animations, mais que vous ne définissez pas les déclencheurs, les animations ne seront pas lues. La section ci-dessous décrit un flux de travail pour 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 complément glTF Tools que vous avez téléchargé. Accédez à « Affichage -> Palette de commandes », puis commencez à taper « glTF » dans la palette de commandes, puis sélectionnez « glTF : Importer à partir de glb », ce qui affiche un sélecteur de fichiers pour vous permettre d’importer un fichier .glb avec.

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 active 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 Animation Map. L’extension de carte d’animation est documentée publiquement ici sur GitHub (REMARQUE : IL S’AGIT D’UNE EXTENSION BROUILLON). Pour ajouter l’extension à votre modèle, faites simplement défiler jusqu’à la fin du fichier glTF dans l’éditeur et ajoutez le bloc « 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 » dans 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 examine 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 la page d’accueil Windows Mixed Reality.

  • « ALWAYS » : boucler constamment une animation
  • « HELD » : bouclé pendant toute la durée qu’un objet est saisi.
  • « GAZE » : bouclé pendant qu’un objet est examiné
  • « PROXIMITY » : 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 dépasser 20 minutes et ne peuvent pas contenir plus de 36 000 images clés (20 minutes à 30 FPS). En outre, lors de l’utilisation d’animations basées sur des cibles morphes, ne dépassez pas 8192 sommets cibles ou moins. Le dépassement de ces nombres entraîne la non prise en charge de l’élément multimédia animé dans la maison Windows Mixed Reality.

Fonctionnalité Maximale
Durée 20 minutes
Images clés 36 000
Sommets cibles Morphes 8 192

Notes d’implémentation glTF

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

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

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

Les propriétés matérielles suivantes sont utilisées à partir de la spécification glTF 2.0 de base, mais 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 à partir des spécifications principales :

  • Toutes les UV multiples
  • metalRoughnessTexture : doit utiliser à la place l’emballage de texture optimisés par Microsoft défini ci-dessous
  • normalTexture : doit utiliser à la place le package de texture optimisé microsoft défini ci-dessous
  • normalScale
  • occlusionTexture : doit plutôt utiliser le package de texture optimisé microsoft défini ci-dessous
  • occlusionStrength

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

Seul un seul attribut de vertex UV est pris en charge.

Plus de ressources

Voir aussi