NearlyRealEngine

Licence 2 – Semestre 3

Travail “bénévole” d’un étudiant qui a repris son projet développé dans le cadre de l’unité d’enseignement Programmation avancée. Le projet a été presque totalement réécrit pour améliorer le code en utilisant les principes de programmation vus dans d’unité d’enseignement Bases de la programmation orientée objet.


NearlyRealEngine est un projet personnel visant à créer un moteur de rendu graphique 3D. Programmé en C++ et avec OpenGL il met en pratique les théories apprises lors des cours de Bases de la programmation orientée objet, Programmation objet avancée et de Conception d’interfaces graphiques.

Le moteur permet de créer des mondes voxels (cubiques) générés automatiquement et infinis. Il permet également de gérer : des modèles 3D complexes, des textures, des effets graphiques avancés tels que la réflexion des lumières sur les matériaux, la réflexion du décor, le type des matériaux, le relief des textures, des optimisations de rendus, des gestions d’entrés/sorties et flux de tout genre, et bientôt des interfaces graphiques … le tout réutilisable très facilement par un client.

La plupart de la conception a été faite sous la méthode de développement que j’ai apprise lors de mes cours, ce qui m’a permis de faire un code propre, factorisé, maintenable et performant.

Le lien de ce projet est disponible au public, sous licence, le code continue à évoluer.

https://github.com/AbelDoc/NearlyRealEngine_Dev

Le moteur peut rendre des mondes très grands, avec très peu de mémoire et une vitesse d’exécution très raisonnable. Dans cette première vidéo, plus de 80 millions de blocs sont affichés.

Louis

Cette deuxième vidéo montre la gestion de modèle 3D complexe, ainsi que les effets graphiques sur les sphères. Chaque sphère représente un matériau avec des propriétés spécifiques, comme la réflectance : certaines sphères réfléchissent leur environnement et d’autres non.

C’est ce qu’on appelle le PBR (Physically Based Rendering), le but est de refléter la réalité à travers des effets graphiques