
Un monde de possibilités : présentation de l’add-on Evergine.Cesium

Introduction
Dans le développement logiciel moderne, en particulier dans les secteurs industriels et de l'entreprise, le besoin de visualiser des données dans un contexte réel croît rapidement. Du suivi d'actifs à l'échelle d'un continent à la gestion des infrastructures d'une smart city, les applications exigent de plus en plus un référentiel géographique. Pourtant, développer de zéro un globe 3D interactif et performant représente un chantier technique considérable.
Nous sommes ravis d'aider nos développeurs à relever ce défi. Dans le cadre de la dernière release d'Evergine, nous lançons l'add-on Evergine.Cesium. Notre objectif est de fournir une solution robuste et bien intégrée qui apporte le rendu à l'échelle planétaire à l'écosystème Evergine.
Ce nouvel add-on vous permet de créer des applications qui nécessitent une perspective globale, qu'il s'agisse d'un jumeau numérique détaillé, d'un simulateur de formation professionnelle ou d'un outil interactif de visualisation de données. C'est une nouvelle capacité puissante, conçue pour fonctionner parfaitement dans l'environnement C# et .NET que vous connaissez déjà.
Le défi du rendu d'une Terre numérique
Intégrer un globe 3D dans une application n'a rien d'anodin. Les obstacles techniques sont importants et multiples, et exigent souvent une expertise spécialisée.
Il y a d'abord le volume considérable de données. Un modèle haute résolution de la Terre, avec terrain, imagerie satellite et bâtiments 3D, peut facilement se mesurer en téraoctets. Il est impossible de charger autant d'informations en mémoire en une seule fois. Un système robuste de streaming et de niveaux de détail (LOD) est donc indispensable. Ce système doit récupérer intelligemment uniquement les données que l'utilisateur voit à un instant donné, en ajustant dynamiquement la qualité en fonction de la position de la caméra.
Ensuite, les développeurs doivent gérer des transformations complexes entre systèmes de coordonnées. Placer précisément un objet à un emplacement réel donné nécessite de convertir les coordonnées géographiques (latitude, longitude, altitude) dans le système de coordonnées cartésiennes 3D du moteur. Cela implique des calculs mathématiques sophistiqués pour tenir compte de la courbure de la Terre et garantir que les objets restent correctement ancrés lorsque l'utilisateur se déplace et zoome autour du globe.
Enfin, tout cela doit être réalisé en maintenant de bonnes performances de rendu. Le chargement, le déchargement et le rendu constants de nouvelles portions de carte sollicitent fortement l'application, et un système mal optimisé peut rapidement aboutir à une expérience utilisateur lente et peu réactive. Ensemble, ces défis détournent souvent d'importantes ressources de développement des fonctionnalités essentielles de l'application.
Qu'est-ce qu'Evergine.Cesium ?
Evergine.Cesium est un add-on officiel qui apporte une solution complète aux défis du rendu à l'échelle du globe. Il est conçu pour servir de pont robuste entre votre application Evergine et le riche écosystème de la plateforme Cesium. Bien plus qu'un simple moteur de rendu, c'est une intégration complète qui prend en charge l'ensemble du pipeline de données géospatiales.
Pour donner vie à cette capacité, l'add-on orchestre une architecture sophistiquée. Il s'appuie sur Cesium Native, la bibliothèque C++ open source, pour sa capacité spécialisée à gérer les mathématiques complexes et les structures de données propres au contenu géospatial 3D, comme le format 3D Tiles. Notre travail d'ingénierie s'est concentré sur l'intégration profonde de ce traitement de base avec le puissant moteur de rendu d'Evergine. Evergine.Cesium joue le rôle de pont intelligent : il gère le flux de données vers le graphe de scène, se coordonne avec le gestionnaire de mémoire et assure in fine le rendu des visuels finaux, impressionnants. Cette approche synergique offre un add-on robuste et performant qui s'intègre comme une extension naturelle du moteur, le tout exposé via une API C# simple mais puissante.
Capacités principales
Evergine.Cesium offre un riche ensemble de fonctionnalités conçues pour créer des applications géospatiales dynamiques, interactives et pilotées par les données.
- Rendu du globe haute performance : l'intégration profonde de l'add-on au pipeline de rendu d'Evergine garantit que la production à haut débit du moteur géospatial se traduit par une expérience fluide et réactive pour l'utilisateur final.
- Intégration transparente des données : il se connecte directement à Cesium ion, une source organisée de contenu 3D mondial, vous donnant un accès immédiat au terrain mondial, à l'imagerie satellite haute résolution et aux modèles 3D de villes.
- Basé sur le standard 3D Tiles : l'add-on est construit autour du format OGC 3D Tiles, un standard ouvert conçu spécifiquement pour le streaming de jeux de données géospatiaux 3D hétérogènes à grande échelle.
- Services de géocodage intégrés : grâce à la prise en charge intégrée d'Azure Maps, vous pouvez facilement mettre en place des fonctionnalités de géocodage, permettant aux utilisateurs de rechercher des adresses et des lieux réels, puis d'y faire voler la caméra directement sur le globe.
- Éclairage solaire dynamique et précis : l'add-on comprend des composants pour simuler des conditions d'éclairage réalistes. Vous pouvez créer un soleil dynamique dont la position évolue avec précision selon l'heure de la journée et l'emplacement de la caméra sur le globe, ajoutant une touche de réalisme à vos simulations.
- Navigation intuitive à l'échelle du monde : un contrôleur de caméra dédié offre une expérience intuitive de type « fly-to » pour naviguer dans un environnement sphérique, permettant aux utilisateurs d'explorer facilement votre scène.
Au-delà de la visualisation : placer votre contenu sur le globe
Un globe terrestre dynamique constitue une base solide, mais sa véritable valeur se révèle lorsqu’il devient le support de vos propres données et créations. Un jumeau numérique n’est pas qu’une simple carte : c’est une représentation vivante d’un environnement réel, peuplée d’éléments et d’informations qui lui sont propres.
C’est pourquoi nous avons doté Evergine.Cesium d’un workflow simple, basé sur des composants, pour placer vos propres modèles 3D sur le globe avec une précision géographique. Ce processus, appelé géoréférencement, est pris en charge par des outils intuitifs intégrés à l’add-on.
Pour le développeur, le workflow est simple. Vous pouvez prendre n’importe quel modèle 3D importé dans votre projet Evergine et, en lui ajoutant un composant dédié, l’ancrer à un emplacement précis du monde réel. Il vous suffit d’indiquer la latitude, la longitude et l’altitude : Evergine.Cesium se charge de toutes les transformations complexes nécessaires pour placer et orienter correctement l’objet sur la surface courbe de la Terre.
Cette capacité est essentielle pour un large éventail d’applications. Vous pouvez désormais :
- Peupler une ville de modèles de bâtiments personnalisés pour la visualisation architecturale.
- Placer des modèles de véhicules, de navires ou d’avions pour des simulations avancées de logistique et de trafic.
- Afficher des marqueurs 3D animés à l’emplacement de capteurs IoT pour visualiser des flux de données en temps réel.
- Construire des jumeaux numériques détaillés de sites industriels, comme des parcs éoliens ou des usines, dans leur contexte géographique global.
Remarque : Pour un grand nombre d’éléments personnalisés devant être diffusés en streaming de manière efficace, il est préférable de les traiter sous forme de 3D Tileset personnalisé et de les héberger sur Cesium ion.
Cet ensemble d’outils fait passer Evergine.Cesium du statut de simple visualiseur du globe à celui de véritable plateforme interactive pour créer des applications géospatiales riches et pilotées par les données.
Une révolution pour le développement géospatial en .NET
Le principal avantage est la mise en place d’un workflow C# unifié, de bout en bout. Vous pouvez désormais créer, tester et déployer des applications sophistiquées de visualisation globale sans quitter le confort de vos outils et bibliothèques .NET préférés. Grâce à cette intégration transparente, vous pouvez associer un globe 3D interactif spectaculaire à des interfaces utilisateur complexes créées avec des frameworks familiers comme MAUI, Avalonia ou WPF, ce qui en fait une solution idéale pour les applications industrielles et d’entreprise riches en données.
De plus, cet add-on vous permet de créer de puissantes synergies avec les autres capacités d’Evergine. Imaginez associer un jumeau numérique géolocalisé à l’échelle mondiale au support des nuages de points à grande échelle d’Evergine, ou afficher des données de photogrammétrie haute résolution issues de 3D Tiles aux côtés de modèles CAD précis provenant de formats industriels. En ajoutant un rendu géospatial de premier plan aux fonctionnalités existantes, Evergine.Cesium ne se contente pas d’ajouter une fonctionnalité : il ouvre la voie à de toutes nouvelles catégories d’applications, entièrement développées en C#.










