ContribCliquez ici pour proposer des corrections ou des compléments pour cette page.
Terrain V7

Le système de scènes d'X-Plane a subit des changements significatifs avec la sortie d'X-Plane 6.10 et les versions qui ont suivi. Le système de scènes "par défaut" a été complètement revu de manière à fournir un système de rendu beaucoup plus puissant et souple. Ce document décrit le concept du nouveau système de rendu pour les créateurs qui souhaiteront revoir et editer des scènes.

LES BASES

La forme de base d'un fichier scène n'a pas changé; un fichier scène contient des données concernant un rectangle de terrain d'environ 1x1 degré. Les fichiers scènes sont toujours nommés selon les coordonnées de leur coin Sud-Ouest; par ex: le fichier -42+071 contient tous les points entre les latitudes 42-sud et 41-sud, et entre les longitudes 71-est et 72-est incluses.Le fichier scène contient un "mesh" qui décrit la forme du terrain dans ce rectangle de 1x1 degré.

Le "mesh" contient une série de vertex (sommets, coin d'arrêtes; ici: intersections), ou points distincts sur la grille. Chaque vertex repose sur une grille contenant 201 points du Nord au Sud et 151 points de l'Est à l'Ouest. Chaque série de 4 points forment un "quad". Comme tous les quads sont contenus (dans la grille), il y a 200 quads du Nord au Sud et 150 quads de l'Est à l'Ouest. Les vertex sur le bord Est d'un fichier scène touchent le bord Ouest du fichier scène suivant. Mais ces vertex du bord ne doivent pas nécessairement avoir les mêmes coordonnées que leurs correspondants dans le fichier suivant.

Il est important de faire la distinction entre vertex(s) et quads. Souvent, les propriétés d'un quad sont spécifiées par le vertex Sud-Ouest du quad en question. Mais parfois, les 4 vertex d'un quad contribuent à définir ses propriétés. Par exemple, comme les vertex de droite et d'en haut (d'un fichier scène) ne sont les vertex Sud-Ouest d'aucun quad dans le fichier scène en question, certaines de leur caractéristiques sont parfois ignorées.

Chaque vertex contient les données suivantes:

  • 1) Sa position dans le fichier scène, précisée par latitude et longitude. Bien que les vertex forment une grille, il n'est pas nécessaire que cette grille soit régulière. Cependant, chaque quad ne doit jamais empiéter sur aucun autre quad.
  • 2) Son élévation par rapport au niveau de la mer. Ceci permet au mesh de former des montagnes, des vallées, etc.
  • 3) Un certain nombre de propriétés décrivant le terrain ou autre type de scène qui doivent être "peints" sur et autour de ce vertex.

On fera particulièrement attention à cette dernière information.

LAND USE ET CUSTOM TEXTURES

Il existe 2 catégories d'images qui peuvent apparaître sur du terrain dans X-Plane: les "land uses" et les "textures custom".

  • Une texture custom reste telle qu'elle a toujours été : une image bitmap, réalisée par le créateur de la scène et couvrant ce quad.
  • Un "land use" est une description du type de terrain ou eau dont ce vertex est proche. Ces codes sont appliqués aux textures, mais ils ont tendance à préciser des renseignements d'ordre géologiques, plutôt qu'en terme de représentation visuelle. Par exemple, vous pouvez spécifier "stony desert" (NDT: désert rocailleux) pour un point, mais c'est X-Plane qui décide de la couleur des pierres.

Les "land uses" et les "textures custom" sont rendus de manière légèrement différente. Une "texture custom" est appliquée directement sur un quad dont le vertex Sud-Ouest contient les données de cette "texture custom". Les "textures custom" sont toujours carrées, et si une "texture custom" est spécifiée pour les vertex du bord de droite ou d'en haut, elle n'apparaîtra jamais.

Les "land uses", par contre, sont rendues de manière centrée autour d'un vertex. Chaque vertex provoque l'apparition d'un "morceau" de ce "land use" autour du vertex ( d'environ la moitié de la largeur du quad ). Si les 4 vertex d'un quad ont le même "land use", les morceaux se rejoignent pour couvrir entièrement le quad. Mais là où des "land uses" différents co-existent, les morceaux auront tendance à se rejoindre près du centre du quad. Comme les "land uses" sont rendus autour des vertex, les "land uses" appliqués sur les bords d'en haut et de droite du fichier ont leur importance.

