Select your language

Table des matières

  1. Histoire et évolution d'OpenSceneGraph
  2. Caractéristiques techniques et fonctionnalités
  3. Formats de fichiers et compatibilité
  4. Interopérabilité avec les systèmes CAO
  5. Comparaison avec d'autres formats de visualisation 3D
  6. Solutions CAD Interop pour OpenSceneGraph
  7. Bonnes pratiques pour l'échange de fichiers OSG
  8. Applications pratiques et cas d'usage

OpenSceneGraph représente une solution robuste pour l'interopérabilité des données techniques issues de systèmes CAO vers des applications de visualisation et de réalité virtuelle. Ce moteur 3D open source offre une plateforme puissante pour transformer des modèles complexes en visualisations interactives accessibles sur diverses plateformes.

OpenSceneGraph est un moteur 3D programmé entièrement en C++ et construit autour d'OpenGL, ce qui lui confère une compatibilité exceptionnelle avec de nombreux systèmes d'exploitation, notamment IRIX, Linux, FreeBSD, Mac OS X et Windows. Cette polyvalence en fait un choix privilégié pour les projets nécessitant une interopérabilité multi-plateforme des données CAO.

Depuis ses débuts, OSG s'est imposé comme une solution de référence pour visualiser des modèles 3D complexes dans des domaines variés tels que les simulations de vol, les applications marines et spatiales, la visualisation scientifique, l'éducation et même les jeux. Sa capacité à gérer des scènes 3D complexes tout en maintenant des performances optimales explique sa popularité persistante malgré l'émergence de nouvelles technologies.

Histoire et évolution d'OpenSceneGraph

Le projet OpenSceneGraph a été lancé en 1998 par Don Burns, qui a ensuite créé sa propre société tout en continuant à contribuer au développement du projet. Un tournant majeur s'est produit en 1999 lorsque Robert Osfield a rejoint l'équipe, travaillant initialement sur le portage des composants pour Microsoft Windows.

En septembre 1999, le code source d'OpenSceneGraph a été rendu public sous les termes de la licence LGPL, marquant le début de son parcours en tant que projet open source. Vers la fin de cette même année, Osfield a pris la direction du projet et a entrepris une refonte majeure du code existant, mettant l'accent sur la modernisation et l'adoption des standards C++ et des modèles de conception contemporains.

Le projet s'est professionnalisé en avril 2001 lorsque Robert Osfield a fondé OpenSceneGraph Professional Services, offrant du support commercial, des services de conseil et des formations. La première version stable officielle (1.0) est sortie en 2005, suivie par la version 2.0 en 2007, qui a ajouté le support pour les systèmes multi-cœurs et multi-GPU, plusieurs NodeKits importants, et l'utilisation du système de compilation multiplateforme CMake.

Depuis lors, le projet a connu une croissance rapide avec plus de 530 contributeurs pour la version stable actuelle. Cependant, depuis 2019, OpenSceneGraph est entré en phase de maintenance, le principal effort de développement étant désormais dirigé vers son successeur, VulkanSceneGraph, basé sur Vulkan pour tirer parti des dernières avancées matérielles.

Aujourd'hui, la dernière version stable d'OpenSceneGraph est la 3.6.5, sortie le 31 janvier 2020.

Caractéristiques techniques et fonctionnalités

OpenSceneGraph propose un ensemble complet de fonctionnalités qui en font une solution particulièrement adaptée pour l'interopérabilité des données CAO et la visualisation 3D avancée.

Architecture et performance

L'architecture d'OpenSceneGraph repose sur une approche par graphe de scène, représentant les mondes 3D comme un graphe de nœuds regroupés logiquement et spatialement en sous-graphes pour optimiser le comportement et les performances. Cette structure facilite l'organisation hiérarchique des données complexes issues des systèmes CAO.

OpenSceneGraph offre des performances élevées grâce à plusieurs techniques d'optimisation:

  • Culling (élimination) de frustum de vue
  • Culling d'occlusion
  • Culling de petites caractéristiques
  • Nœuds de niveau de détail (LOD)
  • Tri des états OpenGL
  • Tableaux de sommets et objets tampons de sommets
  • Support du langage de shader OpenGL (GLSL)
  • Listes d'affichage