Prise en main
Prêt à intégrer le monde entier à votre projet ? L’intégration d’Evergine.Cesium a été conçue pour être simple.
Assurez-vous d’abord d’avoir installé Evergine et le SDK .NET 10. Ajoutez ensuite simplement le package NuGet Evergine.Cesium à votre projet Evergine.
Vous pouvez alors initialiser l’ensemble du système en enregistrant le CesiumCoordinator comme manager dans votre scène. Ce manager central gère tout, de la connexion aux sources de données à la configuration de l’apparence du globe. L’exemple ci-dessous montre une configuration type, dans laquelle nous définissons un token Cesium ion et choisissons Bing Maps Aerial comme imagerie de base.
using Evergine.Cesium;
using Evergine.Framework;
using Evergine.UI;
public class MyScene : Scene
{
public override void RegisterManagers()
{
base.RegisterManagers();
// The CesiumCoordinator manager requires an entity tagged as "MainCamera" with a Camera3D component.
var cesium = new CesiumCoordinator()
{
AccessToken = "<YOUR_CESIUM_ION_TOKEN>",
AzureMapsKey = "<YOUR_OPTIONAL_AZURE_MAPS_KEY>",
EntityManager = this.Managers.EntityManager,
OverlayProvider = TerrainOverlayProvider.BingAerial,
};
this.Managers.AddManager(cesium);
}
}Avec cette configuration simple, vous disposez désormais dans votre application d’un globe 3D entièrement interactif au rendu superbe. C’est le point de départ idéal pour commencer à construire votre monde.