Les "land uses" utilisent des ordres de priorité; lorsque plusieurs "land uses" sont présents sur les vertex d'un seul quad, ils empièteront les uns sur les autres en fonction de leur indice de priorité. L'eau a toujours la priorité la plus faible et donc apparaît "au fond". D'autres "morceaux" leur sont alors superposés. La proportion de différents "land uses" dans une zone donnée n'a pas d'importance; l'ordre de priorité est toujours respecté.

Si de minces enchaînements d'un même "land use" se trouvent être alignés Nord-Sud ou Est-Ouest, ils formeront toujours de fines bandes par connexion. Mais si le "land use" est enchaîné sur une diagonale étroite, il peut y avoir ou non connexion (NDT: visuellement):

Comment X-Plane sait-il si une série de vertex en diagonale doit former une bande ou une séries d'îlots? La réponse est que chaque vertex spécifie un "join code" (NDT: code de jonction). Un "join code" dit à X-Plane comment lier, ou ne pas lier, des "land uses" du même type en diagonale. Le "join code" est indiqué sur le coin Sud-Ouest du quad sur lequel la diagonale va se former. Un "join code" fera dessiner un "pont" à X-Plane ou rien du tout.

Les "join codes" sont définis comme suit :

  • 1 signifie un pont de terrain du coin inférieur gauche au coin supérieur droit.
  • 2 signifie un pont du coin inférieur droit au coin supérieur gauche.
  • 3 signifie pas de pont du tout.

Notez que vous ne pouvez pas faire de lien dans les deux directions; par définition, un pont supplanterait l'autre.

Le "join code" "0" est particulier et demande à X-Plane d'agir selon sa propre meilleure solution. X-Plane va observer le terrain environnant et essayer de déterminer si dessiner un pont est une bonne idée ou non. Pour les anciens fichiers .env, tous les "join codes" seront de type 0, ce qui force X-Plane à générer des ponts automatiquements. Le "join code" sera aussi de type 0 pour les quads qui n'ont pas besoin de pont (parce qu'ils n'ont pas de "land use" en diagonale).

Les "join codes" sont importants car ils permettent de définir des bandes de terrain ou d'eau très étroites.

Les "land uses" sont centrés autour des vertex, alors que les "textures custom" sont situés dans les quads. Lorsque le vertex d'une "texture custom" est à côté d'un vertex de "land use", X-Plane étire le "land use" de manière à remplir l'espace vide.

LES TEXTURES ET LE RENDU

X-Plane utilise deux ensembles de données d'image pour dessiner les "land uses", ainsi qu'un "map" (NDT: carte, plan). Le map est un fichier texte qui associe des fichiers bitmap à des "land uses" particuliers. On peut utiliser un fichier bitmap pour plusieurs "land uses"; normalement X-Plane est livré avec environ 3 douzaines d'ensembles de bitmaps pour environ 60 "land uses" définis. Plusieurs autres "land uses" ne sont pas encore définis, et sont réservés à un développement futur. Chaque terrain est défini par un "fill bitmap" (NDT : bitmap de remplissage) qui indique quelle image le "land use" utilisera, et des "bitmaps alpha" qui définissent comment ces bitmaps se superposent (NDT : en terme de forme).

Le "fill bitmap" contient une simple image RVB (NDT:en couleurs rouge-vert-bleu) du "land use". Quelques règles s'appliquent aux "fill bitmaps" :

  • Chaque dimension doit être une puissance de 2 (c-à-d: 16,32,64, etc.)
  • La dimension maximale est de 1024 pixels autant horizontalement que verticalement.
  • Les dimensions doivent être au moins aussi larges que hautes.
  • Le magenta n'est pas utilisé pour la transparence.

Les "fill bitmaps" sont toujours traités comme des carrés. Si le "fill bitmap" est en largeur, chaque "carré" est traité comme une version séparée du bitmap, et sera utilisé pour varier la scène.

