{"id":5067,"date":"2018-07-18T09:33:38","date_gmt":"2018-07-18T08:33:38","guid":{"rendered":"https:\/\/wip.geomatys.com\/?p=5067"},"modified":"2024-12-12T11:31:12","modified_gmt":"2024-12-12T10:31:12","slug":"3d-tiles-et-enc-en-action","status":"publish","type":"post","link":"https:\/\/www.geomatys.com\/en\/2018\/07\/18\/3d-tiles-et-enc-en-action\/","title":{"rendered":"3D Tiles et ENC en action"},"content":{"rendered":"<p>Avant de commencer voici un aper\u00e7u pour vous ouvrir l\u2019app\u00e9tit et montrer ce qui peut \u00eatre fait avec 3D Tiles et les donn\u00e9es 2D S-57 de navigation maritime.<\/p>\n\n\n<figure class=\"wp-block-post-featured-image\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"215\" src=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/12\/3Dtiles-2210x500-1.jpeg?resize=800%2C215&#038;ssl=1\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"Cartes marines 3D , altim\u00e9trie et bathym\u00e9trie\" style=\"object-fit:cover;\" srcset=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/12\/3Dtiles-2210x500-1.jpeg?w=1857&amp;ssl=1 1857w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/12\/3Dtiles-2210x500-1.jpeg?resize=300%2C81&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/12\/3Dtiles-2210x500-1.jpeg?resize=1024%2C276&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/12\/3Dtiles-2210x500-1.jpeg?resize=768%2C207&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/12\/3Dtiles-2210x500-1.jpeg?resize=1536%2C414&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/12\/3Dtiles-2210x500-1.jpeg?w=1600&amp;ssl=1 1600w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n<h2 class=\"wp-block-heading\">Etat de la sp\u00e9cification<\/h2>\n\n\n\n<p>Le format 3D Tiles existe depuis quelques ann\u00e9es maintenant dans le projet CesiumJS. Il \u00e9volue aujourd\u2019hui pour devenir un format standardis\u00e9 d\u00e9sormais support\u00e9 par de nombreux moteurs d\u2019affichages 3D.<\/p>\n\n\n\n<p>La sp\u00e9cification est ouverte aux commentaires car elle n\u2019est pas encore officiellement valid\u00e9e par l\u2019OGC :&nbsp;<a href=\"http:\/\/www.opengeospatial.org\/pressroom\/pressreleases\/2829\" target=\"_blank\" rel=\"noreferrer noopener\">OGC Seeks Public Comment on 3D Tiles Candidate Community Standard<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Que peut-on faire avec 3D Tiles ?<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">DESCRIPTION DU FORMAT<\/h4>\n\n\n\n<p>Le format est en r\u00e9alit\u00e9 davantage une archive comme un Zip plut\u00f4t qu\u2019une v\u00e9ritable d\u00e9finition binaire de format.<\/p>\n\n\n\n<p>Il existe 4 types de tuile 3D :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>B3DM : Batched 3D Models<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Surement celui que les d\u00e9veloppeurs et utilisateurs manipuleront le plus. Sa structure est simple et souple. Il encapsule un fichier Khronos GLTF + des ressources en binaire + une table d\u2019attributs pour les features.<\/p>\n\n\n\n<p>Ce seul format de tuile permet de tout faire et il remplace tous les types qui suivent. Cependant, vous aurez \u00e0 faire vous-m\u00eame l\u2019OpenGL, le GLSL, la gestion des ressources, les math\u00e9matiques de projection g\u00e9ocentrique\/g\u00e9ographique et vous devrez batailler avec les limitations de WebGL et les soucis de compatibilit\u00e9 des diff\u00e9rents navigateurs.<\/p>\n\n\n\n<p>Tout (dans le limite du format GLTF) peut \u00eatre dessin\u00e9&nbsp;: Billboards, meshes, vid\u00e9os, animations, \u2026 du moment que vous avez les comp\u00e9tences suffisantes.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>I3DM : Instanced 3D Models<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Celui-ci est pratique pour dessiner un m\u00eame mod\u00e8le 3D de tr\u00e8s nombreuses fois. C\u2019est une version plus haut niveau de ce qu\u2019on trouve en OpenGL sous le nom de \u201cInstanced Rendering\u201d mais pour des mod\u00e8les complets.<\/p>\n\n\n\n<p>Chaque instance du mod\u00e8le peut \u00eatre l\u00e9g\u00e8rement modifi\u00e9e, sa taille ou son orientation par exemple. Vous devriez donc utiliser ce format pour faire&nbsp;: une for\u00eat d\u2019arbres, les panneaux de signalisation, des pyl\u00f4nes \u00e9lectriques\u2026<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>PNTS : Point Clouds<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Une autre sp\u00e9cialisation du format 3D Tiles pour les nuages de points. Il n\u2019y a que peu de chose \u00e0 dire sur ce dernier. Si vous avez beaucoup de points \u00e0 dessiner avec peu de besoin de symbologie, c\u2019est l\u2019id\u00e9al ! Il est possible de configurer la couleur de chaque point ainsi que quelques effets de style en JavaScript si vous utilisez CesiumJS. A l\u2019inverse des pr\u00e9c\u00e9dents formats, vous n\u2019aurez pas \u00e0 faire de GLTF ou d\u2019OpenGL.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CMPT : Composite<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Le type composite existe pour des raisons plus pragmatiques, afin de r\u00e9duire les temps de chargement et le nombre de requ\u00eates entre le client et le serveur. Il s\u2019agit d\u2019un groupe de tuiles concat\u00e9n\u00e9 dans un seul fichier.<\/p>\n\n\n\n<p>Pour organiser l\u2019ensemble, on trouve des fichiers TileSet en JSON qui d\u00e9crivent les relations entre les tuiles.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">QUELQUES PR\u00c9CISIONS<\/h4>\n\n\n\n<p>Contrairement \u00e0 ce qu\u2019on trouve en WMTS et TMS, les tuiles 3D Tiles ne sont pas plac\u00e9es sur une grille r\u00e9guli\u00e8re et chaque tuile enfant ne remplace pas n\u00e9cessairement sa tuile parente. L\u2019arbre des tuiles peut avoir n\u2019importe quelle forme. Elles peuvent se superposer, \u00eatre l\u2019une au-dessus de l\u2019autre, qu\u2019importe, on est ici en 3D ce qui offre beaucoup de libert\u00e9.<\/p>\n\n\n\n<p>Par exemple, si vous avez un b\u00e2timent, quand vous \u00eates tr\u00e8s d\u00e9zoom\u00e9, vous aurez une premi\u00e8re tuile avec un cube sch\u00e9matisant le b\u00e2timent. A mesure que l\u2019on zoom dessus, une version de la tuile plus pr\u00e9cise vient remplacer la pr\u00e9c\u00e9dente, et en zoomant encore une troisi\u00e8me tuile offre un mod\u00e8le 3D haute r\u00e9solution du b\u00e2timent avec des textures\u2026 C\u2019est le cas classique&nbsp;! On parle de LOD (Level of Detail) : niveaux de d\u00e9tails successifs.<\/p>\n\n\n\n<p>Prenons un autre sc\u00e9nario, nous devons afficher des fl\u00e8ches de vent. A un niveau tr\u00e8s d\u00e9zoom\u00e9 on a une tuile qui contient une fl\u00e8che de vent fort afin de ne pas surcharger la carte et que celle-ci reste lisible. Puis en zoomant une tuile vient s\u2019ajouter, sans remplacer la tuile parent, celle-ci avec des fl\u00e8ches pour les vents moyens, et ainsi de suite. On obtient un raffinement progressif de l\u2019affichage.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Le cot\u00e9 technique de 3D Tiles<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>M\u00eame si les donn\u00e9es sont rendues sur un globe ou un plan, on a l\u2019impression que le format 3D Tiles n\u2019est pas vraiment du domaine de la g\u00e9omatique. Il y a 2 syst\u00e8mes de coordonn\u00e9es&nbsp;: g\u00e9ocentrique et latitude\/longitude exprim\u00e9s en degr\u00e9s ou en radians. Le format est trop bas niveau pour \u00eatre manipul\u00e9 par des g\u00e9omaticiens seuls. Il va falloir des comp\u00e9tences en programmation pour construire les fichiers et de bonnes connaissances en OpenGL et GLSL afin d\u2019obtenir des r\u00e9sultats flatteurs.<\/li>\n\n\n\n<li>Pour g\u00e9n\u00e9rer les tuiles vous devrez reprojeter et raffiner les donn\u00e9es vous-m\u00eame. Vous aurez int\u00e9r\u00eat \u00e0 \u00eatre rigoureux dans vos formules math\u00e9matiques ou vous ne verrez rien et aucune erreur ne s\u2019affichera. Et si par chance vous en avez une, ce sera tr\u00e8s certainement un message d\u2019erreur peu clair fourni par le pilote OpenGL.<\/li>\n\n\n\n<li>Un autre point technique est que GLTF, GLTF 2.0 (et ses ressources binaires) est encore tr\u00e8s r\u00e9cent et les outils de mod\u00e9lisation 3D n\u2019ont pas encore, tous, de fonctionnalit\u00e9 d\u2019export. Quand ils en auront une, les probl\u00e8mes de compatibilit\u00e9 entre les diff\u00e9rents moteurs 3D devraient appara\u00eetre de fa\u00e7on plus flagrante. Il y a fort \u00e0 parier qu\u2019un g\u00e9n\u00e9rateur de tuile 3D quelconque sera compatible avec uniquement un ensemble de moteurs 3D. Quand on voit encore aujourd\u2019hui les soucis de compatibilit\u00e9 avec des formats comme netCDF, grib, geotiff ou jpeg2000, il est \u00e0 pr\u00e9voir des soucis identiques avec 3D Tiles.<\/li>\n<\/ul>\n\n\n\n<p>Esp\u00e9rons que l\u2019OGC mettra en place des suites de tests afin de r\u00e9duire les diff\u00e9rends et am\u00e9liorer l\u2019interop\u00e9rabilit\u00e9.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Et par rapport aux sp\u00e9cifications OGC et ISO ?<\/h3>\n\n\n\n<p>Comme le format OGC-KML (ex Google KML), 3D Tiles, en tant que community standard, n\u2019a pas obligation d\u2019utiliser les sp\u00e9cifications existantes de m\u00e9tadonn\u00e9es, symbologie, services, g\u00e9om\u00e9tries, filtres ou du CQL.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Feature<\/strong>&nbsp;: Le concept de Feature \u00e9tant un \u00e9l\u00e9ment cl\u00e9 en SIG. On aurait pu s\u2019attendre \u00e0 ce que la partie&nbsp;feature-table&nbsp;de 3D Tiles qui est en JSON ait un air de GeoJson pusiqu\u2019ils ont vaguement le m\u00eame objectif (hormis la partie g\u00e9om\u00e9trie). Mais, une fois encore, non. Le mod\u00e8le est tr\u00e8s diff\u00e9rent. Pour des raisons de performances, les propri\u00e9t\u00e9s sont entass\u00e9es dans de long tableaux inutilisables par un humain.<\/li>\n\n\n\n<li><strong>Symbologie<\/strong>&nbsp;: Il aurait \u00e9t\u00e9 plaisant de retrouver les divers \u00e9l\u00e9ments de Symbology Encoding comme les r\u00e8gles de styles ou les filtres. Ou encore, de voir appara\u00eetre une premi\u00e8re utilisation du travail fait par les&nbsp;Working Groups&nbsp;de l\u2019OGC sur la symbologie 3D, pas pour cette fois non plus.<\/li>\n\n\n\n<li><strong>G\u00e9om\u00e9trie<\/strong>&nbsp;: 3D Tiles est en 3D et mis \u00e0 part ISO 19107, il n\u2019existe pas de sp\u00e9cification pour d\u00e9finir des g\u00e9om\u00e9tries 3D. ISO 1907 est tellement complexe et inadapt\u00e9 aux traitements sur GPU qu\u2019on ne peut pas bl\u00e2mer 3D Tiles sur ce point.<\/li>\n<\/ul>\n\n\n\n<p>Comme \u00e0 l\u2019\u00e9poque o\u00f9 Google proposait KML \u00e0 l\u2019OGC, le format \u00e9tant d\u00e9j\u00e0 fini et con\u00e7u pour GoogleEarth \/ GoogleMaps, la m\u00eame chose semble se r\u00e9p\u00e9ter ici avec CesiumJS.<\/p>\n\n\n\n<p><em>3D Tiles vit dans un monde diff\u00e9rent, il parle JSON, JavaScript-ish et GLSL.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Geomatys et le format 3D Tiles<\/h2>\n\n\n\n<p>Nos \u00e9quipes jouent avec 3D Tiles depuis quelque temps, ainsi qu\u2019avec les diff\u00e9rents formats de Cesium incluant CZML, HeightMap et QuantizedMesh depuis quelques ann\u00e9es. Il en r\u00e9sulte un sentiment mitig\u00e9.&nbsp;<\/p>\n\n\n\n<p>Il manquait un format 3D standardis\u00e9 pour commencer \u00e0 vraiment faire de la 3D en SIG. Et 3D Tiles comble ce manque sans imposer trop de contrainte. C\u2019est un plaisir de travailler en symbologie avec autant de souplesse et pour seule limite la cr\u00e9ativit\u00e9, merci principalement au format GLTF.<\/p>\n\n\n\n<p>Pourtant, il est difficile de voir 3D Tiles comme un format SIG, il ne r\u00e9utilise rien de ce qu\u2019on conna\u00eet en SIG.<\/p>\n\n\n\n<p>Tout le travail de g\u00e9or\u00e9f\u00e9rencement, projection et transformation n\u2019appara\u00eet pas dans le format. Tout doit \u00eatre pr\u00e9par\u00e9 en amont par un g\u00e9n\u00e9rateur de tuiles 3D. 3D Tiles est le r\u00e9sultat final en bout de ligne avec pour seul objectif l\u2019affichage. Cela aurait \u00e9t\u00e9 pratique de g\u00e9n\u00e9rer une tuile 3D, d\u2019indiquer quelque part qu\u2019elle est en EPSG:3031 (st\u00e9r\u00e9ographique polaire) ou tout autre syst\u00e8me de coordonn\u00e9es mouvant utilis\u00e9 dans&nbsp;Moving Features&nbsp;et de laisser le moteur 3D s\u2019occuper du reste.<\/p>\n\n\n\n<p>Au final, 3D Tiles est un bon format, un premier pas&nbsp;normalis\u00e9&nbsp;dans la 3D pour les SIG. C\u2019est pourquoi, Geomatys l\u2019impl\u00e9mente sur sa plateforme&nbsp;<a href=\"https:\/\/www.geomatys.com\/fr\/nos-produits\/examind-server\/\" target=\"_blank\" rel=\"noreferrer noopener\">Examind Server<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Affichage de cartes marines (ENC) en 3D Tiles<\/h2>\n\n\n\n<p>Voyons maintenant ce que l\u2019on peut faire avec 3D Tiles et des donn\u00e9es IHO S-57 \/ S-52.<\/p>\n\n\n\n<p>Le format S-57 de l\u2019IHO et la symbologie S-52 sont les standards utilis\u00e9s pour la navigation maritime. Si le sujet vous int\u00e9resse, vous pouvez trouver plus d\u2019informations dans un pr\u00e9c\u00e9dent article :&nbsp;<a href=\"https:\/\/www.geomatys.com\/fr\/2016\/04\/07\/entre-sig-et-ecdis-s-57-et-s-52-pour-la-marine-et-les-militaires\/\" target=\"_blank\" rel=\"noreferrer noopener\">Entre SIG et ECDIS, S-57 et S-52 pour la marine et les militaires<\/a><\/p>\n\n\n\n<p>Gardez \u00e0 l\u2019esprit que les donn\u00e9es S-57 ne sont pas faites pour une visualisation 3D, mais le r\u00e9sultat apr\u00e8s quelques ajustements est tout \u00e0 fait satisfaisant.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Une carte S-57 en&nbsp;<strong>2D<\/strong>&nbsp;:<\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"800\" height=\"349\" src=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/11\/2d_s52_0-e1669296601879-1024x447.png?resize=800%2C349&#038;ssl=1\" alt=\"\" class=\"wp-image-67\" srcset=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/11\/2d_s52_0-e1669296601879.png?resize=1024%2C447&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/11\/2d_s52_0-e1669296601879.png?resize=300%2C131&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/11\/2d_s52_0-e1669296601879.png?resize=768%2C335&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/11\/2d_s52_0-e1669296601879.png?w=1170&amp;ssl=1 1170w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption class=\"wp-element-caption\">3D Tiles et ENC en action &#8211; Carte marine S-57 du port de Brest<\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Et en&nbsp;<strong>3D<\/strong>, on obtient ceci&nbsp;:<\/h4>\n\n\n\n<p>A faible r\u00e9solution on affiche uniquement l\u2019emprise des cellules S-57 ainsi que leur identifiant.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"800\" height=\"476\" src=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/08\/3d_s52_0-1536x914-1.png?resize=800%2C476&#038;ssl=1\" alt=\"\" class=\"wp-image-5068\" srcset=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/08\/3d_s52_0-1536x914-1.png?resize=1024%2C609&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/08\/3d_s52_0-1536x914-1.png?resize=300%2C179&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/08\/3d_s52_0-1536x914-1.png?resize=768%2C457&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/08\/3d_s52_0-1536x914-1.png?w=1536&amp;ssl=1 1536w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>En se rapprochant, l\u2019emprise est remplac\u00e9e par le mod\u00e8le de terrain calcul\u00e9 \u00e0 partir des donn\u00e9es vecteurs de bathym\u00e9tries, de trait de c\u00f4te, des points d\u2019\u00e9l\u00e9vation et autres.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"477\" src=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/08\/3d_s52_1-1536x915-1.png?resize=800%2C477&#038;ssl=1\" alt=\"\" class=\"wp-image-5069\" srcset=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/08\/3d_s52_1-1536x915-1.png?resize=1024%2C610&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/08\/3d_s52_1-1536x915-1.png?resize=300%2C179&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/08\/3d_s52_1-1536x915-1.png?resize=768%2C458&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/08\/3d_s52_1-1536x915-1.png?w=1536&amp;ssl=1 1536w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/12\/3Dtiles-2210x500-1.jpeg?resize=740%2C199&#038;ssl=1\" alt=\"\" class=\"wp-image-1262\" width=\"740\" height=\"199\" srcset=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/12\/3Dtiles-2210x500-1.jpeg?resize=1024%2C276&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/12\/3Dtiles-2210x500-1.jpeg?resize=300%2C81&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/12\/3Dtiles-2210x500-1.jpeg?resize=768%2C207&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/12\/3Dtiles-2210x500-1.jpeg?resize=1536%2C414&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/12\/3Dtiles-2210x500-1.jpeg?w=1857&amp;ssl=1 1857w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/12\/3Dtiles-2210x500-1.jpeg?w=1600&amp;ssl=1 1600w\" sizes=\"(max-width: 740px) 100vw, 740px\" \/><figcaption class=\"wp-element-caption\">D\u00e9couvrez les cartes marine en 3D<\/figcaption><\/figure>\n\n\n\n<p>On peut voir les pontons et les b\u00e2timents gr\u00e2ce aux donn\u00e9es S-57 d\u2019un port.&nbsp;<\/p>\n\n\n\n<p>La qualit\u00e9 g\u00e9n\u00e9rale d\u00e9pend beaucoup des fichiers S-57. Les informations terrestres ne sont pas principales et sont souvent de moindre qualit\u00e9, aussi des artefacts visuels apparaissent.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"479\" src=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/08\/3d_s52_3-1536x919-1.png?resize=800%2C479&#038;ssl=1\" alt=\"\" class=\"wp-image-5070\" srcset=\"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/08\/3d_s52_3-1536x919-1.png?resize=1024%2C613&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/08\/3d_s52_3-1536x919-1.png?resize=300%2C179&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/08\/3d_s52_3-1536x919-1.png?resize=768%2C460&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2023\/08\/3d_s52_3-1536x919-1.png?w=1536&amp;ssl=1 1536w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>Pour plus d\u2019informations sur\u00a0<a rel=\"noreferrer noopener\" href=\"https:\/\/www.geomatys.com\/fr\/la-suite-examind\/\" target=\"_blank\">Examind<\/a>\u00a0et le 3D Tiles,\u00a0<a href=\"mailto:contact@geomatys.com\">contactez les \u00e9quipes de Geomatys<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Avant de commencer voici un aper\u00e7u pour vous ouvrir l\u2019app\u00e9tit et montrer ce qui peut \u00eatre fait avec 3D Tiles et les donn\u00e9es 2D S-57 de navigation maritime. Etat de la sp\u00e9cification Le format 3D Tiles existe depuis quelques ann\u00e9es maintenant dans le projet CesiumJS. Il \u00e9volue aujourd\u2019hui pour devenir un format standardis\u00e9 d\u00e9sormais support\u00e9 par de nombreux moteurs d\u2019affichages 3D. La sp\u00e9cification est ouverte aux commentaires car elle n\u2019est pas encore officiellement valid\u00e9e par l\u2019OGC :&nbsp;OGC Seeks Public Comment on 3D Tiles Candidate Community Standard Que peut-on faire avec 3D Tiles ? DESCRIPTION DU FORMAT Le format est en r\u00e9alit\u00e9 davantage une archive comme un Zip plut\u00f4t qu\u2019une v\u00e9ritable d\u00e9finition binaire de format. Il existe 4 types de tuile 3D : Surement celui que les d\u00e9veloppeurs et utilisateurs manipuleront le plus. Sa structure est simple et souple. Il encapsule un fichier Khronos GLTF + des ressources en binaire + une table d\u2019attributs pour les features. Ce seul format de tuile permet de tout faire et il remplace tous les types qui suivent. Cependant, vous aurez \u00e0 faire vous-m\u00eame l\u2019OpenGL, le GLSL, la gestion des ressources, les math\u00e9matiques de projection g\u00e9ocentrique\/g\u00e9ographique et vous devrez batailler avec les limitations de WebGL et les soucis de compatibilit\u00e9 des diff\u00e9rents navigateurs. Tout (dans le limite du format GLTF) peut \u00eatre dessin\u00e9&nbsp;: Billboards, meshes, vid\u00e9os, animations, \u2026 du moment que vous avez les comp\u00e9tences suffisantes. Celui-ci est pratique pour dessiner un m\u00eame mod\u00e8le 3D de tr\u00e8s nombreuses fois. C\u2019est une version plus haut niveau de ce qu\u2019on trouve en OpenGL sous le nom de \u201cInstanced Rendering\u201d mais pour des mod\u00e8les complets. Chaque instance du mod\u00e8le peut \u00eatre l\u00e9g\u00e8rement modifi\u00e9e, sa taille ou son orientation par exemple. Vous devriez donc utiliser ce format pour faire&nbsp;: une for\u00eat d\u2019arbres, les panneaux de signalisation, des pyl\u00f4nes \u00e9lectriques\u2026 Une autre sp\u00e9cialisation du format 3D Tiles pour les nuages de points. Il n\u2019y a que peu de chose \u00e0 dire sur ce dernier. Si vous avez beaucoup de points \u00e0 dessiner avec peu de besoin de symbologie, c\u2019est l\u2019id\u00e9al ! Il est possible de configurer la couleur de chaque point ainsi que quelques effets de style en JavaScript si vous utilisez CesiumJS. A l\u2019inverse des pr\u00e9c\u00e9dents formats, vous n\u2019aurez pas \u00e0 faire de GLTF ou d\u2019OpenGL. Le type composite existe pour des raisons plus pragmatiques, afin de r\u00e9duire les temps de chargement et le nombre de requ\u00eates entre le client et le serveur. Il s\u2019agit d\u2019un groupe de tuiles concat\u00e9n\u00e9 dans un seul fichier. Pour organiser l\u2019ensemble, on trouve des fichiers TileSet en JSON qui d\u00e9crivent les relations entre les tuiles. QUELQUES PR\u00c9CISIONS Contrairement \u00e0 ce qu\u2019on trouve en WMTS et TMS, les tuiles 3D Tiles ne sont pas plac\u00e9es sur une grille r\u00e9guli\u00e8re et chaque tuile enfant ne remplace pas n\u00e9cessairement sa tuile parente. L\u2019arbre des tuiles peut avoir n\u2019importe quelle forme. Elles peuvent se superposer, \u00eatre l\u2019une au-dessus de l\u2019autre, qu\u2019importe, on est ici en 3D ce qui offre beaucoup de libert\u00e9. Par exemple, si vous avez un b\u00e2timent, quand vous \u00eates tr\u00e8s d\u00e9zoom\u00e9, vous aurez une premi\u00e8re tuile avec un cube sch\u00e9matisant le b\u00e2timent. A mesure que l\u2019on zoom dessus, une version de la tuile plus pr\u00e9cise vient remplacer la pr\u00e9c\u00e9dente, et en zoomant encore une troisi\u00e8me tuile offre un mod\u00e8le 3D haute r\u00e9solution du b\u00e2timent avec des textures\u2026 C\u2019est le cas classique&nbsp;! On parle de LOD (Level of Detail) : niveaux de d\u00e9tails successifs. Prenons un autre sc\u00e9nario, nous devons afficher des fl\u00e8ches de vent. A un niveau tr\u00e8s d\u00e9zoom\u00e9 on a une tuile qui contient une fl\u00e8che de vent fort afin de ne pas surcharger la carte et que celle-ci reste lisible. Puis en zoomant une tuile vient s\u2019ajouter, sans remplacer la tuile parent, celle-ci avec des fl\u00e8ches pour les vents moyens, et ainsi de suite. On obtient un raffinement progressif de l\u2019affichage. Le cot\u00e9 technique de 3D Tiles Esp\u00e9rons que l\u2019OGC mettra en place des suites de tests afin de r\u00e9duire les diff\u00e9rends et am\u00e9liorer l\u2019interop\u00e9rabilit\u00e9. Et par rapport aux sp\u00e9cifications OGC et ISO ? Comme le format OGC-KML (ex Google KML), 3D Tiles, en tant que community standard, n\u2019a pas obligation d\u2019utiliser les sp\u00e9cifications existantes de m\u00e9tadonn\u00e9es, symbologie, services, g\u00e9om\u00e9tries, filtres ou du CQL. Comme \u00e0 l\u2019\u00e9poque o\u00f9 Google proposait KML \u00e0 l\u2019OGC, le format \u00e9tant d\u00e9j\u00e0 fini et con\u00e7u pour GoogleEarth \/ GoogleMaps, la m\u00eame chose semble se r\u00e9p\u00e9ter ici avec CesiumJS. 3D Tiles vit dans un monde diff\u00e9rent, il parle JSON, JavaScript-ish et GLSL. Geomatys et le format 3D Tiles Nos \u00e9quipes jouent avec 3D Tiles depuis quelque temps, ainsi qu\u2019avec les diff\u00e9rents formats de Cesium incluant CZML, HeightMap et QuantizedMesh depuis quelques ann\u00e9es. Il en r\u00e9sulte un sentiment mitig\u00e9.&nbsp; Il manquait un format 3D standardis\u00e9 pour commencer \u00e0 vraiment faire de la 3D en SIG. Et 3D Tiles comble ce manque sans imposer trop de contrainte. C\u2019est un plaisir de travailler en symbologie avec autant de souplesse et pour seule limite la cr\u00e9ativit\u00e9, merci principalement au format GLTF. Pourtant, il est difficile de voir 3D Tiles comme un format SIG, il ne r\u00e9utilise rien de ce qu\u2019on conna\u00eet en SIG. Tout le travail de g\u00e9or\u00e9f\u00e9rencement, projection et transformation n\u2019appara\u00eet pas dans le format. Tout doit \u00eatre pr\u00e9par\u00e9 en amont par un g\u00e9n\u00e9rateur de tuiles 3D. 3D Tiles est le r\u00e9sultat final en bout de ligne avec pour seul objectif l\u2019affichage. Cela aurait \u00e9t\u00e9 pratique de g\u00e9n\u00e9rer une tuile 3D, d\u2019indiquer quelque part qu\u2019elle est en EPSG:3031 (st\u00e9r\u00e9ographique polaire) ou tout autre syst\u00e8me de coordonn\u00e9es mouvant utilis\u00e9 dans&nbsp;Moving Features&nbsp;et de laisser le moteur 3D s\u2019occuper du reste. Au final, 3D Tiles est un bon format, un premier pas&nbsp;normalis\u00e9&nbsp;dans la 3D pour les SIG. C\u2019est pourquoi, Geomatys l\u2019impl\u00e9mente sur sa plateforme&nbsp;Examind Server. Affichage de cartes marines (ENC) en 3D Tiles Voyons maintenant ce que l\u2019on peut faire avec 3D Tiles et des donn\u00e9es IHO S-57 \/ S-52. Le format S-57 de l\u2019IHO et la symbologie S-52 sont les standards utilis\u00e9s pour la navigation maritime. Si le sujet vous int\u00e9resse, vous<\/p>","protected":false},"author":1,"featured_media":1262,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_umich_oidc_access":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5067","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-actus"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.geomatys.com\/wp-content\/uploads\/2022\/12\/3Dtiles-2210x500-1.jpeg?fit=1857%2C500&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/posts\/5067","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/comments?post=5067"}],"version-history":[{"count":0,"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/posts\/5067\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/media\/1262"}],"wp:attachment":[{"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/media?parent=5067"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/categories?post=5067"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.geomatys.com\/en\/wp-json\/wp\/v2\/tags?post=5067"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}