Introduction :

Depuis quelque temps, la technologie Voxel utilisée dans les jeux, tel que Minecraft, Cubeworld et autres, m'intéresse de plus en plus. J'ai donc décidé de m'attaquer à la conception d'un moteur de rendu Voxel. Je pensais trouver bon nombres de tutoriaux traitant du sujet, malheureusement ce ne fut pas le cas. Je vous propose donc une série d'article, qui auront pour objectif de vous montrer pas à pas, mes développements sur le sujet.

Attention, cette série d'article suppose que vous ayait un environnement de développement C++ fonctionnel, permettant la réalisation d'application avec OpenGL. Pour ma part, j'utilise la librairie SFML 2.0, OpenGL, Glu, avec l'IDE Code::Blocks en version 12.11.

Je vous préviens, également, que je suis loin d'être un expert OpenGL, il est donc fort probable que si vous êtes expert en la matière, que des choses aberrantes vous sautes aux yeux. N’hésitez donc pas à m’en faire part, en m’expliquant ce qu’il aurait été plus judicieux de faire, et pourquoi.

Un peu de théorie :

Un Voxel, c’est une entité simple dans un environnement 3D, tel que le pixel dans environnement 2D. En comparaison, une image 2D d’une certaine dimension, sera composée d’un nombre de pixel correspondant à la hauteur * la largeur, qui auront une couleur de définit. Dans un environnement 3D, on va définir un groupement de Voxel, en ajoutant la notion de profondeur, qu’on appellera un « Chunk ». Chaque Voxel, pourra donc avoir une couleur, voir une texture dans ce chunk.

Un peu de pratique :

Tout d’abord le code suivant, permet d’afficher un cube simple à une certaine position en mode immédiat. Mais il permet surtout de mettre en place des bases d’affichage du FPS, le déplacement de la caméra autour de notre cube, et le changement de mode d’affichage OpenGL.

>>>> Récupérer main.cpp

N'oubliez pas d'ajouter la font Arial.ttf

- Clic droit + déplacement souris : Déplacement autour du cube
- Molette souris : Zoom
- Touche M : Changement de mode d'affichage

Capture d'écran :

voxel_01_a