ContribCliquez ici pour proposer des corrections ou des compléments pour cette page.
X-Plane de 6.51 à 7.x

Presentation générale

Un dossier de scène perso peut avoir n'importe quel nom (c'est vous qui lui donnez).
Ce dossier doit contenir 4 dossiers qui eux sont obligatoirement nommés comme suit :

  • custom objects qui contient tous les objets (fichiers .obj) que vous voudrez intégrer à votre scène. Les objets peuvent aussi être répartis dans des sous-dossiers nommés selon votre envie mais toujours à l'intérieur de ce dossier "custom objects".
  • custom object textures qui contient les textures associées à vos objets précédemment cités
  • custom terrain textures qui contient les textures/photos du sol de la région que vous voulez représenter
  • earth nav data qui contient un fichier apt.dat ( donnée des pistes d'aéroport et taxiways de la zone ) ainsi que les fichiers d'environnement correspondants à la zone personnalisée ( incluant les élévations de terrain, les routes, rivières, la position des objets que vous aurez placés... )

Exemple avec l'image de droite qui est tirée de la scène perso de San Bernardino, l'officielle.

Quelques précisions tout de même :

  • le fichier d'environnement de la zone personnalisée doit se trouver dans un dossier dont le nom correspond à son groupe de coordonnées ( ex: le fichier environnement de la zone +34-118 devra se trouver dans un dossier appelé "+30-120"...voir image précédente ). Il ne doit donc pas être placé directement à la racine du dossier Earth nav data de votre scène, contrairement au fichier apt.dat.
  • X-Plane, au chargement de la zone, commence par chercher dans les scènes persos pour voir si un fichier d'environnement correspondant à la zone existe déja. En cas d'échec, il chargera le fichier d'environnement par défaut d'X-Plane qui se trouve dans X-System/Ressources/Eath nav data, si il ne trouve toujours pas de fichier pour cette zone, il affichera de l'eau sur toute la zone...(pour de plus amples informations, lire fichiers d'environnement)
  • Dans le cas où il détecte un fichier environnement de la zone dans une scène perso (la votre), il la chargera en priorité. Attention! Des problèmes peuvent apparaître si le fichier environnement de la zone que vous avez personnalisée est déja utilisé par une autre scène installée dans votre dossier "custom scenery"! Si une autre scène perso contient le même fichier environnement ( +34-118 par exemple ), c'est le fichier de la première scène perso le contenant (dans l'ordre alphabétique du nom des scènes) qui sera chargée et non la votre...

Commencer sa scène

Ça y est ! Vous avez défini vos objectifs, consulté la page Créer sa Scène du Wiki, vous connaissez vos limites et vous voulez tester tout ça en grandeur nature (ou presque). Voici comment procéder pour mettre en place votre nouvelle scène :

1/ Ouvrez World-Maker

2/ Placez vous sur la zone que vous voulez modifier ( ou sur la zone où se trouve l'aéroport que vous voulez modifier )

3/ Modifiez quelque chose ( ajoutez une texture, tirez légèrement un angle de carré, posez un objet... peu importe )

4/ Enregistrez cette modification et quittez World-Maker

En modifiant et en enregistrant votre zone, X-Plane a automatiquement créé un nouveau dossier dans le dossier "Custom Scenery" qu'il a nommé "New Custom Scenery". ce dossier contient au moins un dossier "Earth nav data" qui contient le fichier .env de votre zone modifiée. Vous pouvez maintenant renommer ce dossier "New Custom Scenery" avec le nom de votre choix ("Ma Scène" par exemple).

Maintenant que votre scène existe enfin, il va falloir l'alimenter! Tout d'abord, vous allez créer les dossiers manquants à l'intérieur du dossier "Ma Scène", en effet, une scène nécessite 4 dossier différents qui doivent tous être présents dans le dossier de la scène. C'est dossiers sont:

  • Earth nav data ( créé automatiquement par X-Plane, il contient les données du terrain (élévations, textures, position des objets) et des pistes d'aéroport )
  • Custom terrain textures (c'est là que vous placerez tous vos fichiers images (bmp ou PNG) correspondant aux textures personnalisées qui seront appliquées sur le sol... comme des photos satellites par exemple)
  • Custom objects (C'est là que vous placerez tous vos objets 3D personnalisés au format .obj)
  • Custom object textures (C'est le dossier qui recevra vos fichiers image (bmp ou PNG) utilisés pour habiller vos objets 3D)

Une fois que tout cela est fait... il ne vous reste plus qu'à travailler sur votre scène dans World-Maker en faisant bien attention d'aller chercher vos objets et vos textures dans le dossier de votre scène (importer une texture d'une autre scène avec World-Maker est possible mais la texture ne s'affichera pas dans X-Plane si le fichier appliqué ne se trouvait pas dans la scène correspondant à la zone modifiée! ).
 

Fonctionnement du terrain dans World-Maker

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 dans 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.