L'adoption du standard OGC I3S s'élargie avec son support dans CesiumJS
Esri annonce que le standard
OGC Indexed 3D Scene Layers (I3S) utilisé par ArcGIS pour la diffusion de contenus SIG 3D est
désormais pris en charge dans la dernière version de CesiumJS (version 1.99). Cette contribution d'Esri permet aux couches d'objets 3D (3D Object
Scene Layers) et aux couches de scène de photomaillages 3D (Integrated Mesh
Scene Layers) d'être directement consommées dans CesiumJS. En outre, il
permet également d'afficher et de symboliser tout attribut d'entité associé
à la couche I3S.
Exemple de couche de scène d'objets 3D I3S chargée dans l'application Cesium Sandcastle |
D'un point de vue technique, la compatibilité de la couche I3S est obtenue
grâce à une nouvelle primitive de scène I3SDataProvider dans
CesiumJS. I3SDataProvider permet le transcodage de la charge utile,
des matériaux, de la texture et de la géométrie I3S en glTF (glb).
Adoption d'I3S dans la communauté libre et open source (FOSS)
I3S a gagné en popularité dans la communauté libre et open source (FOSS).
Depuis 2019, les frameworks Loaders.gl et Deck.gl ont ajouté la prise en
charge
du chargement et de la visualisation
des couches de scène I3S dans des scènes web. Récemment, la version 3.0 de
Loaders.gl a ajouté la prise en charge des couches de scène de bâtiments
(BSL - Building Scene Layers). Le profile BSL du standard I3S publié en mars
2019 par Esri passe maintenant par
le processus d'adoption de l'OGC
pour être inclus dans la norme communautaire
OGC I3S 1.3.
Esri a également travaillé avec la communauté Loaders.gl pour créer un
convertisseur de tuiles
open source, un utilitaire en ligne de commande pour la conversion
bidirectionnelle en batch entre les formats I3S et 3D Tiles.
Architecture I3S et support dans CesiumJS
Dans le cadre de cette implémentation, les technologies serveur ArcGIS
(Online ou Enterprise) permettent de mettre en place une architecture très performante et sur des volumes importants de données 3D. Depuis plusieurs années maintenant, les couches de scène ArcGIS Online ou ArcGIS Enterprise ont démontré des capacités impressionnantes pour le streaming de flux de données 3D notamment pour des types de couches tels que les objets 3D texturés, les photomaillages 3D, les nuages de points LiDAR, les voxels, ... Au delà de l'API JavaScript ArcGIS qui est l'API de référence pour le développement d'applications web 2D et 3D, une nouvelle option s'offre donc aux développeurs souhaitant exploiter le framework JavaScript Cesium. On pourra aussi préciser que la diversité des services web géospatiaux d'ArcGIS permet également aux utilisateurs de CesiumJS de bénéficier des services web imagerie décrivant une altimétrie précise de son territoire, indispensable dans toute scène 3D.
Sans rentrer pour l'instant dans les détails de l'implémentation des couches de scènes I3S dans CesiumJS, voici un exemple de code qui vous permettra de comprendre la philosophie d'intégration des services 3D d'ArcGIS dans une application CesiumJS.
Évolution du standard I3S
I3S en tant que standard communautaire OGC pour le streaming et le stockage de
quantités massives de contenus géospatiaux 3D a rapidement évolué pour adresser de nouveaux cas d'usage et de nouvelles techniques pour faire
progresser la visualisation et l'analyse géospatiales en 3D. Le standard I3S permet un encodage
et une transmission efficaces de divers types de données géospatiales 3D,
notamment des objets 3D, des photomaillages 3D, des nuages de
points ainsi que des contenus BIM (Building Information Model) très détaillés.
Ainsi, I3S permet une expérience de visualisation interactive via de simples navigateurs web, les applications mobiles et de bureau pour un accès connecté ou déconnecté.
Couche de scène d'objet 3D I3S prise en charge dans Loaders.gl |
Loaders.gl et Deck.gl permettent le chargement et la visualisation des
couches de scène d'objets 3D, de couches de scène de photomaillage 3D et des couches de scène de bâtiments (OGC
I3S Version 1.2 et OGC I3S Version 1.3 en cours).
Un aspect important du standard I3S et qui a évolué est sa prise en charge de la
compatibilité multiplateforme pour les textures. Les systèmes 3D
performants utilisent régulièrement des textures compressées, comme
technique d'optimisation essentielle pour prendre en charge le chargement et
l'affichage de quantités massives de textures dans les applications 3D. Les
textures supercompressées (GST) décodables par GPU devenant un mécanisme de
livraison efficace, I3S a adopté le format Basis Universal Texture comme
choix de GST. OGC I3S Version 1.2 a été le premier format de streaming
géospatial 3D à se standardiser sur le format Basis Universal
SuperCompressed Texture dans les conteneurs khronos KTX™2.0.
Basis Universal a une excellente vitesse de décodage, d'excellents taux de
compression (tout en conservant la qualité visuelle) et une compatibilité
multiplateforme. Un domaine qui devait être amélioré était son taux
d'encodage. Comme détaillé dans cet article du blog ArcGIS, Esri a collaboré avec Binomial
pour améliorer la vitesse du codec de texture de Basis Universal de plus de
3 fois au début de 2021. Poursuivant cet engagement cette année, Esri a pu obtenir une amélioration supplémentaire de 10 fois la vitesse d'encodage,
lors de l'utilisation du GPU en parallèle. Ces deux améliorations font
partie de l'encodeur open source Basis Universal disponible sur github .
Application de comparaison basée sur l'API JavaScript ArcGIS, démontrant les améliorations de la réduction de la mémoire côté client OGC I3S 1.2. L'application comporte divers signets où, en moyenne, I3S 1.2 affiche plus de 60% d'économies de mémoire côté client lorsque la couche d'entrée I3S est JPEG par rapport à la texture Basis Universal SuperCompressed dans le conteneur KTX ™ 2.0. |
I3S OGC 1.3
En tant que spécification et standard vivant, I3S a évolué
depuis sa sortie en tant que premier standard OGC de streaming 3D à l'automne
2017. La dernière version, I3S OGC 1.3, actuellement en cours de vote,
ajoute la prise en charge des couches de scène de bâtiments (Building Scene Layers ou BSL). Une couche de scène de bâtiment peut être dérivé d'un contenu de construction 3D, tel que
des données BIM, ou d'un modèle de base de données relationnelle contenant
des informations spatiales 3D. Ce profil I3S BSL est conçue pour
modéliser l'organisation des données de construction en regroupant le
contenu dans des disciplines d'ingénierie standard. Le contenu d'une couche de scène de bâtiments peut
représenter un bâtiment partiel, un bâtiment individuel ou plusieurs
bâtiments sur l'ensemble d'un site.
Cet exemple de site web interactif est basé sur API JavaScript ArcGIS pour la construction de la bibliothèque Turanga (Nouvelle-Zélande). Le code
de l'application et un article de blog expliquant comment utiliser un
contenu de couche de scène OGC I3S 1.3 (candidat) dans un site web intuitif
vous permettant d'explorer différents étages, de naviguer et de visualiser
les pièces et les espaces.
En résumé
Comme indiqué ci-dessus, l'adoption d'I3S dans la communauté libre et open
source (FOSS) a largement augmenté. Depuis 2019, loaders.gl et deck.gl, une
collection de librairie open source de lecture et d'écriture pour les formats de
fichiers axés sur la visualisation de données volumineuses, y compris les
formats tabulaires, géospatiaux et 3D, ont permis à Esri la prise en charge du
chargement et de la visualisation de couches de scène d'objets 3D et de photomaillages I3S. Récemment, la version 3.0 de Loaders.gl a ajouté la prise en
charge du type de couche de scène de bâtiments I3S. Ce profil I3S pour les couches de scène de bâtiments a été publié en mars 2019 par Esri et fait actuellement l'objet d'un
vote d'adoption pour son inclusion dans le cadre de la norme communautaire
I3S OGC 1.3.
Cette contribution d'Esri en collaboration avec Presagis et Spiria autour de CesiumJS a pour objectif d'augmenter encore l'adoption d'I3S
dans la communauté FOSS. Couplé au convertisseur de tuiles open source qui permet une conversion par lots bidirectionnelle entre les tuiles
I3S et 3D, Esri souhaite que ce travail fasse progresser l'interopérabilité dans la communauté géospatiale en général.