Voilà une maj de la source que j'ai poster cet été.
Il s'agit d'une ébauche d'un moteur 3D, qui permet de placer des objets 3D importés depuis des fichiers .x ou des modèles 3d prédéfinis, de les tournée et d'appliquer de la lumière.
Le moteur n'est absolument pas optimisé et tourne entre 25 et 60 FPS en mode fenêtré (comparé au 200 FPS du sdk)
Les sources qui m'on permis de le réaliser:
- http://www.vbfrance.com/codes/EBAUCHE-MOTEUR-3D-DI RECTX_41763.aspx
- http://www.csharpfr.com/codes/DX9-TUTORIEL-MESHS_1 1568.aspx
- http://www.csharpfr.com/codes/BOX3D-DIRECTX_41948. aspx (dont j'ai repris la texture)
- http://www.cppfrance.com/codes/DETECTION-COLLISION S-3D_46530.aspx
et de quelques tutos de http://thezbuffer.com/articles/315.aspx en vb.net pour comprendre certains fonctionnements.
Les fonctionalités:
- Texturage/Modification des "materials" d'un objet
- Placer, déplacer, tourner un objet
- Propriétés d'un objet (à voir dans la source, BoundingBoxMinValue, BoundingBoxMaxValue, scale, visible, etc.)
- Gérer les entrées utilisateur (clavier, souris, joystick)
- Caméra libre/Caméra suivant un "acteur" (j'ai pris le tigre du sdk), en appuyant sur F12
- Méthodes pour écrire et dessiner à l'écran (à amélioré grandement)
- Modèles 3D prédéfinis (cubes et plans, j'aurais aussi aimé ajouter la sphère mais j'ai aucune idée de comment faire, donc j'ai rajouté DXSphere qui créer une sphere à partir des modèles DirectX où je ne sais pas modifier les textures et les vertices)
- Application de lumière
- Gestion du sons (lire un sons ou une musique depuis une playlist, modifier le volume)
- 2 niveaux (appuyez sur F1 et F2, le premier niveau étant F2, cf Game.cs et LEVEL/)
- Détection des collisions (mais pas gestion, je n'ai pas réussi à gérer les collisions sans descendre en dessous de 1fps :p)
Pour le premier niveau j'ai repris des textures de Trackmania (Stadium) au format dds. Pour l'autre niveau je croit que je les avait pris sur thegamecreator(fps creator)