Graphique de la scène

Un graphe de scène est une structure de données souvent utilisée dans le développement d' applications d' infographie . Il s'agit d'une structure de données orientée objet avec laquelle la logique, et dans de nombreux cas également la disposition spatiale de la scène bidimensionnelle ou tridimensionnelle à afficher, est décrite.

Le terme graphe de scène n'est que vaguement défini. Cela est dû au fait que les graphes de scène concrets sont généralement développés par application. Les programmeurs utilisent l'idée de base, mais l'adaptent aux exigences spécifiques de l'application. Il n'y a donc pas de règles fixes quant aux fonctions qu'un graphe de scène doit remplir.

Modélisation hiérarchique

Du point de vue de la théorie des graphes , un graphe de scène est un graphe connecté et dirigé sans cercles dirigés , dont le nœud racine contient la scène entière («l'univers»). Les nœuds enfants qui contiennent les objets individuels de la scène ou des propriétés telles que les transformations et les couleurs sont subordonnés à cette racine. Ces nœuds peuvent à leur tour être la racine d'un autre arbre, c'est-à-dire d'une autre hiérarchie d'objets. Puisqu'il s'agit d'un graphe et non d'un arbre, un nœud peut avoir plusieurs nœuds parents.

Cette approche permet une modélisation hiérarchique des objets dans une scène. Chaque nœud du graphe de scène a généralement une matrice de transformation . Lorsque cette matrice est manipulée , l'objet associé lui-même, mais aussi les objets de tous les nœuds subordonnés, sont transformés . Dans ce cas, une distinction est faite entre les coordonnées de l' objet ( coordonnées d' un objet par rapport à l'objet superordonné) et les coordonnées du monde (coordonnées d'un objet par rapport à l'origine de l'univers - la racine du graphe de la scène). Cette vue hiérarchique simplifie considérablement la structure et la manipulation d'une scène. Vous n'êtes pas obligé de transformer chaque partie individuelle d'un objet individuellement, mais simplement de transformer l'intégralité de toutes les parties individuelles. Si une scène contient plusieurs copies d'un objet, toutes ces copies peuvent être représentées par un seul objet. Il y a alors plusieurs chemins de la racine au nœud avec cet objet. Chaque chemin avec ses propres transformations et ses différentes propriétés. On parle d' instanciation .

La modélisation d'une voiture à quatre roues peut servir d'exemple. Un nœud dans le graphique de la scène représente l'objet voiture. Ce nœud a quatre nœuds enfants, dont chacun contient les matrices de transformation et les matrices de rotation des roues individuelles. Ces quatre nœuds enfants ont à leur tour un seul et même nœud enfant qui contient un objet de type roue. Un objet - quatre représentations. Si la position ou l'emplacement du nœud automatique est modifié, le changement affecte également tous les nœuds enfants, c'est-à-dire dans ce cas les roues. Un recalcul manuel de la position des roues n'est donc pas nécessaire.

Hiérarchies de volumes englobants

Les graphiques de scène sont souvent utilisés pour rendre les scènes d'une application plus efficacement ou pour accélérer les calculs tels que les requêtes de collision . À cette fin, une hiérarchie de volumes englobants est effectuée avec un graphe de scène . Chaque nœud se voit également attribuer un volume de délimitation qui montre l'étendue spatiale du nœud, y compris les nœuds enfants. Des corps géométriques simples tels que des cuboïdes à axe parallèle (AABB), des cuboïdes alignés sur l'objet (OBB) ou des sphères sont utilisés comme volumes englobants.

À l'aide des volumes englobants, tous les éléments invisibles (c'est-à-dire pas dans le tronc de vue ) sont déterminés avant le processus de rendu . Si un nœud a déjà été classé comme invisible, il n'est plus nécessaire de vérifier ses nœuds enfants. De cette manière, la quantité de géométrie potentiellement visible et donc rendue peut être réduite avec peu d'effort.

Systèmes de graphes de scène bien connus