Distemporal Arts

Image aléatoire

Actualités

Le premier projet informatique du site sera un raycaster. J'expliquerai comment il est programmé dans la catégorie Informatique.

01 Juin 2021

Le Inktober 2020 a été ajouté à la section Images. Attention, c'est un contenu gore/horreur.

18 Mars 2021

Le Inktober 2019 a été ajouté à la section Images. Aussi, l'annonce du projet de musée virtuel change de moteur de rendu.

24 Janvier 2021

J'inaugure le déploiement du site web de Distemporal Arts. J'ai hâte de partager mes créations et les sujets que je trouve intéressants.

17 Janvier 2021

Outils



Me suivre

Programmation d'un raycaster basique - Partie 2

Dans ces pages, je décortique les étapes de création d'un raycaster basique dans un but didactique. Un raycaster est un moteur de rendu en 2,5D comme on peut le voir dans le jeu Wolfenstein 3D sorti en 1992. En bonus, des améliorations seront proposées et expliquées en détails.

Qu'est-ce qu'un raycaster ?

Un raycaster est un moteur de rendu qui utilise le raycasting. C'est à dire que la caméra lance un rayon qui doit toucher les éléments du monde pour déterminer leur distance et ainsi permettre de dessiner ce monde à l'écran. Cette technique est généralement utilisée pour faire du rendu pseudo-3D, ou en 2D pour simuler des projections de lumières venant d'une lampe torche, ou calculer la propagation de la lumières entre différentes pièces sur une carte de jeu. En réalité, les applications du raycasting sont multiples et ne sont pas réserver à la pseudo-3D. Ici, je vais me concentrer sur le raycasting utilisé dans des jeux tels que Wolfenstein 3D, ou encore The Ken's Labyrinth. C'est à dire que le monde sera une simple grille constituées de carrés. Ces carrés peuvent représenter des murs, et le rayon va simplement détecter une collision avec ces carrés pour déterminer les informations nécessaire à l'affichage du monde. Si le concept est simple en l'apparence, vous verrez qu'il y a des subtilités importantes à réaliser pour réduire accélérer le rendu. En effet, le raycasting reste une technique plutôt lente, et c'est pourquoi il faut se limiter à certaines contreintes et utiliser des astuces mathématiques et logiques pour obtenir un jeu en temps réel.

Le raycasting n'est pas le raytracing

Il arrive que des ouvrages utilisent le terme raycasting pour parler de raytracing. C'est un abus de langage. Le raytracing est plus lent encore et ne fonctionne pas tout à fait de la même manière, mais l'image est aussi de bien meilleure qualité que le raycasting. Dans le raytracing, on lance aussi un rayon par pixel, mais ce dernier va pouvoir toucher toutes sortes d'objets de différentes formes et va aussi rebondir pour atteindre d'autres objets et des sources de lumière. Le raycasting se contentera généralement de formes planes comme des murs, et pour accélérer le rendu, on utilisera aussi une ligne seulement sur toute la largeur de l'écran pour déterminer la position des murs et des textures, puis on étirera ces derniers dans la hauteur en fonction de la distance pour créer une profondeur. Il s'agit d'une méthode plus simple pour créer des environnements presque en 3D, mais peu réalistes.

A l'ère de la 3D, quel est l'intérêt ?