Forums Développement Multimédia

Les formations Mediabox
Les formations Mediabox
EN CHANTIER
Cette page n'est pas terminée et est en cours d'écriture. Merci de votre patience.

Menu général

Compatible ActionScript 3. Cliquer pour en savoir plus sur les compatibilités.Par Monsieur Spi, le 24 septembre 2010

Mode7 : Définir le monde

Pour bien comprendre le Mode 7 il faut tout d’abord comprendre le monde dans lequel vous allez évoluer.

Il s’agit d’un monde virtuellement en 3 dimensions dans lequel vous placez une caméra. Cette caméra est orientée selon trois axes et doit renvoyer l’image d’une surface (le plan) vers laquelle elle est orientée.

L’image enregistrée est d'abord déformée pour correspondre au point de vue de la caméra pour ensuite être affichée sur l'écran.

Il y a donc deux parties essentielles, celle qui effectue tous les calculs pour placer, orienter et paramétrer la caméra, et celle qui affiche à l'écran le résultat de l’image observée du point de vue de la caméra.

Projection

Notre objectif est de passer de la vue de gauche (2D a plat) à la vue de droite (2D en perspective).
L’essentiel de votre jeu se passe dans un univers en deux dimensions (vue de gauche).
Ce que le joueur voit est une projection du plan qui simule la profondeur (vue de droite).

La notion essentielle à retenir (et si vous ne devez en retenir qu’une que ce soit celle là) c’est la notion de projection.

“En géométrie, une projection est une transformation de l’espace, c’est-à-dire une application linéaire qui projette l’espace sur une sous partie. Par exemple pour faire de la 3D on projette l’espace (en 3D) sur l’écran (en 2D), on obtient ainsi un rendu similaire à celui que l’on aurait eu en regardant la même scène avec ses propres yeux.


Il existe de nombreux types de projection, mais celle qui nous concerne est la perspective.
Plus les objets sont loin, plus ils apparaissent petits à l’écran.

Notions de projection

Dans un monde en 3 dimensions, vous ne voyez pas la totalité de ce qui vous entoure, seuls les objets qui se trouvent dans votre champ de vision sont visibles. L’écran de projection représente la partie visible de ce que vous regardez, il affiche ce qui se trouve dans le volume représentant votre champ de vision au-delà de l’écran lui-même.

Dans le schémas ci-dessus, la caméra est le point de départ.
Sa position est définie sur les axes x (horizontal), y (vertical), z (profondeur).
D” représente la distance entre la caméra et l’écran de projection.
W” représente la largeur de l’écran.
H” représente la hauteur de l’écran.
La zone visible, le Tronc, est située entre l’écran et la fin du champ visuel.

L’écran est un plan à deux dimensions, la hauteur (H) et la largeur (W).
La zone visible est donc une pyramide tronquée (un frustum, ou Tronc en géométrie).
Il y a une zone minimale et une zone maximale dans laquelle vous pouvez percevoir l’univers.

En coupe latérale voici ce que donne un point projeté :

L’axe X est orienté vers vous et l’axe Z représente la profondeur.
D représente la distance entre le projecteur et l’écran de projection.
H est la hauteur de l’écran de projection

Ici le point (y1, z1) est projeté sur l’écran au point (y2, D).

Vous remarquerez que la coordonnée z du point projeté est égale à la distance séparant l’écran et la caméra.

On peut donc déterminer un paramètre important pour la suite, l’échelle : z/D

L'échelle est très importante puisque c'est elle qui va vous permettre de donner l'illusion d'une profondeur.
On divise la coordonnée z du point à projeter par la distance qui sépare l’écran et la caméra.
Si cette valeur est positive alors on doit réduire la taille de ce que l'on affiche pour donner l’impression d’un point de fuite, sinon on doit agrandir ce qu'on affiche pour respecter la perspective.
La valeur de la position de l’écran représente l’échelle 1.

Même si ce n’est pas explicitement noté plus haut une projection implique nécessairement une projection de rayons ou de vecteurs. Un vecteur est une droite représentée par deux points. On peut donc imaginer qu’un vecteur ou rayon est projeté depuis le point dans le plan vers la caméra. L’intersection entre ce rayon et l’écran de projection donne le point à afficher. Ce sont les prémices de la technique du "Ray Casting" que vous pourrez étudier plus en détail dans une autre partie de cette rubrique à propos des jeux vidéo.

Pour l’instant retenez simplement que pour modifier la perspective il faut modifier la position du spectateur et de l’écran de projection. L’angle de projection change et la distance qui sépare l’écran des différents points du plan projeté n’est plus uniforme et permet de changer l’échelle.

Dans la figure ci-dessus, les points situés en haut de la projection sont plus prés de la caméra que ceux qui se situent en bas de la projection. A l’aide de l’échelle que nous avons déterminé plus haut nous obtenons une impression d’éloignement de la partie basse de l’écran. Plus on descend et plus le point est loin, plus le point projeté sera petit.

Si l'on fait varier la position de la caméra en hauteur, l'angle de la projection change, ce qui est affiché à l'écran aussi.

A retenir

Dans un monde en 3 dimensions l’orientation de la camera est donnée par trois axes : Y, X, Z.

Nous travaillons à présent avec deux objets que nous savons définir.

  • Le plan (vue de gauche)
  • La caméra située au point a = (ax, ay, az) dans le plan (vue de droite).

A lire