Démarrage rapide : Convertir un modèle pour le rendu

Dans Démarrage rapide : Afficher un modèle avec Unity, vous avez appris à utiliser l’exemple de projet Unity pour effectuer le rendu d’un modèle intégré.

Ce guide montre comment convertir vos propres modèles, en procédant comme suit :

  • Configurer un compte de stockage Blob Azure pour l’entrée et la sortie
  • Charger et convertir un modèle 3D à utiliser avec Azure Remote Rendering
  • Inclure le modèle 3D converti dans une application pour le rendu

Prérequis

Vue d’ensemble

Le renderer sur le serveur ne peut pas fonctionner directement avec des formats de modèle sources tels que FBX ou GLTF. En fait, le modèle doit être dans un format binaire propriétaire. Le service de conversion consomme les modèles du stockage Blob Azure et réécrit les modèles convertis dans un conteneur de stockage Blob Azure fourni.

Ce dont vous avez besoin :

  • Abonnement Azure
  • Un compte « StorageV2 » dans votre abonnement
  • Un conteneur de stockage Blob pour le modèle d’entrée
  • Un conteneur de stockage Blob pour les données de sortie
  • Un modèle à convertir (consultez les exemples de modèles)
    • Consultez la liste des formats sources pris en charge.
    • Pour utiliser l’exemple de script de conversion, veillez à préparer un dossier d’entrée contenant le modèle et toutes les dépendances externes (telles que la géométrie ou les textures externes).

Configuration Azure

Si vous n’avez pas encore de compte, accédez à Prise en main d’Azure, sélectionnez l’option Compte gratuit et suivez les instructions.

Une fois que vous disposez d’un compte Azure, connectez-vous au Portail Azure.

Création de compte de stockage

Pour créer un stockage Blob, il vous faut d’abord un compte de stockage.

  1. Pour en créer un, sélectionnez « Créer une ressource » :

Azure - ajouter une ressource

  1. Dans le nouvel écran, choisissez Stockage sur le côté gauche, puis Compte de stockage - blob, fichier, table, file d’attente dans la colonne suivante :

Azure - ajouter un compte de stockage

  1. Quand vous cliquez sur ce bouton, l’écran suivant s’affiche avec les propriétés de stockage à renseigner :

Configuration Azure

  1. Remplissez le formulaire de la manière suivante :
  • Créez un groupe de ressources à partir du lien situé sous la zone de liste déroulante et nommez-le ARR_Tutorial.
  • Sous Nom du groupe de stockage, entrez un nom unique. Ce nom doit être globalement unique. Un message d’erreur s’affiche si le nom est déjà pris. Dans le cadre de ce guide de démarrage rapide, nous le nommons arrtutorialstorage. Chaque occurrence de ce nom dans ce guide de démarrage rapide doit donc être remplacée par le nom de votre propre compte.
  • Sélectionner une région proche de vous. Dans l’idéal, utilisez la même région que celle utilisée pour la configuration du rendu dans l’autre guide de démarrage rapide.
  • Performances définies sur « Premium ». La version « Standard » fonctionne également, mais présente des caractéristiques de temps de chargement inférieures lorsqu’un modèle est chargé.
  • Type de compte Premium défini sur « Objets blob de blocs »
  • Redondance définie sur « Stockage redondant interzone (ZRS) »
  1. Aucune des propriétés des autres onglets ne doit être modifiée. Vous pouvez donc poursuivre en sélectionnant Vérifier + Créer, puis suivre les étapes nécessaires pour terminer la configuration.

  2. Le site web vous informe de la progression de votre déploiement. À la fin, il affiche le message « Votre déploiement a été effectué ». Sélectionnez « Aller à la ressource » pour les prochaines étapes :

Création du stockage Azure terminée

Création d’un stockage Blob

Nous avons à présent besoin de deux conteneurs d’objets Blob : un pour l’entrée et un pour la sortie.

  1. Le bouton « Accéder à la ressource » vous permet d’accéder à une page comprenant, à gauche, un menu sous forme de liste. Dans cette liste, sous la catégorie Service Blob, sélectionnez le bouton Conteneurs :

