Super 3D Retro

May 2017

This blog is derived from this one.

Un jour de mai, lors de ma première année en Irlande, j’ai commencé à réfléchir aux systèmes 3D ; pas particulièrement sur la gestion de collision mais sur l’affichage (par des wireframe très simples) des graphiques 3D. Je n’avais aucune idée de comment ajouter efficacement des textures différentes des couleurs plates sur les polygones ni comment gérer la lumière, mais j’avais étudié les mathématiques des vecteurs 3D à l’école et je me souvenais que ce n’était pas si complexe - du moins pas plus que sur les modèles de vecteurs 2D que j’utilisais déjà lorsque je créais des jeux.

Alors, au lieu de partir chercher toutes les informations du sujet sur Internet, j’ai essayé de créer un petit jeu avec des graphiques de wireframe retro 3D à partir de rien. J’étais déjà tellement fan du concept du web que pour le coup j’étais parti à faire tout en JS et l’appliquer sur un canevas.

Comme on peut s’y attendre, ça n’a pas marché à la perfection et j’ai fatalement abandonné mon projet lorsque je me suis rendu compte que pour le faire fonctionner il aurait fallu que je ré-écrive tout depuis le début à cause d’une erreur fondamentale de ma part. En vérité, cela fonctionne proprement sur les objets, mais comme je ne connaissait pas les matrices de projections à l’époque, les bords de l’écran sont courbés comme à travers une lentille "fish eye".

Néanmoins, mis à part ce problème de caméra, les graphiques 3D très basiques sont en fait assez simples. Cela se corse de manière exponentielle si on a besoin de plus de features (textures, lumières, fondu…) mais j’ai beaucoup appris et m’amuse beaucoup à faire tourner mon propre moteur de rendus. Je pense que j’ai écrit mes propres fonctions mathématiques de vecteurs aussi.

Le prototype est toujours disponible here. Le répo Github est ici.

Traduit par Marylis.

Back - Home