Développement de paysages

### Didacticiel

Nous proposons un didacticiel étape par étape avec un exemple d'aéroport pour démarrer avec le SDK.

## Fichier de définition de paysage (TSC)

Le fichier TSC est un simple fichier texte qui définit le type d'objet de décor, son origine de modèle 3D sur le globe, son élévation et l'utilisation de la hauteur automatique, son nom en version courte et longue, le texte de description et spécifique aux aéroports : code identifiant OACI, positions de stationnement, points d'extrémité et de seuil de piste, largeur de piste et son système de feux d'approche, position de vue sur la tour et plus encore. Nous aborderons certaines de ces fonctionnalités plus tard dans cet atelier.

La modification du fichier .tsc peut être effectuée de deux manières différentes :

* Modification manuelle du fichier .tsc avec un éditeur de texte compatible UNICODE.
* Utilisation des options d'exportation pratiques des plugins d'exportation dans 3D Studio Max et Cinema 4D pour générer le fichier.

## Scenery Object Classes Overview

Le moteur Aerofly FS 2 prend en charge les classes de scènes suivantes. Une description plus détaillée sera donnée plus loin.

* sol (pistes, voies de circulation, aires de trafic)
* vignettes (lignes de piste et de voie de circulation)
* objets (bâtiments et véhicules statiques)
* alpha à la couverture (panneaux d'arbres, végétation)

## Exporter un aéroport

Allez-y et ouvrez le fichier de modèle 3D de l'aéroport dans 3D Studio Max ou Cinema 4D, selon votre préférence. Ensuite, la piste, les décalcomanies, les objets et l'objet alpha-to-coverage (atc) doivent être exportés les uns après les autres. Si l’un d’entre eux est modifié ultérieurement, seuls les objets concernés devront être à nouveau exportés. L’exécution de Content Converter mettra ensuite à jour les résultats. Pour exporter le maillage de sol, suivez ces étapes :

1. Sélectionnez l'objet 'kigm\_kingman\_rwy'.
2. Dans 3D Studio Max, sélectionnez « Exporter la sélection » et choisissez « IPACS TGI/TSC Exporter » comme type de fichier. Dans Cinema 4D, utilisez l'option de menu 'IPACS Scenery TGI Export' pour exporter l'objet sélectionné au format '.tgi'.
3. Dans la boîte de dialogue de sauvegarde du fichier, accédez au dossier « kigm\_kingman » où le fichier de projet « kigm\_kingman.max / .c4d » actuellement ouvert est stocké, s'il n'est pas déjà dans le bon répertoire.
4. Modifiez le nom du fichier en « kigm\_kingman\_rwy.tgi ».
5. Enfin, cliquez sur Enregistrer pour démarrer le processus d'exportation.
6. Dans 3D Studio Max, choisissez « Paysage » dans la boîte de dialogue contextuelle et définissez l'échelle sur 10 000.

Pour exporter les marquages ​​de piste et les lignes de voie de circulation (décalcomanies d'objets 3D), répétez le même processus mais cette fois, sélectionnez l'objet 'kigm\_kingman\_decal' et tous les sous-objets et exportez-les sous 'kigm\_kingman\_decal.tgi'.

Ensuite, les objets restants comme les maisons, les véhicules statiques, etc. sont exportés en sélectionnant « kigm\_kingman\_obj » et tous ses sous-objets. Enregistrez le .tgi sous « kigm\_kingman\_obj.tgi ».

Suivez le même modèle pour exporter l'alpha vers les objets de couverture '\_atc' de la scène.

Enfin, le fichier de description de l'aéroport (.tsc) doit être créé. Sélectionnez tous les objets auxiliaires dans 3D Studio Max ou les objets nuls dans Cinema 4D et exportez-les dans le même dossier de projet qu'auparavant en utilisant l'extension de fichier .tsc ou l'option d'exportation 'IPACS Scenery TSC Export'. Nommez le fichier .tsc de la même manière que le nom du dossier du projet, par exemple « kigm\_kingman.tsc » pour l'exemple d'aéroport Kingman.

Vous disposez maintenant de tous les fichiers intermédiaires requis pour démarrer la conversion vers Aerofly FS 2 à l'aide d'Aerofly FS 2 Content Converter.

## Notes utilisant le convertisseur de contenu

Avant de pouvoir démarrer Aerofly FS 2 Content Converter, plusieurs conditions doivent être remplies. Sinon, Content Converter génère une erreur et ne continue pas.

* Les dossiers d'entrée et de sortie doivent être définis sur des chemins de fichiers valides qui correspondent à la structure de dossiers spécifique de votre machine. Pour configurer ces chemins, modifiez le fichier texte « content\_converter\_config.tmc » dans le dossier du projet avec un éditeur de texte compatible UNICODE.
* Tous les fichiers référencés par le fichier du modèle 3D doivent se trouver dans le dossier d'entrée.
* Ils doivent être « plats » dans le dossier d’entrée, ce qui signifie qu’ils ne peuvent pas se trouver dans un sous-dossier. Si une texture n'est pas trouvée dans le même dossier que les fichiers .tgi exportés, Content Converter interrompra le processus de conversion.
* Les fichiers qui n'appartiennent pas au projet, en particulier les images inutilisées, peuvent entraîner l'échec de Content Converter. Si une image surfacique a été utilisée comme guide de positionnement, elle ne doit pas être contenue dans le même dossier que le modèle 3D. Ces fichiers peuvent être placés dans un sous-répertoire ou ailleurs.
* Tous les modèles 3D référencés dans le fichier .tsc de l'aéroport doivent avoir été préalablement exportés sous forme de fichiers .tgi. Pour l'aéroport de Kingman, il s'agit de « kigm\_kingman\_rwy.tgi », « kigm\_kingman\_obj.tgi », « kigm\_kingman\_decal.tgi » et « kigm\_kingman\_atc.tgi ».
* Le fichier .tsc doit être contenu dans le dossier du projet.
* Le Content Converter met à jour les fichiers de sortie uniquement si les fichiers intermédiaires sont plus récents que les fichiers de sortie déjà convertis.

## Démarrage du convertisseur

Lorsque les conditions ci-dessus sont remplies, Aerofly FS 2 Content Converter peut être exécuté.

Dans un dossier de projet, cliquez avec le bouton droit sur le fichier « content\_converter\_config.tmc » et sélectionnez l'entrée du menu contextuel « Exécuter avec Aerofly FS 2 Content Converter ». Le Content Converter tentera ensuite de convertir tous les fichiers de modèles 3D intermédiaires (.tgi) et les textures au format .bmp, .png et .tif dans le dossier (d'entrée) actuel.

Les fichiers convertis seront enregistrés dans le répertoire de sortie défini dans le fichier de configuration .tmc. Habituellement, il s'agit du dossier « Aerofly FS 2/scenery/places » dans le dossier Documents de l'utilisateur Windows actuel. L'écriture des fichiers dans ces répertoires installe automatiquement la scène ou l'avion pour Aerofly FS 2 Flight Simulator.

Le convertisseur peut également être démarré par un fichier batch avec le fichier de configuration de scène comme paramètre pour l'exécutable Aerofly FS 2 Content Converter. Un exemple de fichier de commandes « convert\_kingman.bat » est fourni pour l'exemple d'aéroport Kingman, mais le fichier doit être modifié (clic droit, modifier) ​​avant la première exécution pour confirmer que les chemins de fichiers dans le fichier de commandes sont correctement définis.

## Système de coordonnées

L'aéroport entier est modélisé dans un système de coordonnées local dont l'origine est déplacée vers les coordonnées de longitude et de latitude (lon/lat) ou web-mercator définies dans le fichier .tsc lorsque l'aéroport est chargé dans le simulateur.

L'axe des x du système de coordonnées de modélisation pointe vers l'est ; l'axe y est le nord géographique et la direction z est définie du centre géographique de la terre vers le ciel. Z est nul à l'altitude de l'aéroport si « hauteur automatique » est sélectionné et il est nul au niveau de la mer si « hauteur automatique » n'est pas sélectionné.

## Élévation et hauteur automatique

Il existe deux approches différentes pour définir l'élévation de l'aéroport : « hauteur automatique » et manuel (hauteur automatique désactivée).

* La hauteur automatique activée est utilisée dans plus de 99 % des aéroports et constitue l'option privilégiée pour plusieurs raisons. Il utilise les données d'élévation d'Aerofly pour transformer le maillage de la piste et la position des bâtiments jusqu'à leur élévation finale. Cela présente le principal avantage que l'ensemble du sol de l'aéroport peut être modélisé à plat en 2 dimensions. C'est beaucoup plus simple et plus rapide à créer et il comporte toujours des pistes inclinées dans le moteur. Les objets tels que les bâtiments seront automatiquement placés au bon niveau du sol.
* Lorsque vous utilisez le mode manuel, l'ensemble du maillage au sol, de la piste et des objets doit être modélisé à la bonne élévation au-dessus du niveau de la mer.

## Mise à l'échelle du modèle

Les objets de paysage doivent être mis à l'échelle pour s'adapter aux unités Web-Mercator. Près de l'emplacement défini dans le fichier .tsc, une unité Web-Mercator équivaut toujours à une unité de modélisation, mais plus loin de l'équateur, les objets doivent théoriquement être plus grands. Pour la plupart des tailles d'aéroports, l'effet est minime et ils peuvent être modélisés à une échelle 1:1 avec très peu d'erreur de longueur au point le plus éloigné du point de référence .tsc.

## Classes d'objets de paysage en détail

Nous avons déjà brièvement présenté les différentes classes d'objets disponibles dans le moteur Aerofly FS 2. Nous allons maintenant examiner de plus près les propriétés individuelles du maillage de sol, des décalcomanies, des objets statiques et des objets alpha-to-coverage.

### Sol

#### Pistes, voies de circulation, aire de trafic

Habituellement, le maillage au sol est un grand objet maillé joint qui comprend les pistes, les voies de circulation, les aires de trafic et la zone environnante. Il est identifié dans Cinema 4D avec le suffixe « \_\_runway » (notez le double trait de soulignement) et exporté sous le nom « \_rwy.tgi ». Avoir plusieurs objets maillés au sol est possible mais peut créer des problèmes visuels lorsqu'ils sont proches les uns des autres et n'est donc pas recommandé.

Un maillage de base peut avoir différents matériaux attribués qui divisent le maillage en plusieurs sélections de matériaux. Toutes les sélections de matériaux pour le maillage de sol doivent se terminer par « \_\_ground » dans leur nom, par exemple « taxiways\_\_ground ». Les polygones du maillage au sol auxquels aucun matériau ne leur est attribué seront traités comme la zone environnante et le moteur Aerofly attribuera les textures satellite par défaut.

Vu du dessus, l'objet maillé au sol peut avoir n'importe quelle forme. L’expérience montre qu’une forme d’îlot arrondie donne les meilleurs résultats. En utilisant le canal alpha de couleur de sommet dans 3D Studio Max ou le poids de sommet dans Cinema 4D, les textures de sol peuvent être mélangées linéairement aux images surfaciques. L'attribution d'un poids de sommet (composant alpha de couleur de sommet) de 100 % utilisera uniquement le matériau attribué, lissera les données d'élévation du terrain et supprimera tous les arbres à placement automatique. 0 % entraînera l’utilisation d’images surfaciques uniquement. Cela signifie qu'une couleur de sommet ou un poids de sommet doit être attribué afin de voir les textures personnalisées.

Comme la fonction de hauteur automatique modifie la hauteur par sommet, une surface plus lisse peut être obtenue en créant un maillage plus dense.

#### Matériaux broyés

Les matériaux du treillis de fond doivent avoir au moins une texture de couleur UV attribuée. Plusieurs cartes de couleurs UV sont possibles pour réduire les motifs visuels créés par le carrelage texturé. Les aéroports Aerofly FS 2 par défaut utilisent deux textures de couleur UV différentes avec une texture de couleur de carrelage de 40 m et une texture « saleté » de variation de 1 200 m. Les autres affectations de texture par le logiciel de modélisation n'ont aucun effet sur le fichier '\_rwy.tgi' exporté. Au lieu de cela, le shader recherchera tous les fichiers portant le même nom mais se terminant par \_bump ou \_specular et les utilisera comme matériau de base dans le moteur de rendu.

Résumé:

* \_color texture est une carte de couleurs RVB obligatoire, 8 bits par canal de couleur pour la couleur du shader diffus.
* \_bump texture est une carte de hauteur RVB grise 8 bits en option pour les variations optiques de hauteur de surface qui sera convertie en une carte normale .tsn par le convertisseur de contenu.
* \_specular est éventuellement utilisé par le shader pour créer un effet de brillance douce. Il peut avoir un canal alpha en plus des trois canaux de couleur RVB 8 bits, mais ce n'est pas obligatoire.
* \_specular\_alpha est une texture RVB 8 bits facultative qui écrase le canal alpha de la carte spéculaire avec sa luminosité RVB calculée et contrôle la largeur du point de réflexion spéculaire. L'Aerofly FS 2 Content Converter fusionnera la texture \_specular\_alpha en un seul fichier de texture \_specular.

### Décalcomanies

#### Marquages ​​​​de piste, lignes de voies de circulation

Par décalcomanies, nous entendons les lignes et les marquages ​​au sol qui sont généralement peints sur la surface dans le monde réel et nécessitent un niveau de détail plus élevé que le sol lui-même. Dans le moteur Aerofly FS 2, les décalcomanies sont rendues avec un décalage dynamique en hauteur par rapport au maillage au sol pour empêcher le combat en Z des décalcomanies et le choc de surface. Les objets de décalcomanie eux-mêmes doivent avoir un suffixe de priorité à la fin de leur nom, par exemple « \_\_priority0 ». La priorité va de 0 à 9, « \_\_priority9 » étant la priorité la plus élevée rendue par rapport à toutes les autres. Habituellement, seuls « \_\_priority0 » et « \_\_priority1 » sont nécessaires car rarement plus de deux lignes se coupent au même point. Tous les décalcomanies sont exportées sous la forme d'un fichier intermédiaire portant la terminaison « \_decal.tgi ».

Un objet décalque se compose de plusieurs polygones plats et plusieurs matériaux peuvent lui être attribués. Comme le maillage au sol, l'élévation des décalcomanies est ajustée par sommet par le moteur si la fonction de hauteur automatique est sélectionnée. Pour les courbures très élevées des voies de circulation ou des pistes dues à de grands changements d'élévation, les décalcomanies doivent être découpées le long des bords des polygones de maillage au sol en dessous pour mieux suivre le terrain incurvé.

#### Matériaux de décalcomanie

Les matériaux pour les autocollants et les marquages ​​doivent avoir une carte de couleurs UV. La texture doit avoir l'extension \_color et utiliser trois canaux de couleur RVB 8 bits. En option, un canal alpha 8 bits peut être utilisé.

### Objets

#### Bâtiments, véhicules

Les maisons, les véhicules statiques, etc. sont créés en tant qu'objets polygonaux individuels auxquels plusieurs matériaux peuvent également leur être attribués. Lorsque la hauteur automatique est activée, le moteur Aerofly compensera l'origine de chacun de ces objets par les informations d'élévation à leur origine. Étant donné que le terrain peut être en pente, il est recommandé d'avoir la base des maisons à une élévation légèrement inférieure à zéro dans le logiciel de modélisation pour éviter de flotter au-dessus du sol. Tous les objets sont exportés ensemble sous la forme d'un seul fichier '\_obj.tgi'.

#### Matériaux d'objet

Une des deux combinaisons possibles est possible pour les matériaux utilisés pour les objets :

1. \_color (obligatoire), \_reflection (opt.) et \_light (opt.)
2. \_color (obligatoire), \_specular (opt.), \_specular\_alpha (opt.) et \_light (opt.)

La texture de couleur diffuse obligatoire doit se terminer par \_color et avoir les trois couleurs RVB 8 bits et un canal alpha 8 bits en option pour les fenêtres transparentes à titre d'exemple.

Les textures de réflexion sont des textures RVB 8 bits et doivent se terminer par \_reflection. Les couleurs vives créent une réflectivité plus élevée.

Les cartes spéculaires sont utilisées pour les objets non réfléchissants mais brillants comme les surfaces métalliques. Ils sont identifiés par le suffixe \_specular. Les trois composants RVB 8 bits décrivent la réflectivité de chacune des couleurs et un canal alpha 8 bits en option modifie la taille du point spéculaire. En option, une texture \_specular\_alpha RVB 8 bits peut être utilisée pour écraser le canal alpha de la texture \_specular de sortie.

Les cartes lumineuses avec le suffixe \_light peuvent être utilisées pour des objets émettant de la lumière comme les fenêtres la nuit. Les trois couleurs RVB 8 bits sont disponibles.

### Couverture alpha

#### Végétation et autres

Les arbres d’affichage ou les plans d’herbe plate constitués de très peu de polygones qui se croisent entrent dans cette catégorie. Le moteur Aerofly FS 2 utilise différentes techniques pour rendre leur transparence plus rapidement, ce qui fait de cette catégorie le meilleur choix pour les grands ensembles d'objets partiellement transparents qui ne sont pas très importants.

#### Matériaux d'objet

La texture de couleur diffuse obligatoire doit se terminer par \_color et est généralement une texture unique avec trois couleurs 8 bits et un composant alpha 8 bits.

## Lignes directrices pour créer ou porter vos propres objets de scène

1. Créez un nouveau dossier de projet dans lequel toutes les textures et le modèle 3D seront stockés. La convention Aerofly pour nommer les aéroports est icao\_airport\_name, par exemple «ksfo\_san\_francisco\_int», et pour les villes, «san\_francisco\_city» à titre d'exemple. Les noms doivent être en lettres anglaises, toutes en minuscules et soulignées au lieu d'espaces. Les espaces ou les trémas ne doivent pas être utilisés pour assurer la compatibilité multiplateforme.
2. Démarrez 3D Studio Max ou Cinema 4D et insérez une image de référence d'arrière-plan qui couvre suffisamment la région du paysage. Enregistrez le projet sous le même nom que le dossier de projet nouvellement créé.
3. Collez toutes les textures dans le dossier du projet et renommez-les en suivant les mêmes règles de dénomination que ci-dessus. Actualisez les affectations de texture dans le logiciel de modélisation si nécessaire.
4. Mettez l'ensemble de la scène à l'échelle 1:1 en utilisant des points de référence au sol sur l'image d'arrière-plan qui sont faciles à identifier. Les vastes projets de paysages devraient probablement être divisés en plusieurs régions s'ils n'utilisent pas les coordonnées Web-Mercator pour éviter une mauvaise mise à l'échelle à de grandes distances.
5. Copiez les objets factices ou nuls de notre exemple d'aéroport et ajustez les noms, l'identifiant OACI, etc. ou copiez le .tsc de l'exemple d'aéroport dans le dossier du projet et définissez les champs manuellement.
6. Choisissez un point de référence d'aéroport sur l'image d'arrière-plan et écrivez ses coordonnées (lon. lat. ou web-mercator) dans l'objet factice ou nul pour l'emplacement de l'aéroport ou dans le fichier .tsc manuellement.
7. Créez un objet au sol qui est un maillage joint.

* Spécifique à 3D Studio Max : les matériaux pour les objets au sol doivent suivre les conventions de dénomination suivantes : \_\_airport\_\_runway, \_\_airport\_\_apron, \_\_airport\_\_outside
* Spécifique à Cinema 4D : toutes les sélections de matériaux affectées aux objets au sol doivent avoir le suffixe '\_\_ground' dans leur nom. Le nom de l'objet au sol doit se terminer par « \_\_runway ».

1. Continuez avec les décalcomanies, ajoutez le suffixe « decal\_\_priority0 » à leurs noms pour l'instant, ajustez la priorité en renommant des lignes individuelles plus tard. Regroupez tous les autocollants afin de pouvoir les sélectionner facilement pour les exporter tous en même temps.
2. Utilisez des objets d'assistance pour définir les coordonnées de tous les points d'extrémité de piste et leurs points de seuil. Les points seuils affecteront le positionnement du système d’éclairage d’approche sélectionné.