Mise à jour de la spécification I3S en version 1.7
I3S (Indexed 3D Scene Layers) est la spécification ouverte mise au point par Esri (et validée par l'OGC) l'échange et la diffusion sur le web de différents types de contenus 3D. L'aspect "échange" se concrétise par un format de fichier SLPK (Scene Layer Package) dont les spécifications font parties de I3S.
Adoptée par plusieurs éditeurs de solutions logicielles comme Safe Software, Bentley, Skyline, Tygron, Pix4D, AGISoft,... la spécification I3S est également support comme format de livraison par de plus en plus de fournisseurs de données 3D. Spécialement conçue pour des usages des professionnels du géospatiale, la spécification I3S contient toutes les capacités de définition de géoréférencement spatial et de système de coordonnées. Destinée à modélisé tous les types de modèles 3D que l'on peut rencontrer dans un SIG, I3S est organisée en profils pour prendre en compte les spécificités de chaque type de données 3D:
Adoptée par plusieurs éditeurs de solutions logicielles comme Safe Software, Bentley, Skyline, Tygron, Pix4D, AGISoft,... la spécification I3S est également support comme format de livraison par de plus en plus de fournisseurs de données 3D. Spécialement conçue pour des usages des professionnels du géospatiale, la spécification I3S contient toutes les capacités de définition de géoréférencement spatial et de système de coordonnées. Destinée à modélisé tous les types de modèles 3D que l'on peut rencontrer dans un SIG, I3S est organisée en profils pour prendre en compte les spécificités de chaque type de données 3D:
- 3D Object Scene Layer (pour les couches d'objets 3D texturés ou non => multipatches)
- Integrated Mesh Scene Layer (pour les surfaces 3D triangulés et texturés)
- Building Scene Layer (pour les couches issues de modèles BIM)
- Point Cloud Scene Layer (pour les couches de nuages de points 3D de type Lidar)
- Point Scene Layer (pour les couches de points)
I3S version 1.7
Depuis l'été 2019, une nouvelle version de la spécification I3S pour Scene Layers a été publiée sur le GitHub Esri. Cette version 1.7 a d'abord été prise en charge par ArcGIS Pro 2.4 et ArcGIS Online, puis progressivement par les autres applications du système ArcGIS (CityEngine, ArcGIS Runtime, ArcGIS Earth, Drone2Map) et très prochainement par ArcGIS Enterprise 10.8 (pour les aspects serveur et client I3S).
Dans la version précédente d'I3S (1.6) publiée en mars 2019, Esri avait réorganisé la documentation par type de profil. Cela permet de mettre à niveau chaque profil individuellement, afin que les utilisateurs, les intégrateurs ou les éditeurs de solutions logicielles puissent profiter des avantages des mises à jour sans avoir à attendre que tous les profils soient prêts. Donc, si vous êtes un créateur de contenus 3D de type "Integrated Mesh", vous n'avez pas à attendre que le profil des "Building Scene Layers" soit lui aussi finalisé en version 1.7.
Depuis juillet 2019, la version 1.7 de la spécification s'applique aux profils "3D Object Scene Layers" et "Integrated Mesh Scene Layers". Cette version 1.7 de la spécification ne présente pas de rupture avec la version précédente, elle est donc rétrocompatible avec 1.6. D'autres profils seront mis à niveau pour prendre en charge la version 1.7 dans les prochaines versions.
Nouvel outillage
La première évolution importante c'est qu'Esri fournit maintenant un outil pour mettre à niveau les packages de couche de scène (SLPK) existants vers la version 1.7 d'I3S. Cet exécutable autonome est disponible sur le GitHub Esri. Il valide tout d'abord votre fichier SLPK existant, effectue les mises à niveau en 1.7, peut compresser les textures lors de la mise à niveau si vous le souhaitez, et plus encore. Une autre fonctionnalité intéressante est l'option "-i", qui vous fournira des informations de base sur votre SLPK. Cela vous permettra, par exemple, de déterminer le type et la version du profil I3S de votre couche de scène sans avoir à décompresser le package.
Pagination sur les noeuds
La structure d'un cache I3S repose sur une hiérarchie de noeuds décrivant, à différents niveaux de généralisation, les données de votre couche 3D. La première amélioration majeure apportée en version 1.7 concerne la pagination des nœuds. Auparavant, les clients recevaient le contenu d'un nœud par requête. Ainsi, pour charger une large zone de la couche, l'application cliente devait faire une requête pour chacun des nœuds concernés. Maintenant, les nœuds sont paginés (regroupés par pages). Les applications clientes peuvent donc désormais déterminer les pages des noeuds dont ils ont besoin et demander uniquement les pages nécessaires. Cela réduit considérablement le trafic serveur-client et améliore les performances. Pour plus de détails, consultez la section de pagination des nœuds dans le document de format de spécification.
En raison de l'ajout de pages de nœuds, la notion de ressources partagées deviennent obsolètes. Les informations sur la texture et le matériau sont disponibles dans le fichier de calque. Cependant, étant donné que la version 1.7 est rétrocompatible avec 1.6, les ressources partagées sont toujours incluses dans la spécification, même si elles ne sont pas utilisées pour les clients I3S 1.7.
Compression des géométries
La seconde évolution majeures de la version 1.7 est la prise en charge de la compression des géométries 3D avec la librairie Open Source Draco de Google. Cela permet de créer des nœuds de taille plus compacte, ce qui réduit la quantité de données échangées entre le serveur et le client et augmente donc les performances.
Prise en charge avancée des matériaux
Une autre évolution de la spécification I3S concerne l'ajout du support avancé des matériaux (base color, metallic value, roughness, emissive texture, occlusion texture, ...). La définition du matériau d'un objet est donc désormais compatible avec les matériaux définis dans le format ouvert glTF (format 3D supporté nativement par ArcGIS Pro).
Documentation étendue
La dernière mise à jour de la spécification inclut la version 1.7, ainsi que les notes et les détails étendus pour les versions 1.6 et 2.0 (version concernant le profil des nuages de points) de la spécification. On soulignera la section de présentation de l'API dans le fichier ReadMe de chaque profil. La description complète de la version 1.7 est disponible ici pour les 3D Textured Mesh et ici pour 3D Objects.
Si vous avez des questions ou des commentaires sur la spécification, n'hésitez pas à ouvrir un problème sur la spécification I3S sur GitHub.