La 3D avec texture : comment ont-ils fait ?

Aaah, les FPS d’aujourd’hui et leur 3D magnifique… Ces expressions crédibles sur le visage des PNJ, ces décors photo-réalistes… Il y a pas à dire : on a quand même fait de gros progrès sur la 3D ! Souvenez-vous, le premier Star Wars Arcade tout en fil de fer :

Et si aujourd’hui, on peut aimer ce petit côté vintage, il faut avouer que même à l’époque c’était moche! Mais au moins ça bougeait en 3D et ça offrait une belle animation.

De la puissance pour un meilleur visuel

Alors comment en sommes nous arrivés à des jeux comme Doom ou Duke Nukem 3D ? Commençons par le commencement !
Comme je le disais plus haut, on avait de la 3D fil de fer. C’était moche mais ça à l’avantage d’être relativement fluide et rapide. De plus, des machines comme l’Atari ST et l’Amiga pouvaient facilement afficher ce genre de jeux. Puis nous sommes rapidement arrivés à la 3D face pleine. Un exemple concret : Carrier Command.

C’est la même chose sauf qu’on ne voit plus les arrêtes situées derrière les surfaces pleines. C’est un peu plus lourd à afficher, mais sur des machines 16 bits, ça passait pas trop mal. Ce type de 3D est relativement basique, avec des coordonnées x,y ou z reliées entre pour former une surface. Avant d’aller plus loin, il est utile d’expliquer comme la 3D fonctionne sur nos ordinateurs.

Les jeux en 3D se font en deux phases.
Dans la première, les différents éléments sont placés sur un plan en 3 dimensions.
Dans la seconde, on doit déformer ce plan pour qu’il s’affiche en 2D.
Ne vous inquiétez pas : tout va se clarifier par la suite.

La texture

Imaginons maintenant un cube en 3D. Sur ce cube, nous voulons des formes, des dessins. Pour cela, nous allons plaquer une image en 2D (une texture) sur une des faces.

Ce n’est pas cette opération qui va réclamer le plus de temps machine, mais sa « transformation »  en affichage 2D sur notre écran. Logique, puisque l’ordinateur doit modifier chaque pixel de notre image pour la déformer. Sceptique ? Essayez vous-même sous Gimp ou Photoshop d’effectuer une rotation ou un effet de perspective sur votre image. Votre ordinateur devrait prendre plus de temps et pourrait même ramer un peu. Sauf si vous avez une bête de course, bien entendu !
Mais alors, avec toutes les textures plaquées sur notre écran pendant un jeu, ça devrait énormément ralentir notre ordinateur. Et bien non ! Par exemple, pour notre sol, on va réutiliser et répéter la même texture.

De plus, notre texture est limitée en couleur et en taille afin de ne pas prendre trop de place en mémoire.
Quand on regarde Wolfeinstein 3D, on peut constater que les textures sont assez moches et répétitives. Les machines de l’époque n’étaient pas assez puissantes pour déformer beaucoup de textures et n’avaient, de toute façon, pas assez de mémoire pour les stocker.
Pour Wolfeinstein, John Carmack avait grugé en mettant très peu de textures au sol et aucune au plafond.

Maintenant, avec nos machines surpuissantes, nous avons des cartes 3D qui gèrent les effets de flou, d’ombre et même les textures en haute définition. A l’époque, ce n’était, bien sûr, pas du tout le cas. Pourtant, la technique reste la même puiqu’on plaque toujours des textures sur des objets en 3D polygonale.

Un jour, je vous parlerai de l’arrivée de la 3DFX et de l’avénement des cartes 3D. D’ici là, profitez-en pour vous refaire quelques FPS à l’ancienne 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *