Rétroviseurs de cockpit

Explication sur le format miroir dans 3dCkpit.dat. J'utiliserai le cockpit du F15 comme référence.

## Section principale

```
mirrors distance_ft: 1.20 tilt_deg: -15.0 texture_size: 600 draw_ownship_geometry: true offset_ft { right: 0.0 up: 3.5 } fov_multiplier: 1.0

```

Il s'agit de l'entrée principale du miroir. Il donne des informations générales sur le miroir. Voyez ceci, un seul verre de miroir qui couvre toute la vue du pilote (pour des raisons de performances, au lieu d'un verre par miroir). Qu'avons-nous ici :

* `distance_ft`: la distance de la surface à la position initiale du pilote est de 1,2 pieds.
* `tilt_deg`: la surface est légèrement inclinée vers le bas (15 degrés). Nous faisons cela parce que nous plaçons le miroir au-dessus de l’avion, afin de pouvoir voir sa propre géométrie.
* `texture_size`: la taille de la texture RTT, en pixels x pixels. Plus il y en aura, plus il sera beau. Et plus cher aussi (plus de calcul de pixel shader => plus de GPU nécessaire).
* `draw_ownship_geometry`: dessinez l'avion du joueur. Définissez sur true pour pouvoir afficher les pièces externes. Notez qu'il ne s'agit pas de la géométrie du cockpit 3D. C'est un travail pour l'avenir.
* `offset_ft`: décalage en pieds, par rapport au centre du modèle d'avion externe. Nous le plaçons généralement quelques mètres au-dessus, afin que la vue ne soit pas bloquée par la géométrie de l'avion.
* `fov_multiplier`: si vous souhaitez que le miroir ait un champ de vision supérieur ou inférieur à celui de la caméra par défaut, définissez ceci. C'est un multiplicateur (donc un joueur avec 100 FoV et fov\_multipler 1.1 obtiendra 110 FoV).

## Groupes miroir

Maintenant, comment dessiner les pochoirs (l'image miroir est dessinée à l'intérieur de ces polygones de pochoir). Chaque miroir est un Mirror\_group. Sa géométrie n'affecte pas l'image (c'est-à-dire que même si vous l'inclinez, elle n'inclinera pas l'image, elle utilise l'inclinaison de la section principale ci-dessus). Le résultat final peut être vu dans cette vidéo :

```
// Central mirror.
mirror_group
mirror_stencil center { forward: 1.20 left: 0.0 up: 0.231 } scale { wide: 0.1 tall: 0.07 } rotation_deg: 0.0 shape: STENCIL_SHAPE_CIRCLE num_triangles: 10;
mirror_stencil center { forward: 1.20 left: 0.13 up: 0.223 } scale { wide: 0.12 tall: 0.067 } rotation_deg: 4.0 shape: STENCIL_SHAPE_SQUARE;
mirror_stencil center { forward: 1.20 left: 0.25 up: 0.214 } scale { wide: 0.04 tall: 0.067 } rotation_deg: 0.0 shape: STENCIL_SHAPE_CIRCLE num_triangles: 20;
mirror_stencil center { forward: 1.20 right: 0.13 up: 0.220 } scale { wide: 0.12 tall: 0.067 } rotation_deg: -5.5 shape: STENCIL_SHAPE_SQUARE;
mirror_stencil center { forward: 1.20 right: 0.25 up: 0.208 } scale { wide: 0.04 tall: 0.067 } rotation_deg: 0.0 shape: STENCIL_SHAPE_CIRCLE num_triangles: 20;
mirror_group_end op { rotate{ pitch_deg: 15 } } op { scale { wide: 1.19 tall: 1.07 } } op { translate { forward: 0.01 up: 0.06 right: 0.001 } };

```

Cela commence par un `mirror_group`strophe.

Pour le F15C, il s'agit du rétroviseur central. Il est composé de 5 pochoirs : 2 rectangulaires ( `shape: STENCIL_SHAPE_SQUARE`), 3 circulaires ( `shape: STENCIL_SHAPE_CIRCLE`). Les 2 deux rectangles composent la plus grande partie du miroir. Les cercles servent à combler l’espace entre les rectangles inclinés et les extrémités. Notez que chaque pochoir peut être déplacé (centre, en pieds), mis à l'échelle sur 2 axes (largeur et hauteur) et pivoté (dans l'axe avant/arrière). Le champ `num_triangles`autoriser des formes plus circulaires tout en dessinant des cercles. Plus il y en a, mieux c'est en termes de look. Par défaut, nous utilisons 12 en cas d'omission. Pour les rectangles, c'est toujours 2.

Une fois le groupe terminé, nous effectuons les transformations finales. Cela s'applique à l'ensemble du groupe de pochoirs, comme s'il s'agissait d'un seul objet. La référence est que c'est le milieu. Ici, nous inclinons un peu le pochoir pour qu'il pointe vers le ciel (la plupart des cadres d'avions sont comme ça). Notez que ce pas n'affecte pas l'image miroir, qui est carrelée selon la section principale. Il s'agit simplement d'ajuster correctement le cadre du miroir. Nous le redimensionnons également un peu pour mieux l'adapter au cadre et l'avançons un peu vers la droite pour les ajustements finaux.

Passons maintenant aux autres miroirs. Notez que les rétroviseurs gauche et droit ont la même forme que celui du milieu. Nous les faisons simplement pivoter, les traduisons et les mettons à l'échelle.

```
// left.
mirror_group stencils_from_group: 0
mirror_group_end op { scale { wide: 1.18 tall: 1.05 } } op { rotate { roll_deg: 44.5 } } op { rotate { pitch_deg: 16.0 } } op { translate { back: 0.116 left: 1.01 down: 0.350 } }
// right.
mirror_group stencils_from_group: 0
mirror_group_end op { scale { wide: 1.16 tall: 1.07 } } op { rotate { roll_deg: -43.5 } } op { rotate { pitch_deg: 16.0 } } op { translate { back: 0.116 right: 1.05 down: 0.342 } }

```

Quand on dit : `mirror_group stencils_from_group: 0`, nous voulons simplement dire que ce groupe miroir utilise les mêmes pochoirs que le premier (groupe 0) SANS sa transformation finale ( `mirror_group_end`). Ensuite, nous appliquons à la place ses propres transformations :

* redimensionnez-le : agrandissez-le ( `wide: 1.18`) et plus grand ( `tall: 1.05`).
* faites-le pivoter : nous le faisons d'abord rouler à 44,5 degrés ( `roll_deg: 44.5`) pour correspondre au cadre latéral. Ensuite, nous l'inclinons à 16 degrés ( `pitch_deg: 16.0`).
* enfin, traduisez-le dans sa position. remarquez que ceux du côté sont plus proches que celui du milieu, d'où les entrées arrière (traduites vers le pilote).

Comme vous l'avez probablement remarqué, les coordonnées valides sont `up`, `down`, `left`, `right`, `forward`, `back`. Tout cela est lié au poste de pilote.

## Recharger la fosse en jeu (astuce vitale)

Dans ton `Falcon BMS User.cfg`fichier, définissez :

```
set g_bActivateDebugStuff 1

```

Ensuite, lorsque vous travaillez avec des miroirs, gardez un éditeur de texte ouvert pendant l'exécution de Falcon. Modifiez le fichier et en 3D, ouvrez le chat et tapez `.3dpit`.

Il rechargera le fichier en 3D et vous pourrez voir les modifications immédiatement.