+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Responsable Delphi

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    février 2013
    Messages
    1 280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2013
    Messages : 1 280
    Points : 14 157
    Points
    14 157
    Billets dans le blog
    71

    Par défaut FMX Island épisode 1 : génération de mondes extérieurs en 3D avec Delphi et Firemonkey

    FMX Island épisode 1
    génération de mondes extérieurs en 3D avec Delphi et Firemonkey


    Toujours en vue de découvrir la 3D avec Firemonkey et Delphi, Grégory Bersegeay vous propose, au cours d’une nouvelle série de tutoriels, la construction d’une scène en extérieur. Le premier épisode va vous permettre de générer des paysages en utilisant la technique du champ de hauteur (ou heightmap).

    Nom : fmxisland.png
Affichages : 250
Taille : 629,2 Ko

    Accompagné des codes sources, le tutoriel est disponible ici : https://gbegreg.developpez.com/tutor...episode1/tuto/

    Que pensez-vous de ce tutoriel ?
    Utilisez-vous Firemonkey pour ses fonctionnalités 3D ?


    Les meilleurs cours et tutoriels pour apprendre la programmation Delphi
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2007
    Messages
    9 054
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : janvier 2007
    Messages : 9 054
    Points : 20 682
    Points
    20 682
    Billets dans le blog
    9

    Par défaut

    Bonjour,

    En quelques mots : bluffant mais très (trop) addictif !
    Je suis tombé dans l'addiction dès les premiers paragraphes : "vite, vite, comment il a fait ...". C'est vraiment étonnant ce que l'on peut faire, moi qui ne suis pas 3D, ce tuto vous met les pieds à l'étrier sur un cheval au galop !

    C'est également bluffant en ce qui concerne la rapidité de chargement, pour information j'ai récupéré une carte (un objet 3D tout prêt) et utilisé le composant TModel3D pour l'afficher sur mon pc pas très puissant 5mn pour obtenir quelque chose ! La technique heightmap gagne haut la main.
    Il ne nous reste plus qu'à trouver d'autres heightmaps pour faire mumuse.

    Vivement les autres épisodes !
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
    J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
    Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous

  3. #3
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 369
    Points : 1 372
    Points
    1 372

    Par défaut

    Bonjour,

    J'ai mis une petite vidéo de ce que donne le projet final FMX Island (sans la détection de collision pour le moment) sur Youtube :



    La qualité de la vidéo n'est pas terrible : la compression dégrade pas mal l'image et c'est un peu saccadé (mon pc portable n'a pas de carte graphique dédiée et lui demander d'exécuter l'application tout en capturant la vidéo (même à 15 images/secondes) ça lui demande un effort soutenu ).

    Pour ce qui est des heightmaps, on en trouve sur Internet (par exemple celle que j'ai utilisée pour le tutoriel), mais, comme indiqué dans cet épisode, il existe aussi des logiciels pour en générer. Il est également possible d'en générer soi même via, par exemple, la méthode du bruit de Perlin.
    Il y a même une implémentation du bruit de Perlin en Delphi sur l'excellent site efg's qui, bien que doté d'une interface "vieillotte", propose de nombreuses ressources en Pascal sur tout ce qui concerne le traitement d'image.

    Si comme SergioMaster le virus vous prend, n'hésitez pas à partager vos réalisations avec par exemple une petite capture d'écran
    Mes tutoriels Delphi et Firemonkey - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  4. #4
    Membre actif Avatar de der§en
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : septembre 2005
    Messages : 270
    Points : 223
    Points
    223

    Par défaut

    Excellent !

    j’ai découvert des possibilités qui vont me permettre d’améliorer mon prog http://antre.dergen.fr/programme-tf3d/

    J’ai hâte de voir la suite.


  5. #5
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 369
    Points : 1 372
    Points
    1 372

    Par défaut

    Citation Envoyé par der§en Voir le message
    Excellent !
    Merci

    Citation Envoyé par der§en Voir le message
    j’ai découvert des possibilités qui vont me permettre d’améliorer mon prog http://antre.dergen.fr/programme-tf3d/
    Je ne connaissais pas ton site
    Ton prog a l'air très bien ! L'eau est très belle ! Je trouve tes montagnes un peu trop abruptes (ce n'est que mon avis). Avec un petit coup de flou sur la heightmap, ça devrait éroder un peu les sommets et les pentes

    En tout cas, ça donne des idées pour des améliorations. Je n'ai pas encore regardé ton code car je dois d'abord terminer la petite série de tutoriels prévue
    Mes tutoriels Delphi et Firemonkey - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  6. #6
    Membre actif
    Homme Profil pro
    Développeur multiplateformes
    Inscrit en
    mars 2003
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur multiplateformes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mars 2003
    Messages : 114
    Points : 238
    Points
    238

    Par défaut

    Bonjour,

    Très bonne initiative.
    Ce type d’algo dont vous faites la démonstration ici peut aussi être utilisé pour la représentation de fonctions mathématiques en 3D :
    http://edn.embarcadero.com/article/42007
    Des applis peuvent facilement être développées en physique, chimie, astronomie, là où les autres environnements sont beaucoup moins productifs à mettre en œuvres.
    La partie 3D de FMX est restée un peu à l’abandon depuis 2013, Embarcadero avait d’autres priorités... Des défauts de jeunesse du moteur n’ont pas été corrigés depuis : gestion défaillante de la transparence en 2D1/2 et des textures par motifs importées à partir d’un model extérieur. Gestion approximative de la mémoire.
    Il n’empêche que le produit reste sans équivalent par sa facilité d’utilisation et son ouverture. Il existe, bien sûr, nombre d’autres outils bien plus performants comme Unity, mais totalement dédiés et fermés.
    Je ferai prochainement appel au «Quality Portal» et à la maintenance pour certains de ces points mais il est essentiel qu’Embarcadero sache qu’il y a du monde d’intéressé sans quoi les demandes resteront sous la pile et FMX 3D n’évoluera pas...
    Ce tuto offre une belle occasion de constituer un groupe d’échanges et de contribuer à faire bouger les choses.

    Bonne continuation.
    A bientôt.

  7. #7
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 369
    Points : 1 372
    Points
    1 372

    Par défaut

    Citation Envoyé par yvslms Voir le message
    Bonjour,

    Très bonne initiative.
    Ce type d’algo dont vous faites la démonstration ici peut aussi être utilisé pour la représentation de fonctions mathématiques en 3D :
    http://edn.embarcadero.com/article/42007
    Des applis peuvent facilement être développées en physique, chimie, astronomie, là où les autres environnements sont beaucoup moins productifs à mettre en œuvres.
    Tout à fait, le thème de la petite série de tutoriels est une petite île paradisiaque entourée d'une mer turquoise pour donner un petit avant goût de vacances . De plus, la trajectoire du Soleil dans le ciel montre que l'île est sur l'équateur (le Soleil est au zénith à midi ! Ça invite au voyage !
    La technique utilisée peut évidemment servir à d'autres applications. C'est d'ailleurs un des objectifs des tutoriels : montrer que ça n'est pas bien difficile d'obtenir quelque chose de correct en quelques lignes de code (nous sommes évidemment loin des rendus des moteurs dédiés que vous citez mais ce n'est pas non plus l'objectif). En plus, ça tourne sur les différentes plateformes cibles de Delphi. C'est pour cela également que si ces tutoriels inspirent certains/certaines, je serai ravi d'avoir des captures d'écrans des réalisations

    Citation Envoyé par yvslms Voir le message
    Des défauts de jeunesse du moteur n’ont pas été corrigés depuis : gestion défaillante de la transparence en 2D1/2 et des textures par motifs importées à partir d’un model extérieur. Gestion approximative de la mémoire.
    Il n’empêche que le produit reste sans équivalent par sa facilité d’utilisation et son ouverture.
    Nous le verrons dans l'épisode 3, j'ai été confronté aux problèmes de transparence pour les nuages (j'ai utilisé un contournement pas terrible d'où l'impression que le Soleil passe devant les nuages...) et pour générer de la végétation (là le contournement ne suffit pas et j'ai abandonné cette idée).

    Citation Envoyé par yvslms Voir le message
    Je ferai prochainement appel au «Quality Portal» et à la maintenance pour certains de ces points mais il est essentiel qu’Embarcadero sache qu’il y a du monde d’intéressé sans quoi les demandes resteront sous la pile et FMX 3D n’évoluera pas...
    Je suis tombé tout récemment sur le site http://www.diggets.com/. Il y a des choses prometteuses (moteur physique, système de particules, multipass rendering, heightmap, gestion des ombres, + de matériaux dont l'eau...) mais ce n'est pas encore disponible. Pour le moment, je travaille sur l'épisode 4 de la série sur la gestion des collisions. Je n'arrive pas encore à suivre les aspérités du TMesh... (la fonction RaycastIntersect prend trop de temps, peut être qu'en scindant le TMesh représentant l'île en plusieurs TMesh plus petits (donc ayant moins de polygones) ça serait mieux).

    Citation Envoyé par yvslms Voir le message
    Ce tuto offre une belle occasion de constituer un groupe d’échanges et de contribuer à faire bouger les choses.
    +1
    Mes tutoriels Delphi et Firemonkey - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  8. #8
    Membre actif
    Homme Profil pro
    Développeur multiplateformes
    Inscrit en
    mars 2003
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur multiplateformes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mars 2003
    Messages : 114
    Points : 238
    Points
    238

    Par défaut

    Citation Envoyé par gbegreg Voir le message
    Nous le verrons dans l'épisode 3, j'ai été confronté aux problèmes de transparence pour les nuages (j'ai utilisé un contournement pas terrible d'où l'impression que le Soleil passe devant les nuages...) et pour générer de la végétation (là le contournement ne suffit pas et j'ai abandonné cette idée).
    Il y a bien une méthode (celle que vous avez peut-être utilisé) qui consiste à trier les plans 2D de l'arrière vers l'avant :
    https://www.delphitools.info/2011/11...in-firemonkey/
    Cela marche dans les cas simples et à condition que rien ne bouge. Mais c'est un peu du bricolage.....

    Citation Envoyé par gbegreg Voir le message
    Je suis tombé tout récemment sur le site http://www.diggets.com/. Il y a des choses prometteuses (moteur physique, système de particules, multipass rendering, heightmap, gestion des ombres, + de matériaux dont l'eau...) mais ce n'est pas encore disponible.
    Très intéressant : on va suivre cela de très près

    Citation Envoyé par gbegreg Voir le message
    Pour le moment, je travaille sur l'épisode 4 de la série sur la gestion des collisions. Je n'arrive pas encore à suivre les aspérités du TMesh... (la fonction RaycastIntersect prend trop de temps, peut être qu'en scindant le TMesh représentant l'île en plusieurs TMesh plus petits (donc ayant moins de polygones) ça serait mieux).
    Peut-être en se basant sur un système de balises, des TDummy placés régulièrement au dessus de la surface et dont le nombre et la position seraient déterminés à partir d'un calque sur la texture ayant servi pour le relief....

    @+
    Yves

  9. #9
    Membre actif Avatar de der§en
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : septembre 2005
    Messages : 270
    Points : 223
    Points
    223

    Par défaut

    Arf, y’a des bouts de code à moi chez : http://www.diggets.com/

    exemple :

    Nom : 04.jpg
Affichages : 87
Taille : 791,6 Ko

    A comparer avec mon prog TF3D :

    Nom : FT3D-3D-1.jpg
Affichages : 107
Taille : 142,2 Ko

    Nom : FT3D-3D-2.jpg
Affichages : 103
Taille : 126,9 Ko

  10. #10
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    6 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 6 937
    Points : 22 317
    Points
    22 317
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal

  11. #11
    Membre actif
    Homme Profil pro
    Développeur multiplateformes
    Inscrit en
    mars 2003
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur multiplateformes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : mars 2003
    Messages : 114
    Points : 238
    Points
    238

    Par défaut

    Citation Envoyé par Paul TOTH Voir le message
    Bonjour,

    Une démo qui semble prometteuse mais ou en est ce projet ?
    Est-il en lien avec Delphi / RAD Studio ?

  12. #12
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    novembre 2006
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 369
    Points : 1 372
    Points
    1 372

    Par défaut

    @der§en
    Fais tu partie de l'équipe derrière http://www.diggets.com/ ? Comment as tu fait la capture d'écran de Gorilla 3D ? (as tu pu télécharger quelque chose ?).
    J'aime bien ton principe dans TF3D de générer dynamiquement la texture à appliquer au TMesh en fonction de l'"altitude" des mailles, il faut que j'étudie cela

    @Paul Toth
    Je ne connaissais pas. C'est encore un bel exemple : c'est nettement plus réaliste que ma petite île ! On y voit de la végétation comme j'aurai aimé en mettre sur l'île... Par contre, cet exemple ne doit pas être fait avec Firemonkey. Il y a quelques années, j'avais joué un peu avec le moteur opensource Asphyre pour Delphi et Lazarus.

    Mon petit projet FMX Island fait pauvre du coup en comparaison mais :
    - je ne suis pas graphiste ;
    - il n'utilise que des composants fournis en standard avec Delphi;
    - il est compatible avec l'édition Starter (l'édition gratuite de Delphi);
    - il est multi plate-forme : j'ai testé sous Windows et Mac OS pas encore sous Android.
    Mes tutoriels Delphi et Firemonkey - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  13. #13
    Membre actif Avatar de der§en
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : septembre 2005
    Messages : 270
    Points : 223
    Points
    223

    Par défaut

    Non, non, je ne fait pas partie de l’équipe derrière ce framework, j'ai juste constaté qu'il avais une très très très amusante ressemblance entre mon rendu ainsi que des textures et de l'ordre d'application de celles-ci dans les exemples publié sur leurs sites...

  14. #14
    Membre actif Avatar de der§en
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : septembre 2005
    Messages : 270
    Points : 223
    Points
    223

    Par défaut

    Citation Envoyé par gbegreg Voir le message
    Mon petit projet FMX Island fait pauvre du coup en comparaison mais :
    - je ne suis pas graphiste ;
    - il n'utilise que des composants fournis en standard avec Delphi;
    - il est compatible avec l'édition Starter (l'édition gratuite de Delphi);
    - il est multi plate-forme : j'ai testé sous Windows et Mac OS pas encore sous Android.
    Pas du tout, ce qui est intéressant, c'est la façon dont tu as codés (en ce qui me concerne) et tu m'as appris des trucs...



  15. #15
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    novembre 2002
    Messages
    6 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 6 937
    Points : 22 317
    Points
    22 317

    Par défaut

    Citation Envoyé par yvslms Voir le message
    Bonjour,

    Une démo qui semble prometteuse mais ou en est ce projet ?
    Est-il en lien avec Delphi / RAD Studio ?
    Non c'est du Lazarus et c'est dispo sur Github
    https://github.com/seriva/

    Citation Envoyé par gbegreg Voir le message
    @der§en
    Fais tu partie de l'équipe derrière http://www.diggets.com/ ? Comment as tu fait la capture d'écran de Gorilla 3D ? (as tu pu télécharger quelque chose ?).
    J'aime bien ton principe dans TF3D de générer dynamiquement la texture à appliquer au TMesh en fonction de l'"altitude" des mailles, il faut que j'étudie cela

    @Paul Toth
    Je ne connaissais pas. C'est encore un bel exemple : c'est nettement plus réaliste que ma petite île ! On y voit de la végétation comme j'aurai aimé en mettre sur l'île... Par contre, cet exemple ne doit pas être fait avec Firemonkey. Il y a quelques années, j'avais joué un peu avec le moteur opensource Asphyre pour Delphi et Lazarus.

    Mon petit projet FMX Island fait pauvre du coup en comparaison mais :
    - je ne suis pas graphiste ;
    - il n'utilise que des composants fournis en standard avec Delphi;
    - il est compatible avec l'édition Starter (l'édition gratuite de Delphi);
    - il est multi plate-forme : j'ai testé sous Windows et Mac OS pas encore sous Android.
    je te rejoins sur un point, le code c'est une chose, mais bien souvent l'effet "wouahhh!" il vient des graphismes plus que de la technique (encore qu'avec les shaders on est à la frontière des deux mondes)...même Minecraft nécessite un certain talent pour avoir quelque chose de joli, que ce soit dans le choix des couleurs ou des assemblages qui font que ces quelques cubes donnent bien l'idée de ce qu'ils représentent
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/02/2018, 18h30
  2. Postfix ne peut recevoir les mails du monde extérieur
    Par chaispaquichui dans le forum Réseau
    Réponses: 1
    Dernier message: 13/09/2010, 21h28
  3. SAP et la communication avec le monde extérieur
    Par stefor2 dans le forum SAP
    Réponses: 6
    Dernier message: 05/08/2010, 15h03
  4. génération automatique de la clé primaire avec sql server
    Par j_esti dans le forum Développement
    Réponses: 2
    Dernier message: 22/10/2008, 19h25
  5. Génération d'une liste de liste avec contraintes
    Par noresis dans le forum Prolog
    Réponses: 2
    Dernier message: 02/04/2007, 21h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo