Un petit peu de 3D ça vous dit ? Alors vous êtes sur la bonne page !
Nous allons commencer par du ludique car il s'agit de petits jeux en 3D, puis nous ferons un tour vers la réalité virtuelle et la réalité augmentée. Delphi permet de s'initier à la 3D très facilement grâce au framework Firemonkey.
Il est même possible de constituer sa scène 3D directement depuis l'IDE avec la conception graphique de l'interface le tout avec un rendu temps réel !
Pour information, Delphi utilise DirectX pour les cibles Windows et OpenGL pour les autres (Mac OS X, Android, IOS et voir Linux avec FMX Linux).
Les jeux
Si ce n'est déjà fait, je vous invite à visiter la page de ce site consacrée aux jeux que j'ai réalisés. Les codes sources sont fournis et vous pourrez voir divers choses :
gestion des textures
gestion des caméras
gestion des lumières
gestion des collisions d'objet en 3D
etc
Feu
Feu est une petite démonstration qui comporte moins de 90 lignes de code !
La caméra tourne autour d'un feu de camp dans une forêt.
Le trackbar permet de régler le sens et la force du vent sur l'axe X.
Je n'utilise pas de moteur de particules pour la gestion des flammes (comme par exemple : https://github.com/mojeld/DelphiXE8_TParticleSystem). Ici, j'utilise simplement des TPlane que je fais tournoyer, déplacer et rétraicir de sorte de donner l'impression de flamme.
FMX Island est un exemple de création de monde virtuel à partir d'un champ de hauteur (Heightmap). L'utilisateur est totalement libre de se déplacer dans ce décors (tellement libre qu'il n'y a pas de détection de collision et donc il peut passer à travers les obstacles et le sol).
D'un point de vue programmation, cet exemple montre principalement comment utiliser un HeightMap en Delphi avec Firemonkey, comment se déplacer et s'orienter en 3D.
Cet exemple montre également :
gestion du cycle jour/nuit
génération d'objets
gestion d'une carte permettant à l'utilisateur de s'orienter
gestion des nuages
utilisation d'animations Firemonkey pour : l'éolienne, le bateau, la trajectoire du Soleil dans le ciel...
possibilité d'allumer une torche la nuit, de prendre des captures d'écran et d'afficher le maillage de la montagne (les fils de fer du Mesh).
simulation de vagues
détection des collisions
Cerise sur le gâteau, le projet fait environ 850 lignes, commentaires inclus !
Bonne visite de l'île en parcourant ses routes et ses sentiers !
Le code source est disponible sur GitHub : n'hésitez pas à mettre une étoile !
Démos 2019
Démonstrations 2019 : retrouvez les sources des démonstrations que j'ai faites lors du tour de France Delphi 2019.
GBE3D
GBE3D est une suite de composants gratuite et open source pour Delphi et Firemonkey.
Vous trouverez de nouveaux composants 3D qui s'ajoutent aux composants standards fournis par Embarcadero permettant par exemple de générer facilement des heightmaps, des drapeaux, des plantes, des nuages... afin d'enrichir vos scènes 3D.
GBE3D est open source et se trouve sur mon dépot Github accessible via le bouton ci dessous. Je fournis également de nombreux projets de démonstrations dont certains sont visibles sur ma chaîne Youtube.
Une aide en ligne est disponible également.
Voici une vidéo d'une des démos fournies avec GBE3D qui montre ce qu'il est possible de faire simplement avec GBE3D : génération de décors 3D, déplacement, détection de collisions, mer, nuages...
Biensur, le tout fonctionne sous Windows, Mac OS, Linux, Android et IOS sans modifier le code !
GBE3D fonctionne avec toutes les éditions de Delphi (même la community edition qui est gratuite).