glTF – Dans les coulisses de 3D Magic

novembre 27, 2019

Qu’est-ce que le glTF et d’où vient-il ?

 Le Transmission Format (glTF) de la bibliothèque graphique (GL) est un format de livraison d’actifs d’exécution indépendant de l’API. Il comble le fossé entre les outils de création de contenu 3D et les applications 3D modernes en fournissant un format efficace, extensible et interopérable pour la transmission et le chargement de contenu 3D. glTF est maintenant activement promu par le groupe Khronos en tant que JPEG du monde 3D.

Le format devrait être un format de livraison de ressources efficace et compatible qui comprime la taille des scènes 3D et minimise le traitement d’exécution par les applications utilisant WebGL et d’autres API. Il définit également un format de publication commun pour les outils et services de contenu 3D.

La première mention de ce format de fichier remonte à SIGGRAPH 2012. Il y en avait une démo et le format s’appelait à l’origine WebGL Transmissions Format (WebGL TF), mais il a été utilisé à partir du 19 octobre 2015, avec l’annonce de la spécification glTF 1.0. Pour le moment, la 2ème version de la spécification (glTF 2.0) est utilisée, qui a été publiée le 3 mars 2017. De plus, nous ne parlerons que de glTF 2.0.

De nos jours, les formats glTF et GLB sont utilisés sur Sketchfab (conversion automatique), Facebook (publications 3D), Microsoft, Oculus, Unreal Engine et autres.

11

Image 1 : Formats les plus populaires de différents médias

Composants et avantages

 Le format est basé sur 2 fichiers : un fichier JSON pour décrire la structure de la ou des scènes 3D entières et un fichier binaire, pour stocker toutes les données de la ou des scènes, y compris les mappages de texture qui peuvent être « fusionnés » dans le fichier binaire ou stockés en tant que fichiers externes. Il existe également une version binaire du format appelée GLB. La seule différence de GLB est que tout est stocké dans 1 fichier avec l’extension de fichier GLB.

Ces avantages supplémentaires du format peuvent être mis en évidence :

  • Une hiérarchie claire des objets dans la structure de la scène 3D
  • Stockage des informations de scène telles que les sources lumineuses et les caméras, prise en charge de la fonction d’instance
  • Prise en charge d’animations de squelette (articulations), par transformations multiples (TRS) et par morphing
  • Matériaux et nuanceurs plus fiables
  • Le PBR (rendu basé sur la physique) est pris en charge et il s’agit de la norme pour ce format : le modèle de matériau de rugosité métallique est pris en charge par défaut et le modèle de matériau de brillance spéculaire peut être pris en charge à l’aide d’une extension 

10

Image 2 : Composants d’un fichier glTF

Si vous comparez glTF et COLLADA, les fonctions qu’ils supportent sont très similaires, mais en se rappelant qu’il s’agit avant tout d’un « format de transfert », son avantage incontestable sera une bonne compatibilité avec les technologies web. Pour donner une analogie, j’utiliserais les formats .PSD (Adobe Photoshop) et .JPG. Le premier est bon pour l’édition de documents sources, mais pour le stockage et l’utilisation sur Internet, JPG est beaucoup plus utilisable et plus facile.

De nos jours, la 3D arrive au client à partir de sources complètement différentes, chacune avec son propre format. Toutes les informations ne sont pas nécessaires à l’utilisateur, tous les formats ne peuvent pas être ouverts dans les applications de l’utilisateur. La structure de la scène doit être analysée, les données de géométrie 3D converties au format requis par les API graphiques. Les données 3D doivent être transférées dans la mémoire de la carte vidéo, puis le processus de rendu peut être décrit par des appels successifs à l’API graphique. Par conséquent, chaque application exécutable doit créer ses propres importateurs, téléchargeurs ou convertisseurs pour tous les formats de fichiers qu’elle prendra en charge. Vous trouverez ci-dessous un assez bon exemple de l’ensemble du processus décrit.

9

Image 3 : Processus de conversion des données de géométrie 3D

Le format définit une norme pour représenter le contenu 3D sous une forme adaptée à une utilisation dans les applications au moment de l’exécution. Les formats existants sont mal adaptés à la transmission sur Internet : certains ne contiennent que des informations sur la géométrie, d’autres contiennent absolument tout et sont donc trop volumineux et difficiles à analyser, notamment à l’exécution.

Il a été conçu pour résoudre de tels problèmes. Ce n’est pas « encore un autre format de fichier ». Il marque la définition du format de transmission des scènes 3D !

La structure de la scène décrite par JSON peut être facilement analysée, les données 3D sont stockées sous une forme facile à lire et utilisées directement par les API graphiques, il n’est donc pas nécessaire de décoder ou de pré-traiter les données 3D. De cette façon, ce nouveau format peut aider à combler le fossé entre la création de contenu et le rendu. Ceci est clairement illustré dans l’image ci-dessous. 

8

Image 4 : Divers processus de rendu de contenu par glTF

Nous pouvons utiliser Microsoft Visual Studio Code avec le plugin GLTF pour voir la structure du format, les données et prévisualiser un modèle 3D contenu (voir l’image ci-dessous)

7

Image 5 : Capture d’écran du PC de l’auteur

Si vous êtes intéressé par la numérisation et l’impression 3D, consultez notre article sur une brève expérimentation que nous avons faite il y a quelque temps ici !

Sources et ressources d’inspiration :

Liens vers les sources d’images :

Abonnez-vous à notre newsletter

Recevez les dernières nouvelles, les articles sélectionnés et les derniers faits saillants de notre part. Nous ne vous spammerons jamais, promis.

En savoir plus sur

Le Quality Engineering Studio a pour but de réduire les risques commerciaux de nos clients. Nous fournissons une suite complète de services de test et d'ingénierie de la qualité innovants et solides, qui garantissent des produits de haute qualité pour répondre aux besoins des utilisateurs exigeants et férus de technologie.