Skip to content

Commit c04a755

Browse files
authored
Merge pull request #32 from MrScriptX/update-redengine-portofolio
Update R3D Engine project description and features in the portfolio post
2 parents 4433a27 + 7d858aa commit c04a755

File tree

1 file changed

+53
-6
lines changed

1 file changed

+53
-6
lines changed

_posts/porfolio/2022-06-26-r3dengine.md

Lines changed: 53 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,63 @@ banner: /assets/img/2022-06/r3d_voxel_wireframe.png
77
label: R3D Engine
88
---
99

10-
R3D Engine est un moteur de rendu 3D basé sur l'API Vulkan, développé en C++. Le projet a pour objectif de découvrir le monde de l'infographie de bas niveau et d'améliorer mes compétences en architecture logicielle.
10+
R3D Engine est un moteur de rendu 3D développé en C++ et basé sur l’API Vulkan.
11+
Ce projet me permet d’explorer l’infographie de bas niveau tout en perfectionnant mes compétences en architecture logicielle.
1112

12-
Le moteur possède une interface graphique utilisant Dear ImGui, avec une console et un observateur de variable. Les trois types d'éclairage classique sont également supportés : l'éclairage directionnel, l'éclairage ambiant et les points lumineux. Les textures sont également supportées, ainsi que les fichiers au format OBJ.
13+
<!--more-->
1314

14-
Le projet utilise à présent [xmake](xmake-link), un utilitaire de build similaire à cmake basé sur du Lua. L'avantage de ce nouvel outil assez récent, c'est qu'il est bien plus simple d'utilisation, notamment pour les projets cross-plateforme.
15+
Le projet est né de ma curiosité grandissante pour le monde du bas niveau et les jeux vidéo, notamment Minecraft.
16+
Je me suis naturellement orienté vers le C++, mon langage de prédilection.
17+
J’ai choisi *Vulkan* plutôt qu’OpenGL, car c’était la nouvelle API en vogue à ce moment-là (oui, j’ai pris le hype train 😄).
1518

16-
Le projet est disponible sur [GitHub](https://github.com/MrScriptX/R3D_Engine). Il existe aussi quelques articles sur mon blog qui vont plus en détail sur la réalisation du projet.
19+
Le moteur repose sur deux dépendances principales : *Vulkan* pour le rendu graphique et *GLFW* pour la gestion des entrées utilisateur et des fenêtres.
20+
À cela s’ajoute *Dear ImGui*, qui fournit une interface utilisateur intégrée au moteur.
21+
Enfin, j’utilise *GLM* pour tout ce qui concerne les calculs matriciels et vectoriels (essentiel dans un moteur 3D 🤓).
1722

18-
![Exemple 1](/assets/img/2022-06/moving_light_02.png)
23+
## Fonctionnalités actuelles
1924

20-
![R3D Voxel](/assets/img/2022-06/r3d_voxel.png)
25+
Actuellement, le moteur permet de créer des scènes dynamiques, soit en instanciant des objets mathématiques, soit en important des fichiers au format *OBJ*.
26+
Il prend en charge les trois types d’éclairage les plus couramment utilisés dans les jeux vidéo :
27+
- Éclairage directionnel
28+
- Éclairage ambiant
29+
- Points lumineux
30+
31+
Grâce à ce moteur, j’ai pu développer un prototype de jeu, disponible dans le dépôt : [R3D Voxel](https://github.com/MrScriptX/R3DVoxel).
32+
C’est en répondant aux besoins de ce prototype que j’améliore continuellement le moteur en y intégrant de nouvelles optimisations.
33+
34+
## Le parcours du combattant
35+
36+
J’ai dû entièrement refactoriser le moteur après avoir réalisé que ma première architecture présentait des limitations incompatibles avec mes besoins 😢.
37+
En étudiant le fonctionnement de moteurs comme *Unity* ou *Unreal Engine*, j’ai pu définir un objectif clair en termes de fonctionnalités et d’architecture.
38+
39+
## Système de build
40+
41+
Au départ, je compilais le projet avec Visual Studio (un grand classique, me direz-vous).
42+
Mais en découvrant [xmake](xmake-link), j’ai décidé d’adopter cet utilitaire, qui offre plusieurs avantages non négligeables.
43+
44+
Le système de build repose sur Lua, ce qui permet d’éviter les complexités de *CMake* ou de *MSBuild* (encore pire 😅).
45+
De plus, [xmake](xmake-link) prend en charge la plupart des gestionnaires de paquets C++ (vcpkg, meson, etc.).
46+
47+
## Découvrez mon projet
2148

49+
Le projet est disponible sur [GitHub](https://github.com/MrScriptX/R3D_Engine).
50+
51+
Il existe aussi quelques articles sur mon blog qui vont plus en détail sur la réalisation du projet.
52+
53+
- [Créer un moteur de rendu 3D](/devlog/2021/05/09/creer-un-moteur-de-rendu.html)
54+
- [Calculer les normales pour l'éclairage](/devlog/2021/07/17/compute-normals.html)
55+
- [Intégrer Dear ImGui dans un moteur de rendu](/devlog/2022/06/03/dear-imgui-moteur-maison.html)
56+
57+
Vous pouvez également voir une démonstration du moteur !
58+
Cela se passe sur ma chaîne YouTube 📹.
59+
60+
- [vulkan directional lighting](https://youtu.be/abdZcInc1OI)
61+
- [Voxel engine terrain generation and optimization](https://youtu.be/pQtwTTGwCJA)
62+
63+
### Screenshots
64+
65+
![Exemple 1](/assets/img/2022-06/moving_light_02.png)
66+
*Exemple de gestion de la lumière dans R3D Engine*
67+
![R3D Voxel](/assets/img/2022-06/r3d_voxel.png)
68+
*R3D Voxel dans toute sa splendeur*
2269
[xmake-link]: https://xmake.io/

0 commit comments

Comments
 (0)