Contenu du renducontact(at)guillaumelevieux.com :: « Home

François Candela

Programmeur Enjmin



Github : https://github.com/frCandela/MinecraftGL_Engine
YouTube : https://www.youtube.com/watch?v=WYHEdVlt6co&feature=youtu.be

Ce rendu concerne couvre le LD procédural et la Synthèse d’Images. Le moteur a été refait à partir de zéro sans rien utiliser du moteur donné en exemple.
La physique est gérée par la bibliothèque Bullet Physics, l’interface par IMGUI. Le monde est infini et la génération multi-thread. Les chunks sont créés autours du joueur quand il se déplace. Du view frustrum culling permet de ne pas afficher les chunks hors champ.
Il est possible de se déplacer(ZSQDAE), sauter(ESPACE) ; sprinter(MAJ), casser et poser des blocs (clic / roulette), passer en camera/souris libre(F1), recharger les shaders(F2), enlever les lignes de debug(F3), quitter(echap). (Maintenir clic droit pour tourner la camera en mode libre)
Génération procédurale : Le monde est généré en utilisant plusieurs octaves de perlin 2D et 3D pour générer les reliefs et les caves. On ajoute ensuite de la terre, de l’herbe. Les arbres sont eux aussi générés de façon procédurale en créant d’abord un graphe représentant le tronc et les branche puis en ‘’voxelisant’’ ce dernier en bloc et bois, puis en rajoutant des feuilles par-dessus.
Shaders : Rendu en trois temps : Une passe en deffered pour le rendu les blocs ordinaires. Puis une passe forward pour les blocs transparents et les lignes de debug. Puis du postprocessing pour ajouter des bordures noires ou colorées et autres effets.
Liste des shaders :
FXAA : Shader d’Antialiasing emprunté à Vincent Stehly-calisto
Eclairage blinn phong
Ombres à deux niveaux de précision : une grande shadow map près du joueur et une petite loin de lui.
Textures : Les différentes textures des blocs sont stockées dans un atlas. Elles sont reprise de l’oCd Texture pack pour Minecraft 1.8.
Shader de debug. (lignes et points)
Le moteur supporte l’affichage du texte avec des polices au format .ttf
Occlusion ambiante SSAO optimisée.
Shader objets transparents
Bordures noires pour les objets opaques, bordures colorées pour le verre.
Skybox