Azure - ajouter des conteneurs

  1. Sélectionnez le bouton + Conteneur pour créer le conteneur de stockage Blob d’entrée. Utilisez les paramètres suivants pour la création du conteneur :
  • Nom = arrinput
  • Niveau d’accès public = Privé
  1. Après la création du conteneur, sélectionnez à nouveau + Conteneur et utilisez les mêmes paramètres pour le conteneur de sortie :
  • Nom = arroutput
  • Niveau d’accès public = Privé

Vous devez maintenant disposer de deux conteneurs de stockage Blob :

Configuration de stockage Blob

Exécuter la conversion

Il existe trois façons distinctes de déclencher une conversion de modèle :

1. Conversion via l’outil ARRT

Il existe un outil basé sur l’interface utilisateur appelé ARRT pour lancer les conversions et interagir avec le résultat du rendu. ARRT

2. Conversion via un script PowerShell

Nous fournissons un script utilitaire pour faciliter l’appel du service de conversion de ressource. Il se trouve dans le dossier Scripts et se nomme Conversion.ps1.

Ce script effectue notamment les tâches suivantes :

  • Il charge tous les fichiers d’un répertoire donné du disque local vers le conteneur de stockage d’entrée.
  • Appelle le API REST de conversion de ressources
    • cette API récupère les données du conteneur de stockage d’entrée, démarre une conversion et retourne un ID de conversion,
  • Il interroge l’API d’état de conversion avec l’ID de conversion récupéré jusqu’à ce que le processus de conversion se termine (avec succès ou non).
  • Il récupère un lien vers la ressource convertie dans le stockage de sortie.

Le script lit sa configuration à partir du fichier Scripts\arrconfig.json. Ouvrez ce fichier JSON dans un éditeur de texte.

{
    "accountSettings": {
        "arrAccountId": "8*******-****-****-****-*********d7e",
        "arrAccountKey": "R***************************************l04=",
        "arrAccountDomain": "<select from available regions: australiaeast, eastus, eastus2, japaneast, northeurope, southcentralus, southeastasia, uksouth, westeurope, westus2 or specify the full url>"
    },
    "renderingSessionSettings": {
        "remoteRenderingDomain": "<select from available regions: australiaeast, eastus, eastus2, japaneast, northeurope, southcentralus, southeastasia, uksouth, westeurope, westus2 or specify the full url>"
    },
    "assetConversionSettings": {
        "localAssetDirectoryPath": "D:\\tmp\\robot",
        "resourceGroup": "ARR_Tutorial",
        "storageAccountName": "arrexamplestorage",
        "blobInputContainerName": "arrinput",
        "inputFolderPath": "robotConversion",
        "inputAssetPath": "robot.fbx",
        "blobOutputContainerName": "arroutput",
        "outputFolderPath":"converted/robot",
        "outputAssetFileName": "robot.arrAsset"
    }
}

Vous devez renseigner la configuration dans le groupe accountSettings (clé, domaine et ID de compte) comme décrit dans le guide de démarrage rapide Afficher un modèle avec Unity pour les informations d’identification.

Une configuration complète du groupe renderingSessionSettings (domaine, vmSize et maxLeaseTime) est visible dans les exemples de scripts PowerShell. VmSize et maxLeaseTime ne sont pas importants pour la conversion et peuvent être omis, car ils n’affectent pas la conversion.

Dans le groupe assetConversionSettings, veillez à modifier resourceGroup, blobInputContainerName et blobOutputContainerName. Notez que la valeur pour arrtutorialstorage doit être remplacée par le nom unique que vous avez choisi quand vous avez créé le compte de stockage.

Modifiez localAssetDirectoryPath pour qu’il pointe vers le répertoire de votre disque contenant le modèle que vous souhaitez convertir. Veillez à utiliser correctement les barres obliques inverses d’échappement (« \ ») dans le chemin : utilisez des barres obliques inverses doubles (« \\ »).

