Programmation 3D
Cette page regroupe les différents travaux que j'ai réalisés dans le domaine de la 3D. Notamment un modeleur 3D, en collaboration avec un ami et un début de moteur 3D.
Les principaux projets ont été réalisés avec Visual Studio 6, en C++/DirectX. Les sources doivent marcher mais je n'ai pas eu le temps et l'envie de réinstaller un environnement fonctionnel pour tester en détail l'état actuel du code. Actuellement, je travaille plutôt avec le couple Python/Opengl, beaucoup plus portable et simple d'utilisation.
Jyle3D
Jyle3D est un modeleur 3D. C'est un
logiciel qui permet de créer facilement des scènes en trois dimensions à
partir de primitives et d'opérations de bases. Le logiciel peut
également importer des scènes créées sous 3D Studio.
Si vous êtes intéressés, je vous invite à aller voir le site du logiciel que nous avons mis au point : Jyle3D (Il s'agit d'une copie locale du site, après des problèmes d'hébergements).
Kick The Brick
Programmer un casse-brique est
probablement la chose que j'ai réalisée le plus souvent dans ma vie
de programmeur. Alors j'en ai nécessairement écrit un quand j'ai
découvert DirectX pour tester mon moteur 3D. C'est un vieux projet
que je n'avais jamais mis en ligne. L'oubli est réparé.
Tous les modèles ont été réalisés avec Jyle3D, ainsi que le niveau fourni. La position des briques ne suit pas une grille précalculée mais vient du modèle, permettant la création de niveaux originaux. Pour l'instant, même si le jeu est en 3D, la balle se déplace dans un plan uniquement.
Quelques options ont été implémentées, glue, missiles, miroir, déplacement bizarres,...
Télécharger l'exécutable (win32) | Télécharger les sources |
![]() |
![]() |
Shade
Shade est un embryon de jeu de course
en 3D, à la wipeout. Il gère un début de physique avec des
détections de collisions, un générateur de particules, du billboard,
un skybox et le chargement d'objets créés avec Jyle3D.
Le code est en stase, mais la structure
est relativement aboutie, les classes peuvent être réutilisées pour
un rafraichissement.
Avant de commencer ma thèse, la gestion du vaisseau et le chargement des maps était fonctionnel... La map fournie est un mini exemple. Il restait principalement un effort de modélisation à effectuer...
Télécharger l'exécutable (win32) | Télécharger les sources |
![]() |
![]() |
Moteur
Un embryon
de moteur. Il gère les collisions et quelques effets
classiques. En jouant avec les commentaires de la méthode
MyApp::process() il est possible de tester les différents effets
que j'ai programmé, principalement des adaptations des codes de NeHe en
DirectX. Je suis assez content de l'effet "pub" qui
implémente un paneau publicitaire qui change d'affiche régulièrement,
avec un panneau composé d'une dizaine de barres triangulaires.
Télécharger l'exécutable (win32) | Télécharger les sources |
![]() |
![]() |
PyNeHe
Les tutoriels de
NeHe sont pour moi une
référence pour la programmation OpenGL. J'ai effectué une migration
en python/wxPython/OpenGL du code originel disponible sous windows
et linux, principalement en c.
Il est assez difficile de respecter la philosophie de l'auteur qui a développé en c sous windows lorsque l'on passe à un langage objet beaucoup plus puissant (en terme de pouvoir expressif et de bibliothèques/structures disponibles). Ces tutoriaux restent donc autant que possible fidèles aux versions de base et ne sont donc pas nécessairement écrites de la manière la plus optimale ou élégante pour python.
Chaque leçon est disponible dans un fichier séparé. J'ai réalisé une mini interface pour centraliser les appels. Pour tester, un simple "python main.py" devrait suffire. Il vous faudra Python (>=2.4), wxPython et PyOpenGL (ainsi que les dépendances éventuelles)
Télécharger les sources |
![]() |