Support multi-plateforme et évolutivité

La conception d'OpenSceneGraph permet une portabilité exceptionnelle avec des dépendances minimales, nécessitant essentiellement C++ standard et OpenGL. Il fonctionne sur des configurations allant des appareils portables jusqu'aux systèmes multi-cœurs et multi-GPU haut de gamme, ainsi que sur des clusters.

Le moteur prend en charge OpenGL de la version 1.0 à 4.6, ainsi qu'OpenGL ES de la version 1.1 à 3.2, permettant de supporter à la fois le matériel ancien et les systèmes d'exploitation plus récents. Depuis la version 3.0.0, OpenSceneGraph supporte également le développement d'applications pour les plateformes mobiles, notamment iOS et Android.

Modèles de thread et gestion de la mémoire

OpenSceneGraph intègre une bibliothèque de threading appelée OpenThreads, qui fournit une interface orientée objet légère pour les programmeurs C++. Elle est inspirée de l'API de thread Java et des standards POSIX Threads.

Cette conception multi-thread permet d'exécuter plusieurs paires de traversées cull-draw sur plusieurs processeurs liés à plusieurs sous-systèmes graphiques, maximisant ainsi les performances sur les machines modernes.

Formats de fichiers et compatibilité

OpenSceneGraph utilise principalement ses propres formats natifs tout en offrant une large compatibilité avec d'autres formats standard de l'industrie.

Formats natifs et extensions

L'extension de fichier *.osg est utilisée pour stocker les scènes créées avec OpenSceneGraph. Ces fichiers contiennent des informations sur les modèles 3D, les textures, les lumières, les caméras et la configuration de la scène. OSG propose deux formats principaux:

  • Format ASCII (.osg) - Format texte lisible et éditable
  • Format binaire (.osgb) - Plus compact et plus rapide à charger

Le format .ive, également natif à OpenSceneGraph, est particulièrement rapide à charger, ce qui le rend idéal pour le stockage de bases de données et les grandes bases de données.

Compatibilité avec d'autres formats

OpenSceneGraph prend en charge l'importation et l'exportation de nombreux formats de fichiers, notamment:

  • COLLADA
  • OpenFlight
  • 3D Studio (.3ds)
  • VRML
  • Alias Wavefront (OBJ)
  • Formats d'image 2D variés (JPEG, PNG)
  • Formats géospatiaux (GeoTIFF)

Cette compatibilité étendue permet aux utilisateurs de travailler avec des modèles 3D créés dans d'autres logiciels comme SketchUp, Maya et Blender, et de les utiliser dans leurs propres applications OpenSceneGraph.

Support géométrique

Selon la documentation technique, OpenSceneGraph supporte principalement les géométries de type surface, tandis que d'autres types comme les points, les lignes, les cercles ou les polygones ne sont pas directement pris en charge. Cette spécialisation reflète sa fonction première de visualisation 3D plutôt que de modélisation CAO complète.

Interopérabilité avec les systèmes CAO

L'une des forces majeures d'OpenSceneGraph réside dans sa capacité à servir de pont entre les systèmes CAO complexes et les applications de visualisation légère.

Conversion et importation de données

OpenSceneGraph fournit un utilitaire appelé osgconv qui permet de lire des bases de données 3D, d'appliquer des opérations de base et de les enregistrer comme une base de données 3D unique. Cet outil est particulièrement utile pour:

  • Lire des formats 3D standard (OpenFlight, 3DS, OBJ, etc.)
  • Convertir ces formats en formats natifs OSG (.osg ou .ive)
  • Optimiser le graphe de scène lors du chargement pour réduire la taille et améliorer les performances

Gestion des textures

La conversion des textures constitue un aspect crucial lors de la transformation de fichiers entre différents formats vers le format OpenSceneGraph7. Le format .OSG supporte l'option "OutputTextureFiles" qui permet de générer de nouveaux fichiers d'image de texture externes.