Le service met en ligne toutes les données sous le chemin localAssetDirectoryPath vers le conteneur d’objets Blob blobInputContainerName sous le sous-chemin inputFolderPath. Avec l’exemple de configuration, le service met en ligne le contenu du répertoire « D:\tmp\robot » dans le conteneur d’objets Blob « arrinput » du compte de stockage « arrtutorialstorage » sous le chemin « robotConversion ». Les fichiers existants sont remplacés.

Définissez inputAssetPath sur le chemin du modèle à convertir (chemin relatif à localAssetDirectoryPath). Utilisez « / » comme séparateur de chemin au lieu de « \ ». Ainsi, pour un fichier « robot.fbx », situé directement dans « D:\tmp\robot », utilisez « robot.fbx ».

Quand le modèle est converti, il est réécrit dans le conteneur de stockage donné par blobOutputContainerName. Vous pouvez spécifier un sous-chemin en définissant outputFolderPath si vous le souhaitez. Dans l’exemple, le service copie le « robot.arrAsset » obtenu dans le conteneur d’objets Blob de sortie sous « converted/robot ».

Le paramètre de configuration outputAssetFileName détermine le nom de la ressource convertie : le paramètre est facultatif et, s’il n’est pas spécifié, le service utilise le nom du fichier d’entrée pour générer un nom de sortie.

Ouvrez PowerShell. Assurez-vous que vous avez installé Azure PowerShell comme indiqué dans les prérequis. Ensuite, connectez-vous à votre abonnement avec la commande suivante et suivez les instructions à l’écran :

Connect-AzAccount

Notes

Si votre organisation a plusieurs abonnements, vous devrez peut-être spécifier les arguments SubscriptionId et Tenant. Pour plus d’informations, consultez la documentation sur Connect-AzAccount.

Placez-vous dans le répertoire azure-remote-rendering\Scripts et exécutez le script de conversion :

.\Conversion.ps1 -UseContainerSas

Vous devez voir quelque chose qui ressemble à ceci : Conversion.ps1

3. Conversion via des appels d’API

Les API C# et C++ fournissent toutes les deux un point d’entrée pour interagir avec le service :

Insérer un nouveau modèle dans l’exemple d’application de démarrage rapide

Le script de conversion génère un URI de signature d’accès partagé (SAS) pour le modèle converti. Vous pouvez maintenant copier cet URI comme Nom de modèle dans l’exemple d’application de démarrage rapide (consultez Démarrage rapide : Afficher un modèle avec Unity).

Remplacer un modèle dans Unity

L’exemple doit maintenant charger et effectuer le rendu de votre modèle personnalisé.

Facultatif : Recréation d’un URI SAS

L’URI SAS créé par le script de conversion expire après 24 heures. Toutefois, après son expiration, vous n’avez pas besoin de reconvertir votre modèle. En fait, vous pouvez créer une nouvelle SAS dans le portail comme décrit dans les étapes suivantes :

  1. Connectez-vous au portail Azure.
  2. Sélectionnez votre ressource compte de stockage :

Capture d’écran avec mise en évidence de la ressource de compte de stockage sélectionnée.

  1. Dans l’écran suivant, sélectionnez Explorateur de stockage dans le panneau de gauche et recherchez votre modèle de sortie (fichier .arrAsset) dans le conteneur de stockage Blob arroutput. Cliquez sur le fichier avec le bouton droit, puis sélectionnez Obtenir la signature d’accès partagé dans le menu contextuel :

    Accès avec signature

  2. Un nouvel écran s’ouvre. Vous pouvez y sélectionner une date d’expiration. Sélectionnez Créer, puis copiez l’URI affiché dans la boîte de dialogue suivante. Ce nouvel URI remplace l’URI temporaire créé par le script.

Étapes suivantes

Vous connaissez maintenant les principes de base. À présent, consultez nos tutoriels pour approfondir vos connaissances.

Pour obtenir des informations détaillées sur la conversion de modèle, consultez l’article sur l’API REST de conversion de modèle.