On y va petit à petit pour créer Qasari, l'une des méthodes pour simplifier est de travailler en apprenant du python pour maitriser des concepts de programmation puis de s'initier au langage C et enfin basculer sur du C++ moderne. Donc faut bien choisir ces livres. Mon conseil:
- Apprendre à programmer en Python 3, Swinnen
- Learn C The Hard Way, Zed A Shaw
- Le guide du C++ moderne, Benharrats & Vittupier
L'intérêt est de transférer des exercices du livre en python et langage C en C++. Et comprendre la différence du code en particulier en C++ moderne. Il faudra bien appréhender la gestion de la mémoire et donc les pointeurs. Après on peut aussi s'initier aux algorithmes et structures de donnée.
Ensuite pour créer notre logiciel, nous devons donc créer en fonction des contraintes prédifini de conception que j'ai édité dans le référentiel d'exigence du projet et intégrer la brique principale du logiciel: Dear Imgui + Vulkan + VKVG
On va travailler tous le temps avec, mais aussi libfive pour notre modeleur qui fournit nos algorithmes pour la géometrie computationnelle y compris la modélisation paramétrique et procédurale.
Vulkan :
Rôle : Gérer le rendu de la scène 2D et 3D.
Fonctionnalités :
-Rendu haute performance pour les objets 3D.
-Gestion efficace des ressources GPU.
-Support multi-threading pour des opérations parallélisées.
-Flexibilité pour intégrer des techniques avancées de rendu (ombres dynamiques, PBR, etc.).
Dear ImGui :
Rôle : Fournir et gérer l'interface utilisateur (UI).
Fonctionnalités :
-Création rapide et simple d'interfaces graphiques interactives.
-Widgets de base comme les boutons, les menus, les fenêtres, etc.
-Intégration fluide avec Vulkan pour le rendu de l'UI.
-Gestion des entrées utilisateur (souris, clavier).
VKVG (Vulkan Vector Graphics) :
Rôle : Dessiner des lignes, des formes géométriques et annoter.
Fonctionnalités :
Rendu vectoriel précis pour les dessins techniques.
Dessin de lignes, courbes, formes géométriques et textes.
Intégration avec Vulkan pour superposer des annotations et des dessins techniques sur la scène 3D.