Points importants concernant la gestion des textures:

  • Les fichiers de texture sont générés en utilisant le nom de fichier de texture d'origine présent dans la scène
  • Le format utilisé est déterminé par l'extension de nom de fichier
  • Certaines combinaisons de formats et de données de texture peuvent être incompatibles (par exemple, le format .RGB ne peut pas stocker de données de texture compressées)
  • La compression et la décompression des textures sont effectuées par l'implémentation OpenGL et non par un algorithme logiciel OSG

Comparaison avec d'autres formats de visualisation 3D

Pour mieux situer OpenSceneGraph dans l'écosystème des technologies de visualisation 3D et VR/AR, voici une comparaison avec trois autres formats/technologies majeurs:

CaractéristiqueOpenSceneGraphCOLLADAglTFUnity/FBX
Type Framework 3D complet Format d'échange Format de transmission Format propriétaire
Licence LGPL Open standard Open standard Propriétaire
Orientation Visualisation scientifique et simulation Échange entre applications créatives Web et applications mobiles Jeux et contenu interactif
Compression Oui (.ive) Limitée Optimisée Oui
Support shaders GLSL complet Basique PBR et extensions Avancé
Multi-plateforme Excellente N/A (format) N/A (format) Limitée
Animation Oui Oui Oui Avancée
VR/AR natif Oui Non Avec extensions Avancé
Maturité Élevée (maintenance) Élevée Croissante Élevée
Évolution actuelle Limitée (succession par VulkanSceneGraph) Stable Très active Active

OpenSceneGraph se distingue par sa nature de framework complet plutôt que simple format d'échange, offrant une solution intégrée pour la visualisation scientifique et la simulation, mais son évolution est désormais limitée alors que d'autres formats comme glTF connaissent un développement plus actif.

Solutions CAD Interop pour OpenSceneGraph

CAD Interop distribue plusieurs logiciels pour préparer, visualiser et convertir les fichiers OpenSceneGraph. Parmi ces solutions, SimLab se distingue particulièrement pour la création d'expériences immersives à partir de modèles OpenSceneGraph.

SimLab VR Studio

SimLab VR Studio est un atelier complet de création d'expériences en réalité virtuelle qui permet de transformer des modèles 3D en environnements interactifs sans nécessiter de compétences en programmation. Conçu pour simplifier le processus de visualisation 3D, il offre une suite d'outils puissants et conviviaux.

Principales caractéristiques de SimLab VR Studio:

  • Facilité d'utilisation sans compétences en codage
  • Licence gratuite pour tester toutes les fonctionnalités
  • Création rapide de contenu VR
  • Compatibilité avec une grande variété de systèmes et dispositifs VR
  • Support pour plus de 30 formats de fichiers 3D, facilitant l'interopérabilité
  • Traitement sécurisé des données avec conversion en local
  • Import et modification des animations en temps réel
  • Bibliothèques de modèles 3D préconçus
  • Outils dédiés pour l'éclairage naturel et réaliste
  • Interaction et logique en VR avec des commandes intuitives

