ContribCliquez ici pour proposer des corrections ou des compléments pour cette page.
Modèles 3D

Poids des objets

Il n'y a pas de poids limite pour un objet mais il est certain que plus il est léger mieux c'est. Malgré tout, si il convient toujours d'optimiser au maximum ses objets, c'est encore plus important si l'objet est destiné à être répété souvent dans la scène (arbres, maisons, immeubles, hangars, avions statiques...). Un objet répété souvent mais bien optimisé alourdira considérablement moins la scène et vous laissera de la marge pour d'autres fantaisies... Notez que le poids de la texture est également très important !

Objet 8 ou Objet 7

Actuellement, X-Plane sait afficher les deux types d'objets sans problème. L'intérêt du nouveau format 8 réside dans les nouvelles possibilités qu'il offre (animations, attributs nouveaux...). Faut-il en déduire que les objets au format 7 sont devenus inutiles ???... pas si sûr:
Prenons un simple carré, il peut être construit de deux manières: soit il est constitué d'un simple carré (4 points), soit il est constitué de deux triangles (2 x 3 points = 6 points).
Alors que l'objet au format 7 va pouvoir tenir compte du gain de calcul en utilisant un quad (carré), l'objet au format 8 ne pourra pas (il est obligatoirement constitué de triangles).

Conclusion, si vous utilisez un objet ne nécessitant pas d'animation ou d'attribut particulier et comportant beaucoup de faces pouvant être constituées de simples quads: utilisez le format d'objet 7, vous gagnerez un poids de calcul non négligeable, surtout si votre objet est complexe ou très souvent répété dans une scène.
Pour plus d'info sur les types de faces, lisez la rubrique "Faces Triangulaires ? Carrées ? Bandes ?" de cette page.

Attention aux attributs !

Attention à l'utilisation des attributs, ils coûtent beaucoup d'images/secondes. Plus vous donnez d'attributs à un objet (solide, aspect adouci, lumineux...) plus vous donnez des tâches à faire à X-Plane. Utilisez les à bon escient et surtout regroupez les parties codées de l'objet qui utilisent le même attribut !

Atention également à certains attributs très gourmands en ressources ! L'attribut "ATTR_hard" par exemple, qui détermine un polygone "dur" que l'on ne peut pas traverser ou sur lequel on peut monter, va entrainer un calcul permanent d'X-Plane pour évaluer le risque de collision suivant la position de l'avion. Ce calcul va être effectué pour chaque polygone considéré comme "dur" alors essayez absolument de limiter cet attribut à un nombre extrêment limité de polygones (quitte à créer un cube invisible qui gèrera cet attribut à la place de votre objet complexe). Passer tout votre objet en "dur" pourrait bien faire effondrer totalement les performances à l'approche de votre objet alors prudence...

le L.O.D.

