Modélisation des données et Géométrie
Au sein de l’architecture SIGA3D, dans la couche « Données », la gestion des géométries constitue un bloc à part entière. En effet, le nom et caractéristique des choses et leur enveloppe sont deux types d’information fondamentalement différents. Il est plus facile de travailler et d’échanger de l’information sémantique que des géométries, mais afficher des listes et des tableaux n’est pas suffisant pour les intervenants qui ont besoin de situer les choses visuellement au sein d’une hiérarchie normalisée (MacPherson et Raymond, 2010).
Pour ces raisons, les données géométriques sont stockées séparément des autres données (sémantiques) afin d’alléger au maximum les bases de données et les requêtes nécessaires à l’affichage. Ainsi, les graphismes sont traités sous forme de graphe de scène, ce qui permet un chargement direct (sans transformations des données) au sein du moteur graphique de l’application. Le graphe sémantique, quant à lui, est issu de l’architecture ontologique décrite dans le paragraphe précédent.
Exemple de graphe acyclique orienté Figure 47. Exemple d’un graphe de scène avec des groupes de nœuds et niveaux de détail (source : (Germs et al., 1999)) La notion de graphe de scène est apparue dans les années 90, à l’époque où la programmation de scènes 3D demandait de solides notions en programmation avec des librairies graphiques de bas niveau, afin de manipuler des entités de plus haut niveau (Huot, 2005). Le mécanisme des graphes de scènes est aujourd’hui largement utilisé dans les applications faisant de la modélisation 3D ou même 2D (jeux vidéo, visualisation scientifique, CAO…) du fait de sa compatibilité avec les principes de la programmation objet et une bonne structuration de la scène.
On utilise naturellement le graphe de scène pour décrire des relations spatiales entre les objets. Le principe est d’utiliser un graphe acyclique orienté (un exemple est donné dans la Figure 46), afin d’organiser hiérarchiquement une scène 3D. Chaque nœud est un élément de la scène à représenter, celle-ci étant définie par une racine (un nœud du graphe) et un sous-graphe du graphe de scène. On obtient ainsi une simplification et une optimisation de l’ordre d’affichage pour les moteurs de rendu 3D, et les propriétés de chaque entité sont aisément transmissibles à leur descendance (position, orientation, contexte graphique…).
Les données géométriques, tout comme les autres objets nécessaires à la visualisation (telles que les sources de lumière) sont stockés dans un graphe de scène hiérarchique (Figure 47). Celui-ci est constitué de différents types de « nœuds », chacun ayant leurs propres effets et fonctionnalités. Ainsi, des données géométriques pourront être stockées dans un « nœud géométrique », et un « groupe de nœud » peut être utilisé pour regrouper plusieurs géométries (comme celles des enveloppes composées). En particulier, un « nœud niveaude-détail » est utilisé pour stocker plusieurs représentations d’un même objet, allant des géométries les plus simples aux plus détaillés.
Seulement l’une de ces représentations est visible à un point donné, en fonction du niveau de détail nécessaire à la visualisation. En outre, chaque nœud contient des données définies par l’utilisateur (comme des données attributaires thématiques). SIGA3D reprend le concept du graphe de scène en poussant le mécanisme de multireprésentation.
En effet, dans le graphe de scène de l’architecture SIGA3D, il est possible de stocker plusieurs représentations d’un même objet, sans la notion systématique de simplification des géométries que l’on trouve dans le sens traditionnel des LoD. Ainsi, il est possible d’avoir plusieurs représentations possédant un même niveau de complexité géométrique (nombres de triangles par exemple, ou représentation 2D et représentation 3D) mais dont les critères d’affichage sont différents.
La difficulté dans ce cas est donc de choisir quelle représentation afficher pour un objet. Pour cela, la structure de modélisation sémantique détaillée dans le prochain paragraphe permet, entre autres, de faire le lien entre les différentes représentations sémantiques d’un objet et les représentations géométriques du graphe de scène.
La couche des données dans l’architecture SIGA3D est une extension de DMF qui constitue la première brique de l’architecture C-DMF (Figure 48). Ces deux briques couplées répondent aux besoins de description ontologique par la définition de règles avec un mécanisme de multireprésentation sémantique des données.
La représentation multiple des données est autorisée grâce à la définition de contextes locaux sur certains opérateurs, couplée à la définition spécifique d’éléments représentant l’espace et le temps, moteurs principaux des besoins de représentation multiple. La présentation des éléments est regroupée en quatre ensembles, la majorité des éléments pouvant être associés à un opérateur équivalent défini de manière locale par rapport à un contexte. Le premier groupe comprend les éléments de définitions de classes et de propriétés et leur correspondant associé au contexte local. Le deuxième groupe présente les éléments de définitions de variables, de prédicats unaires et binaires.
Ces éléments sont utilisés pour la définition d’énoncés logiques à l’aide des opérateurs logiques présentés dans le troisième groupe (comme l’opérateur d’implication permettant d’établir des règles). Enfin, le dernier groupe correspond à la définition des contextes locaux. Cette partie s’attache notamment à définir l’action des contextes locaux sur chacun des opérateurs concernés afin de comprendre leur utilité. Mais commençons par détailler le principe des contextes locaux.