Ce texte fait référence au texte anglais ici.
10/06/03 : mise à jour du Wiki
26/12/07 : révisée pour XP900
13/07/06 : révisée pour XP850
05/09/08 : révisées pour XP820
19/11/04 : Projet initial
X-Plane utilise un fichier de définition de vecteur (. net en tant que réseau) pour visualiser les réseaux routiers.
Les fichiers DSF définissent les vecteurs par type et sous-type. Le type indique comment utiliser le fichier .net pour les routes, le sous-type indique un style de route. Le paysage par défaut (Default Scenery) définit 62 types de vecteurs ; vous pouvez remplacer l'ouvrage route par défaut en utilisant les mêmes sous-types, ou utiliser vos propres numéros de sous-type dans votre scène personnalisée.
La définition des fichiers vecteurs sont les fichiers texte standard d'X-Plane avec un en-tête de 3 lignes. Chaque commande occupe une seule ligne, avec des paramètres séparés par des espaces.
Un vecteur contient un ou plusieurs sous-types et utilise une ou plusieurs textures. Chaque sous-type routier doit utiliser une seule texture.
A
900
ROUTES
TEXTURE
Spécifie une texture à utiliser pour les vecteurs. Le bitmap doit avoir son extension de fichier. Le paramètre numérique indique la quantité de compensation de Z-buffer à utiliser lorsque vous utilisez cette texture. Un nombre positif aide X-Plane à dessiner le vecteur au-dessus du mesh de terrain sans Z-buffer thrash. Zéro indique l'absence de compensation, ce paramètre est correct pour les ponts.
La commande texture établit un indice pour cette texture dans le fichier .net. La commande de la première texture sera texture 0, la seconde 1, etc
Note : si vous avez besoin d'utiliser une texture avec une compensation de Z-buffer, il suffit de l'inscrire 2 fois avec des décalages de Z-buffer différents. Cela permettra d'établir deux indices pour la texture, mais X-Plane ne chargera qu'une fois la texture dans la VRAM.
TEXTURE <z offset> <nomfichier>
TEXTURE_LIT
Cette commande établit une texture d'éclairage nocturne assortie à la texture principale du réseau routier. Si cette commande est complètement utilisée, il doit y avoir une commande pour chaque texture, et elles doivent se suivre dans le même ordre. X-Plane ne trouvera pas automatiquement les bitmaps _LIT sans cette commande.
TEXTURE_LIT <filename&ht;
SCALE
Normalement, les coordonnées de texture sont indiquées en fractions, par exemple, 0,2 par pixel, 2/10èmes du chemin à travers la texture. La commande Scale (échelle) indique que toutes les coordonnées de texture sont multipliés par une constante fixe. Si cette commande n'est pas incluse, c'est comme si l'échelle était de 1,0. Le barème est appliqué à toutes les commandes qui suivent la commande Scale.
Note : Ceci vous permet de travailler en fonction de la position des pixels de la texture au lieu de fractions de coordonnées. Mais X-Plane ne prend pas en compte la taille de la texture réelle. Vous pouvez utiliser une échelle de 1024, même si la texture n'est pas 1024x1024 pixels.
SCALE <scale>
ROAD_TYPE
Donne des informations sur un nouveau type de route. Segment, fils, et commandes d'objets s'appliquent à tout type de route précédemment déclaré. Le type de route a sept paramètres:
ROAD_TYPE <subtype> <width> <length> <texture> <red> <green> <blue>
SEGMENT
La commande segment définit la section carrée d'une route. Les segments sont extrudés le long d'un vecteur de la route. La route la plus simple possible aurait un segment.
Les segments sont définis en fonction de leur extension latérale, précisant de quelle largeur ils traversent la route, et leur extension verticale, précisant leur mesure vers le haut et le bas. L'étendue latérale se présente comme un rapport, où 0,0 est le côté gauche et 1,0 à droite. (Segments ne peuvent pas s'étendre au-delà de la largeur du segment - si vous avez besoin de faire un segment plus large, pour définir le type vectoriel tout entier plus large, utilisez la commande ROAD_TYPE.) La mesure verticale est en mètres, où 0 est la hauteur de la route, positive au-dessus de la route et négative en dessous.
Le texturage des segments est effectuée comme suit : l'axe vertical de la texture est aligné le long de la longueur du vecteur et se répète sans cesse, la longueur du vecteur en mètres (comme défini par la commande ROAD_TYPE) correspondant à la répétition de la texture. L'axe horizontal de la texture traverse la route, ou monte et descend comme des "murs" verticaux. Les positions de texture horizontale sont normalement stockées sous forme de coordonnées "S", ce qui signifie une fraction de la distance à travers la texture (?), mais la commande SCALE (voir ci-dessus) peut être utilisée pour modifier ces unités.
Les segments sont associés aus paramètres de niveau de détail (LOD). Vous pouvez définir à quel gamme / dans quelle mesure les segments sont visibles, de sorte que les petits détails (comme des garde-fous) sont dessinés seulement tout près du segment du vecteur.
La commande segment prend 8 paramètres:
SEGMENT <near lod> <far lod> <start lat> <start vert> <start tex> <end lat> <end vert> <end tex>
WIRE
La commande Wire (fil) charge X-Plane de placer des lignes à haute tension (Powerline) le long du segment des vecteurs. Les lignes à haute tension peuvent être ajoutées à n'importe quel type de vecteur, le type de vecteur "powerline" est simplement un vecteur avec des lignes électriques, sans routes, et les objets formant les pylônes. La texture / couleur du fil est assurée par X-Plane. La commande Wile exige 5 paramètres:
WIRE <near lod> <far lod> <lateral offset> <vertical offset> <droop ratio>
OBJET
L'objet de commande charge X-Plane de placer un objet (OBJ) à un endroit le long du vecteur. Les objets sont placés latéralement dans la largeur du vecteur, mais à la différence des segments, il peut être placé à gauche du vecteur (en utilisant des ratios négatifs) ou à sa droite (en utilisant des ratios supérieurs à 1).
Les objets peuvent être placés à un intervalle fixe en mètres, ou à chaque point de «forme» (Shape point) le long du vecteur - par exemple chaque fois que la direction du vecteur change. (Voir les spécifications DSF pour plus de précisions sur les points de forme.)
Les objets peuvent être tournés, normalement, ils sont placés à une position de 0 pour un vecteur orienté Nord. Quand un vecteur passe un coin, si un objet est placé dans cet angle, sa position est la moyenne des deux vecteurs qui touchent ce coin.
Les objets peuvent être placés en hauteur du vecteur, ou repositionnés sur le sol. Dans ce cas, si le vecteur est au-dessus du sol (par exemple un pont ou un viaduc) l'objet sera toujours placé sur le sol. L'objet de commande prend six paramètres:
OBJECT <name> <lateral offset ratio> <rotation> <force on ground> <placement frequency> <placement offset>
REQUIRE_EVEN
[X-Plane 8.20] Normalement, les textures sont appliquées sur une route qui mesure l'axe vertical de la texture le long de la route (axe longitudinal) en fonction de la longueur de la route, par exemple, une route "30 mètres" devient une répétition complète de la texture tous les 30 mètres. Cela implique qu'une route de 70 mètres a 2,3 copies de la texture, et elle se terminera au milieu de la texture.
Lorsque l'attribut REQUIRE_EVEN est appliquée à un type de route, la longueur de la route est mesurée de sorte que la texture l'utilise un nombre pair de fois. Dans le cas ci-dessus, la route serait ramenées de 30 mètres à 35 mètres, et serait appliqué d'exactement le double. Cette mise à l'échelle se fait différemment pour chaque segment de la route alors que la texture n'est jamais coupée.
Cette commande affecte les segments et les objets qui sont placés à distance ; ils ont leurs distances mesurées par le même facteur que les segments de sorte que le rapport relatif des objets et de la texture est maintenu.
Les objets qui sont placés comme une fraction du secteur et les fils ne sont pas affectés par cette commande.
La commande doit être postérieure à la commande ROAD_TYPE et concerne seulement les types de route précédents (?) ; on utilise cette commande une fois pour chaque type de route mesuré.
REQUIRE_EVEN
SEGMENT_HARD
[X-Plane 8.50] La commande "segment dur" est identique à la commande "segment ordinaire", sauf qu'il déclare que le tronçon de route sera "dur" (similaire aux polys dur dans un objet), permettant à l'avion d'y atterrir. La commande surface dure utilise toutes les commandes de surface régulière, en ajoutant un nom de surface (les mêmes noms que dans le format OBJ8). Voir les spécifications OBJ8 pour une liste de surfaces.
La commande segment dur prend 9 paramètres :
SEGMENT_HARD <index> <lod> <lod> <dx1> <dy1> <s1> <dx2> <dy2> <s2> <surf>
CAR
[X-Plane 8.50] La commande de voiture définit un couloir de voitures. La commande voiture définit à quelle vitesse et quel genre de voitures peuvent traverser un couloir et contrôle également la production de voitures.
CAR <reverse> <lateral offset> <velocity> <spawn ratio> <traffic type>
CAR_MODEL
[X-Plane 8.50] Cette commande CAR_MODEL définit un objet à utiliser comme modèle de voiture. Ces commandes sont référencées par des commandes de voitures - la première commande CAR_MODEL définit un traffic de type "0", un second type de trafic "1", etc. La donnée est un nom d'objet.
Le nom de l'objet peut être un chemin de bibliothèque (library) - dans ce cas, tous les objets appelant une bibliothèque seront utilisés, en créant une variété de voitures. De cette façon, vous pouvez créer de la variété dans la circulation. Chaque chemin de bibliothèque peut faire appel à de multiples objets, tous d'un type similaire, puisque tous les objets correspondants peuvent partager une voie de circulation.
CAR_MODEL <object path>
TRAIN
[X-Plane 9.00] La commande TRAIN définit un train (une chaîne d'objets) utilisé comme un modèle de voiture. Une commande de train prend un indice comme la commande CAR_MODEL. (Autrement dit, si vous utilisez CAR_MODEL, puis train, puis le type de voiture 0 est l'objet spécifié par la commande CAR_MODEL et le type de voiture 1 est le train spécifié par la commande TRAIN. La sous-commande train qui suit définit le train.
TRAIN
TRAIN_VARIANT
[X-Plane 9.00] Une commande de voiture pointe un seul objet, mais le système aléatoire de bibliothèque substitute n'importe quel des objets de ce type de voiture. Donc, avec une bibliothèque bien construite, beaucoup de variétés de circulations sont possibles. Cependant, avec les trains, chaque objet de substitution (représentant un wagon) doit être de la même longueur que tous les autres dans un certain «créneau», ou le train ne sera pas bien cohérent. La commande de train-variant est prévue pour permettre une plus grande variété de trains malgré cette contrainte.
Une variante du train est une séquence de chemins d'objet et d'espacements qui définit à quoi un train ressemble - un train peut avoir une ou plusieurs variantes : un nombre différent de voitures ou un choix de parcours différents.
TRAIN_VARIANT
TRAIN_CAR
[X-Plane 9.00] La commande de train-car ajoute un autre train-car à l'actuel train-variant. Pour chaque voiture, deux longueurs sont spécifiées - la première est la longueur du centre de l'OBJ (0,0,0) à l'avant de la voiture (le long de l'axe Z) et le second est l'axe du centre de l'objet à l'arrière de la voiture (le long de la Z +) . Le chemin de l'objet est un chemin d'accès virtuel à la bibliothèque. Notez que tous les objets qui pointent sur cette voie doivent être identiques par les deux longueurs, sinon le train-car ne s'alignera pas correctement. (Le système de bibliothèque est utilisé, et compte tenu de la longueur d'un wagon de train, de multiples variantes peuvent être sélectionnées.)
TRAIN_CAR <length 2> <length 1> <object path>
Il s'agit d'un exemple d'un fichier de définition dee réseau. (Pour un fichier road.net plus détaillé, voir les fichiers .net dans le "default scenery".)
A
900
ROUTES
TEXTURE 3 roads_legacy.png
TEXTURE 0 roadbridges_legacy.png
TEXTURE 3 trails_legacy.png
TEXTURE_LIT roads_LIT.png
TEXTURE_LIT roadbridges_LIT.png
TEXTURE_LIT trailsLIT.png
SCALE 1024
ROAD_TYPE 0 18 18 0 1.0 1.0 1.0
SEGMENT 0 30000 0 0 0.0 1 0 0.5
ROAD_TYPE 3 24 500 0 1.0 1.0 0.2
WIRE 0 30000 0.15 22.8 0.4
WIRE 0 30000 0.85 22.8 0.4
OBJECT powerline_tower.obj 0.5 0.0 1 0.0 0.0
ROAD_TYPE 6 3 3 2 0.0 0.0 0.0
REQUIRE_EVEN
SEGMENT 0 30000 0 -3 0.5 0 0 0.625
SEGMENT 0 30000 0 0 0.625 1 0 0.875
SEGMENT 0 30000 1 0 0.875 1 -3 1.0