LibGL

English version

Ajouté le :

19/06/2023

| Modifié le :

19/06/2023

| Statut :

Terminé

Accéder au projet

Description

Contexte de création

Créé en 3 semaines du 13 au 21 Mars 2023 durant mon second semestre en Programmation de Moteurs de Jeu à Isart Digital.

Mon objectif

Mon objectif pour ce projet était de créer une bibliothèque de rendu en C++, utilisant OpenGL et destinée au développement de jeux vidéo.

Description du projet

La bibliothèque offre des fonctionnalités utiles pour le développement de jeux, ainsi qu'un projet de démonstration simple. Pour éviter les temps de compilation inutiles et le code bloat, la bibliothèque a été divisée en cinq (5) modules distincts, gérant chacun un ensemble spécifique de fonctionnalités :

  • Core: Structure de données de graph, Logging, Assertions, Gestion d'évènements, Gestion des resources, Service Locator, Thread Pool, Timer, Fonctions utilitaires communes
  • App: Fenêtrage, Gestion des entrées, Contexte de l'application
  • Entities: Gestion de scènes basée sur des components
  • Physics: Physique simple de corps rigides sans vitesse angulaire, Ray casting, Test de chevauchement (similaire aux fonctions Physics.Overlap de Unity).
  • Rendering: Moteur de rendu OpenGL, Ombrage Blinn-Phong, Shadow Mapping

Comme le principal objectif de ce projet était le moteur de rendu, j'ai utilisé les bibliothèques suivantes pour faciliter certaines parties du développement:

  • GLFW (Fenêtrages et entrées)
  • Glad (Chargeur OpenGL)
  • STB Image (Importateur d'images)
  • LibMath (Librairie mathématique personnelle)

Ce que j'ai appris

La création d'une bibliothèque de rendu modulaire en C++ utilisant OpenGL m'a permis d'approfondir mes connaissances en C++, tout en consolidant mes compétences en matière de planification et d'organisation. De plus, cet exercice a été une excellente occasion d'en apprendre davantage sur les différents défis de la conception d'une bibliothèque et de l'architecture logicielle. Enfin, j'ai beaucoup appris sur la programmation graphique et OpenGL, du développement de shaders en GLSL aux techniques de rendu utiles telles que le shadow mapping.

Avancement du projet :

Bien qu'elle soit constamment améliorée, la bibliothèque est utilisable et a été utilisée pour créer un jeu de puzzle en 3D.

Tags

C++, OpenGL, GLSL, Architecture Logicielle, Programmation Graphique, Programmation Moteur, Programmation de Librairies

Vu 265 fois