RayCasting

RayCasting

Le RayCasting est une technique de rendu qui permet de transformer des données 2D en une simulation 3D, tout en nécessitant très peu de puissance de calcul. En raison de cet particularité, ce système a connu un véritable succès au début des années 1990, lorsque les ordinateurs et consoles de jeux de l'époque ne pouvaient pas utiliser les techniques modernes de rendu 3D, faute de puissance suffisante.

Cela s'explique par le fait qu'un moteur de RayCasting a besoin, dans sa version la plus simple, de seulement deux données :

? • Un tableau contenant la liste des différents murs du jeu. ? • Un "Joueur", défini par une position (En 2D) et une orientation.

Le but du moteur est de lancer, pour chaque colonne de pixels à afficher à l'écran, un rayon partant du joueur et s'arrêtant au premier mur rencontré. Une fois ce mur atteint, il suffit de dessiner une ligne verticale le représentant, et dont la taille est proportionnellement inversée à la distance parcourue par le rayon. En effet, plus cette distance est élevée, plus le mur est situé loin du joueur, et doit apparaître petit à ses yeux. En utilisant cette technique sur chaque colonne de pixels à l'écran, il est possible d'avoir un aperçu complet de l'environnement tel qu'il est perçu par le joueur.

Projection

Ce procédé correspond au coeur du moteur de jeu, et est suffisant pour le faire fonctionner. En revanche, il existe de nombreuses améliorations destinées à le rendre un peu plus intéressant…

Tout d'abord, vous remarquerez que le RayCasting se contente d'afficher chaque bloc d'une couleur unique, afin qu'il se distingue du sol et du ciel. Il est possible de remplacer ces couleurs unies par des textures, afin de donner un aspect plus réaliste aux murs. Ensuite, le moteur original ne permet pas de sauter ou de se baisser, mais nous pouvons modifier cela en adaptant la position verticale de chaque bloc, et en calculant chaque projection au-delà du premier bloc rencontré. Enfin, une fonctionnalité intéressante est l'ajout d'un système de sprites, ce qui permet d'avoir des ennemis qui se déplacent entre les blocs, comme dans un véritable jeu-vidéo.

Bien sûr, il ne s'agit que de pistes d'amélioration, et il est aujourd'hui possible de trouver des implémentations de ce moteur qui disposent de fonctionnalités beaucoup plus poussées. Mais il ne faut pas oublier que c'est la version originale du RayCasting qui a permis à la 3D se faire ses premiers pas dans le monde du jeu-vidéo, notamment grâce au succès de Doom et de Wolfenstein 3D !

Wolfenstein-3D

Pour conclure, ce moteur étant vieux de plus de 30 ans, de nombreuses évolutions officielles ont vu le jour, et notamment la technologie du RayTracing. Il s'agit d'une projection identique au RayCasting, mais qui projette chaque pixel à l'écran, et non plus uniquement chaque rangée, afin de déterminer avec une précision inégalable la couleur de chaque pixel. Aujourd'hui, cette technologie est l'une des plus importante en terme de réalisme, mais nécessite des ordinateurs très puissants pour pouvoir être utilisée, ce qui freine son adoption par le grand public.

En attendant les futures technologies de rendu 3D qui révolutionneront les jeux-vidéo et l'informatique dans les années à venir, n'oubliez pas d'essayer mon moteur de RayCasting !

Découvrir RayCasting