Applications de SimLab VR Studio:

  • Formation dans des domaines comme la médecine, la sécurité et la formation professionnelle
  • Démonstration de produits (meubles, voitures, design d'intérieur)
  • Présentations immersives pour écoles, universités et entreprises
  • Divertissement, jeux et tourisme virtuel

SimLab VR Viewer

Complémentaire à SimLab VR Studio, SimLab VR Viewer est une application autonome et multiplateforme gratuite qui permet de visualiser les projets 3D en réalité virtuelle.

Caractéristiques principales de SimLab VR Viewer:

  • Compatibilité avec presque tous les casques VR du marché
  • Outils de mesure des dimensions facilitant les interactions
  • Outils d'annotations pour améliorer la communication
  • Divers modes de navigation (Walking, Flying, Mechanical)
  • Fonctionnalité de partage d'expériences VR
  • Disponible sous iOS et Android
  • Compatible avec les casques HTC Vive, Oculus PC, Oculus Quest et PicoVR

Services cloud intégrés

L'écosystème SimLab inclut également des services cloud permettant8:

  • Le stockage et l'accès sécurisés aux expériences VR
  • L'organisation des expériences en catalogues
  • Le partage sécurisé d'expériences ou leur publication à la communauté
  • La récupération des modifications et notes ajoutées par les destinataires
  • L'hébergement de modèles 3D en documents WebGL en ligne
  • La synchronisation entre plusieurs appareils via le compte SimLab Cloud

Bonnes pratiques pour l'échange de fichiers OSG

Basé sur les informations disponibles dans les forums et la documentation technique, voici quelques bonnes pratiques pour optimiser l'échange de fichiers OpenSceneGraph:

Optimisation du graphe de scène

  • Utilisez osgconv pour optimiser automatiquement le graphe de scène lors de la conversion, réduisant ainsi la taille des fichiers et améliorant les performances d'exécution
  • Pour les grandes bases de données, privilégiez le format binaire .ive qui est particulièrement rapide à charger

Gestion des textures

  • Assurez-vous que le répertoire de destination spécifié pour les fichiers de texture existe avant la conversion
  • Soyez attentif aux incompatibilités potentielles entre certains formats et types de données de texture
  • Si vous rencontrez des problèmes de textures corrompues, vérifiez la compatibilité de votre pilote OpenGL, car la compression/décompression des textures est réalisée par l'implémentation OpenGL

Conversion entre formats

  • Lors de la conversion de formats comme .IVE (avec textures intégrées) vers .OSG (qui ne les intègre pas), utilisez l'option "OutputTextureFiles" pour générer correctement les fichiers de texture externes
  • Évitez de convertir des textures compressées vers des formats qui ne supportent pas la compression (comme .RGB)

Compatibilité multi-plateforme

  • Testez vos modèles sur différentes plateformes pour vous assurer que les chemins de texture et les références sont correctement résolus
  • Utilisez des chemins relatifs plutôt que des chemins absolus pour les références aux fichiers de texture

Pourquoi envisager la migration vers VulkanSceneGraph?

Depuis 2019, OpenSceneGraph est entré en phase de maintenance, le développement principal étant redirigé vers VulkanSceneGraph. Cette évolution s'explique par plusieurs facteurs:

  • VulkanSceneGraph offre des performances "jamais atteintes auparavant" et un accès aux fonctionnalités matérielles les plus récentes
  • Il conserve l'ADN éprouvé d'OSG tout en modernisant l'architecture
  • Les développements récents comme le ray-tracing accéléré par matériel et les mesh shaders ne sont pas disponibles via les extensions OpenGL

Pour les nouveaux projets nécessitant des fonctionnalités de pointe, il est recommandé d'évaluer VulkanSceneGraph comme alternative à OpenSceneGraph.

Applications pratiques et cas d'usage

OpenSceneGraph trouve des applications dans de nombreux domaines nécessitant une visualisation 3D avancée et une interopérabilité avec les données CAO:

Simulations industrielles et formation

OpenSceneGraph est largement utilisé pour les simulations de vol, marines, véhiculaires et spatiales. Ces applications bénéficient de la capacité d'OSG à:

  • Gérer des scènes 3D complexes avec un haut niveau de détail
  • Maintenir des performances élevées même avec des modèles volumineux
  • Intégrer des données provenant de différents systèmes CAO

Visualisation scientifique et médicale

La visualisation scientifique et médicale représente un autre domaine d'application majeur pour OpenSceneGraph. Les chercheurs et professionnels de la santé utilisent OSG pour:

  • Visualiser des données complexes en 3D
  • Interagir avec les modèles en temps réel
  • Partager et collaborer sur des visualisations

Réalité virtuelle et augmentée

Avec l'essor des technologies immersives, OpenSceneGraph joue un rôle important dans le développement d'applications de réalité virtuelle et augmentée. SimLab VR Studio et SimLab VR Viewer permettent notamment de:

  • Créer des expériences VR à partir de modèles 3D existants
  • Faciliter la formation immersive
  • Présenter des produits et concepts en réalité virtuelle

OpenSceneGraph offre une solution mature et éprouvée pour l'interopérabilité des données CAO dans le contexte de la visualisation 3D et de la réalité virtuelle. Bien que le projet soit désormais en phase de maintenance, sa stabilité, sa performance et son écosystème bien développé en font encore un choix pertinent pour de nombreux projets industriels et scientifiques. Pour les applications nécessitant les dernières avancées technologiques, l'évolution vers VulkanSceneGraph représente une voie d'avenir prometteuse.

SimLab