Les bitmaps alpha contiennent un masque en noir et blanc qui décrivent comment une texture donnée sera appliquée (NDT :en terme de forme) sur les autres textures. Le blanc indique que le "land use" sera dessiné, le noir qu'il ne le sera pas. Les valeurs de gris mélangent le "land use". Le "land use" doit posséder les propriétés suivantes :

  • Toutes les dimensions doivent être une puissance de 2 (c-à-d: 16,32,64, etc.)
  • La dimension maximale est de 1024 pixels autant horizontalement que verticalement.
  • Le bitmap doit être carré (sauf pour le bitmap de type C4 qui doit être 2 fois plus large que haut, (cf. ci-dessous).
  • Le bitmap ne doit pas nécessairement avoir les mêmes dimensions ou des dimensions liées au "fill bitmap" du dessus, de même que tous les alphas n'ont pas besoin d'être de la même taille.


Pour chaque "fill bitmap", 4 bitmaps alpha sont définis, et nommés par les extensions C1,C2,C3 et C4 (on utilisera ces suffixes pour s'y référer). Chaque masque alpha contient 4 rotations du même type de forme, indiquées ci-dessous, sauf pour le C4, qui contient seulement 2 rotations.

La raison pour laquelle 4 variations de chaque coin sont fournies est double : ceci apporte plus de variété dans la forme des côtes, et les textures de "land use" ne peuvent pas être pivotées; elles contiennent souvent des ombres qui apparaîssent incohérentes lorsque certaines, mais pas toutes, sont pivotées par incréments de 90 degrés.

Chaque masque alpha joue un rôle différent dans le rendu des "land uses" :

  1. Quand les 4 coins d'un quad contiennent le même "land use", aucun alpha n'est nécessaire, et le "fill bitmap" est appliqué sur tout le quad.
  2. Quand 3 coins du quad contiennent le même "land use", le bitmap (alpha) C1 est utilisé pour peindre le "fill bitmap" dans tous les coins sauf un.
  3. Quand 2 coins le long d'un même côté d'un quad contiennent le même "land use", le C3 est utilisé pour peindre le "fill bitmap" sur une moitié du quad.
  4. Quand un seul coin d'un quad contient le même "land use", le C3 est utilisé pour remplir ce coin du quad.
  5. Quand 2 coins opposés diagonalement utilisent le même "land use", le C4 est utilisé pour remplir cette diagonale, si le "pont" est utilisé.
  6. Quand 2 coins opposés diagonalement utilisent le même "land use", mais qu'il n'y a pas de "pont", le C2 est utilisé pour remplir les deux coins séparés (NDT: et séparément...).

L'exemple ci-dessous illustre comment une côte de forme complexe peut être fabriquée à partir d'une série de masques alpha.

Cette image montre comment plusieurs bitmaps sont superposés lorsque des "land uses" se rejoignent.

[image ci-dessus : on utilise les masques C2 et C3 pour créer l'assemblage des coins et des côtés]

Deux propriétés des alphas doivent être respectées :

  • l'eau n'utilise jamais les masques alpha, puisque c'est la couche la plus "basse" (et n'a pas besoin d'alphas pour se superposer sur une forme quelconque).
  • les bitmaps C2 ne doivent pas contenir trop de terrain (NDT: en blanc) qui pourrait provoquer la formation d'un pont, si ils (les C2) sont placés dans le même quad sur des coins opposés.

[image ci-dessus : Bon: Deux coins ne forment pas de pont (blanc = terrain) Mauvais: Deux coins forment un pont de terrain Ce coin est probablement trop large]

AUTRES COMPORTEMENTS D'X-PLANE

X-Plane traite également en quelques étapes un fichier .env qui permet de changer ce que vous spécifiez :

Le terrain situé sous un aéroport sera changé en "land use" pour cet aéroport. Etant donné que, souvent, les données gouvernementales utilisées pour construire les scènes du monde entier ne précisaient pas les îlots artificiels sur lesquels beaucoup d'aéroports modernes sont installés, beaucoup d'aéroports reposent directement sur l'eau. X-Plane "remplit" quelques quads pour garder l'aéroport au sec. Notez que, de ce fait, une île ou une péninsule apparaîtra parfois trop large.

Sur l'image qui suit, l'aéroport de Gênes (entièrement construit à partir de remplissage) est sous l'eau, parce que l'îlot artificiel n'était pas inclus dans les données gouvernementales. Cependant, cet aéroport apparaît sur la terre ferme dans X-Plane..

Sur cette image-ci, l'aéroport de Boston Logan repose sur une péninsule. Cependant, X-Plane y ajoute un petit peu plus de terrain, comme une "assurance" contre l'inondation de l'aéroport. Le résultat est que les voies d'eau autour de l'aéroport se changent entièrement en terre ferme.

Les futures versions d'X-Plane et du GLoS scenery project tenteront de régler ce problème.

Autre chose, X-plane "applatit" l'eau jusqu'à un certain degré pour éviter qu'elle n'apparaisse comme un creux. L'eau bleu clair sur cette image tirée de World-Maker est faite de quads où la moitié de l'eau est plus élevée que l'autre moitié. X-Plane réduira la hauteur de cette eau pour éviter que l'eau n'ait l'air d'être en diagonale. C'est fait pour conserver la hauteur des berges de la rivière ou du plan d'eau, de manière à ce que les rendus futurs des fjords soient plus précis.

Si un "join code" est zéro mais nécessaire (c-à-d qu'il y a du "land use " en diagonale), X-Plane devinera si le terrain doit former un pont en se basant sur l'eau et le terrain environnants. Ce processus de devinette du "join code" fonctionne la plupart du temps et sert de sauvegarde de compatibilité avec les scènes plus anciennes.

Terrain Version 8

Pour l'instant il n'est pas possible d'éditer le Terrain avec la version 8 actuelle (au moins jusqu'à la 8.11) de World-Maker.
Néanmoins, on peut toujours utiliser World-Maker de la version 7 pour éditer les fichiers ENV.

Aéroports/Aérodromes

On peut créer des pistes, taxiways, hélipads ceci avec différents types de surface (herbe, asphalte,...), différents marquages visuels et lumineux.

Aides à la navigation

On peut ajouter les différents types de balises d'aide à la navigation VOR, NDB, ILS,...

Façades

Nouveauté de la version 8, cette option permet de définir les bâtiments par défaut dont les faces suivront les routes.
Vous trouverez plus d'informations et des images ici : [X-Plane 8 Facades]

Routes

On devrait plutôt parler de vecteurs car en plus des routes on peut placer les voies ferrées, les lignes à haute tension ainsi que les rivières.

Textures

En plus de la modification du terrain (élévations), de l'application de vecteurs (routes), on peut appliquer des textures sur le sol.

Obstacles

Pour les objets, les textures devront avoir été mises en place dans votre logiciel de modélisation ( Blender / AC3D / 3DS Max / G Max... ). Une fois votre modèle converti au format .obj, il suffira d'indiquer le nom et l'enplacement du fichier de texture. Pour ce faire, éditez votre fichier objet ( par ex: maison.obj ) avec un éditeur de texte ( TextEdit (mac), Wordpad (Windows)ou Word ) et changez la ligne "no texture" par le nom de votre fichier texture (par ex: "facade_maison"... sans ajouter l'extension, ne pas mettre "facade_maison.bmp" ). Enregistrez le fichier, votre objet "maison" apparaitra avec la texture "facade_maison" appliquée comme dans votre logiciel 3D.

exemple code objet original:

I
700
OBJ

no texture		//

tri		//
-19.178429 0.000000 16.729666    0.000000 0.000000
19.178429 0.000000 16.729666    0.000000 0.000000
19.178429 0.000000 -16.729666    0.000000 0.000000

end		//

exemple code objet avec indication texture:

I
700
OBJ

facade_maison		//

tri		//
-19.178429 0.000000 16.729666    0.000000 0.000000
19.178429 0.000000 16.729666    0.000000 0.000000
19.178429 0.000000 -16.729666    0.000000 0.000000

end		//

exemple code objet avec texture située dans un sous-dossier appellé "mes_objets":

I
700
OBJ

mes_objets:facade_maison		//

tri		//
-19.178429 0.000000 16.729666    0.000000 0.000000
19.178429 0.000000 16.729666    0.000000 0.000000
19.178429 0.000000 -16.729666    0.000000 0.000000

end		//

NB: pour les versions 6 et 7 de X-Plane, tous vos fichiers textures d'objets doivent se trouver dans le dossier custom object textures de votre custom scenery. Idem pour les objets qui doivent se trouver dans le dossier "custom objects". A partir de la version 8, on peut se passer de custom object textures, la texture étant cherchée d'abord dans custom object textures puis dans custom objects.

Voici par exemple les répertoires où la version 8.11 recherche la texture none d'un objet du Custom Scenery LFON (source error.dat).

X-System 8.11/Custom Scenery/LFON/custom objects/none.png'
X-System 8.11/Custom Scenery/LFON/custom objects/none.bmp'
X-System 8.11/Custom Scenery/LFON/custom object textures/none.png'
X-System 8.11/Custom Scenery/LFON/custom object textures/none.bmp'
X-System 8.11/Resources/bitmaps/terrain/none.png'
X-System 8.11/Resources/bitmaps/terrain/none.bmp'
X-System 8.11/Resources/bitmaps/none.png'
X-System 8.11/Resources/bitmaps/none.bmp'
X-System 8.11/Resources/none.png'
X-System 8.11/Resources/none.bmp'

Dans cette version il devient donc possible de placer des textures communes à plusieurs scènes perso ailleurs que dans Custom Scenery.