3D



Présentation

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




Une ancienne vidéo est également disponible ici : https://www.youtube.com/embed/UijFnnkVljQ



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 !