Le LOD, c'est le "Level Of Detail", traduction = "Niveau de détail".
Dans tout simulateur de vol on peut régler ce que l'on voit soit par la distance de visibilité, soit par une complexité variable en fonction de la distance.
Néanmoins il faut garder à l'esprit que ces points peuvent être coûteux. Pour la complexité par exemple, le simulateur garde en mémoire toutes les versions de l'objet. Ça ne devient intéressant que dans deux cas :
- Objet très complexe de près (10 faces de loin contre 200 de près par exemple)
- Objet répété très souvent (si on gagne seulement 10 faces sur un objet avec le LOD mais que l'objet est répété 20 fois, on gagne en tout 200 faces, des exemples types pouvant être des plots de piste ou des arbres génériques)

Allégez !

Le Nombre d'Objets différents

Cela peut paraître évident, moins le simulateur aura d'objets et de faces à afficher, mieux il tournera. Un nombre important d'objets va surtout utiliser les ressources "Processeur" de votre PC.

Pour les objets, X-Plane calcule à chaque instant ce qu'il doit afficher ou non. Moins les objets seront nombreux et moins ce temps de calcul sera important. On retrouve le même phénomène que pour l'exemple du déménagement: si vous décidez de remplir votre camion avec plein de petits cartons, ça sera calé au millimètre mais ça sera très long. Par-contre, si vous mettez plusieurs petits cartons dans un carton plus grand, vous gagnerez beaucoup d'aller et retour! C'est pourquoi dans X-Plane, il peut être intéressant de regrouper des objets qui vont toujours ensemble en créant des bouquets d'arbres, des groupes de maisons, des villages... En clair, vous pré-assemblez les cartons qui vont ensemble = vous gagnez du temps de calcul !

Complexité des Objets

Sachez qu'un objet complexe va plus utiliser les ressources "Carte Graphique" de votre PC.

Le Nombre de Faces

Dans tous les modeleurs 3D, quand vous créez un objet (un cube par exemple), il comporte des faces pleines dans toutes les directions. Au cours de la modélisation, tout un tas de faces vont composer votre objet mais dans ces faces, un nombre non négligeable seront inutiles dans le simulateur car invisibles ! L'exemple type est celui d'une maison qui, hors toiture, est constituée d'un simple cube. Si vous êtes parti d'un cube dans votre modeleur, vous pouvez être sûr qu'il y a une face de ce cube qui sera posée sur le sol (on y fait rarement attention tant le fait que ce cube soit plein nous parait normal). Et bien cette face est totalement inutile visuellement! Multipliez cette face inutile sur des centaines de maisons... vous voyez le gain de calcul que l'on peut avoir sur des objets plus complexes en supprimant toutes les faces inutiles...

Voici un exemple type:

Comme vous pouvez le voir sur l'image ci-dessus, l'objet est constitué d'une coupole avec un rebord vissé. La coupole et les vis sont très bien modélisés mais on remarquera que, autant la coupole possède un nombre acceptable de polygones, autant les vis sont beaucoup trop détaillées.
Dans cet exemple, la majorité des polygones sont utilisés pour modéliser un détail qui sera quasiment invisible !. Il est donc très important de hiérarchiser le rendu de ses objets en fonction de leur complexité, de leur taille, de leur importance visuelle.
Dans le cas présent, autant la coupole devra être en 3D et correctement définie (la modélisation présentée suffit largement); autant les vis pourraient être seulement représentées en textures.

On gagnerait beaucoup de polygones (que l'on pourraient utiliser pour affiner d'autres parties plus importantes) et on aurait un rendu équivalent.
Autre erreur, on a oublié de supprimer les faces situées sous la vis ! Toutes les faces qui referment la vis en dessous sont inutiles ici car on ne les verra jamais ! Vous imaginez le nombre de polygones que l'on pourrait éviter si on corrigeait cette erreur sur chaque vis ?

Voilà, cet exemple est là pour expliquer un peu ce qu'il faut faire et ce qu'il ne faut pas faire, comment déterminer ses choix et où porter son attention...

Faces Triangulaires ? Carrées ? Bandes ?

On peut trouver deux grandes familles de polygones utilisés par X-Plane: Les "Tri/quads" (triangles et carrés) et les "Strip/fan" (bandes de triangles et de carrés).

Les Tri et Quads

Prenons un simple carré, il peut être construit de deux manières: soit il est constitué d'un simple carré (4 points), soit il est constitué de deux triangles (2 x 3 points = 6 points). Par défaut, beaucoup de modeleurs 3D travaillent uniquement en triangles. Si cette méthode n'affecte en rien la forme de l'objet, elle n'en utilise pas moins plus de points, donc plus de calcul. Dans la mesure du possible, évitez d'avoir des triangles là où un simple carré ferait très bien l'affaire. Certains modeleurs comme Blender peuvent, dans la mesure du possible, convertir des triangles en quads. Notez que si un objet en version 7 bénéficiera de ce gain de points, il n'en sera pas de même pour un objet au format 8 qui sera systématiquement converti en triangles...

Les Strip et Fan

En OpenGL il est possible, lorsque les textures à appliquer peuvent être posées en continu, de réduire le nombre de points envoyés à la carte graphique pour affichage.

Exemple :

  1    3    5    7

  2    4    6    8

La démarche habituelle pour texturer les trois carrés ci-dessus consiste à poser un bout de texture sur 1 3 4 2, puis sur 3 5 6 4, et enfin sur 5 7 8 6.

En OpenGL, on peut "dérouler" la texture entre 1 2 et 7 8. Dans les objets d'X-Plane, on utilise alors la fonction quad_strip au lieu de la fonction quad de base.
Dans notre exemple, cela devient texturer 1 3 4 2 comme tout à l'heure mais ensuite on applique jusqu'à 5 6 puis jusqu'à 7 8. On a donc envoyé que 8 points au lieu de 12 par la méthode traditionnelle. On voit bien à cette occasion qu'il faut au minimum 3 faces pour que ça devienne intéressant.

Il existe l'équivalent lorsqu'on travaille avec des faces définies à l'aides de triangles (tri).
De 1 3 2 puis 2 3 4 puis 3 5 4, 5 6 4, 5 7 6 et 7 8 6, soit 18 points.
En tri_strip cela donne 1 3 2 puis 4 puis 5, 6, 7 et 8, soit seulement 8 points.

A propos des triangles, il existe une variante qui est le tri_fan. Cette fois le déroulement de la texture se fait en éventail.

X-Plane ne gère que quad_strip et tri_fan. Ces optimisations sont utilisées par le script d'export pour Blender.

Les quad_panels

Les "quad_panel" (faces géométriques utilisées dans les cockpits virtuels pour afficher les instruments) sont d'énormes mangeurs de ressources ! Evidemment, on peut difficilement s'en passer car l'affichage d'un tableau de bord fonctionnel est primordial. Malgré-tout, évitez autant que faire se peut de mapper des instruments à aiguilles dont l'affichage doit être actualisé en permanence (altimètre, horizon artificiel...).
Un solution est d'utiliser des instruments entièrement en 3D animée pour remplacer chacun de ces instruments (pas forcément très simple).