Monthly Archives: July 2013

Projet personnel : moteur de Voxels avec OpenGL

Je développe depuis quelques semaines et selon mes disponibilités un moteur de jeu 3D à l’aide d’OpenGL. Il a la particularité d’être un moteur de voxels (~ des pixels 3D), le jeu le plus connu utilisant les voxels est Minecraft.

Ce moteur est développé en collaboration avec Valentin Manceaux-Panot. Il développe notamment le moteur du gameplay, pendant que je m’occupe principalement du moteur 3D.

À l’heure actuelle, le moteur est en développement, voici les points d’implémentation réalisés :
– Configuration d’un serveur SVN pour versionner le projet.
– Découpe en class et namespace du projet :

  • namespace Engine
    • Voxel
    • Shape
    • Cube
    • Sphere
    • World
    • Window
    • OpenGL
    • Command
    • Keyboard
    • Terrain
  • namespace Tools
    • Point3D
    • Speed3D
    • Defines
  • namespace Actors
    • Actor
    • IdleState
    • Pawn
    • PawnState
    • WeaponItem
  • namespace VObject
    • Experience
    • Hero

– Création de cube et de sphère composé de Voxel avec point source et rayon (ou dimension).

CE_Sphere
– Ajout de la couleur d’une Shape (class mère abstraite de Cube et Sphere).

CE_color
– Début de scene graph : on attach les Shape à un World pour les afficher.

– Amélioration des performances OpenGL, environ 60 FPS. (Perte de FPS quand il y a trop de Voxels à l’écran)

CE_SphereInside

CE_Terrain002

CE_Terrain003

CE_1

 

 

Bientôt plus :

– Génération de terrain à l’aide de Voronoi + seed (pour l’aléatoire).

– opération de translation/rotation/scale en tant que noeud dans le scene graph

– ajout de shaders / réduction du CPU au profit du GPGPU, …