Les niveaux de détail (Level of Detail LOD)

En simulation visuelle "temps réel", l'utilisation de niveaux de détails consiste à diminuer le nombre de polygones d'un objet affiché à l'écran en fonction de la façon dont il est perçu par l'observateur : un objet lointain ou petit nécessite moins de détails qu'un objet proche ou gros. Ceci est vrai pour deux raisons principales :

De cette façon la puissance de la machine graphique va être mieux utilisée : elle n'aura plus à calculer des éléments inutiles de la scène vue. Mais cela implique d'une part de disposer de modèles des objets représentés dans la scène adaptés donc des représentations multiples chacune correspondant à un niveau de détail et d'autre part des critères automatiques de sélection d'une de ces représentations.

On conçoit bien que les différentes représentations du même objet vont être plus ou moins détaillées tout en en conservant les caractéristiques principales de volume, de texture, de dynamique. De même les critères de sélection peuvent être complexes : il est facile de prendre en compte la distance de l'objet à l'observateur mais ceci est trop grossier car ce qui compte c'est plutôt la taille sur l'écran de l'objet considéré ! Une silhouette de montagne sera vue en détail à 2km alors qu'un véhicule sera à peine distinguable à la même distance si ce n'est pas un gros poids lourd ou s'il n'est pas dans une plaine la nuit tous phares allumés.

Chaque objet a une importance relative dans la scène : s'il s'agit d'un objet que l'on cherche et isolé il est important de bien le représenter alors qu'un objet d'un type courant en nombreux exemplaires dans la même scène supportera des représentations simplifiées.

Les conditions de visibilité sont également importantes : de nuit et par brouillard il peut être inutile de gérer de nombreux niveaux de détails.

  Comment TrainSimulator gère les niveaux de détail ?

 Malheureusement la gestion des niveaux de détail semble être limitée dans ce cas à un critère de distance. Compte tenu de ce qui est dit plus haut, ce n'est pas l'idéal mais c'est mieux que rien!

Les objets définis dans MSTS peuvent disposer de plusieurs niveaux de détail (je ne connais pas le nombre maximum) tous inclus dans le même fichier de forme du modèle (le fichier .s) divisé en autant de séquences (distance_levels) qu'il y a de représentations de l'objet. Chaque représentation est accompagnée de la distance maximale en mètres à laquelle elle sera utilisée. En analysant les modèles par défaut du jeu, on constate que presque tous les matériels et les objets de la scène disposent de 5 niveaux. Exemples :

Par contre parmi les centaines (sinon les milliers) de modèles complémentaires disponibles seuls quelques dizaines disposent d'au moins deux niveaux! Le reste a un seul niveau avec une distance par défaut de 2000m! Ce qui veut dire que tous les détails sont gérés par la machine graphique lorsque l'objet est à une distance de 0 à 2000m de l'observateur et au delà il n'est plus représenté : on imagine bien que c'est une perte de puissance pour des objets de petite dimension et aberrant pour des objets très grands (un viaduc ou une tour par exemple) qui vont disparaître d'un coup lorsque la limite sera atteinte.

A suivre....

Pour compléter ces informations vous trouverez une documentation de mise en oeuvre sur les objets statiques créés avec TrainSimModeler à  http://perso.wanadoo.fr/anlauras/pages_msts/

 © 2002-2004 - PG - Mise à jour  23 mars 2004