IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants FMX Delphi Discussion :

La 3D, utilisation des TMeshObjects


Sujet :

Composants FMX Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 739
    Billets dans le blog
    65
    Par défaut La 3D, utilisation des TMeshObjects
    Bonjour,

    c'est la faute à gbegreg , ou plutôt de ses futures publications, si j'ai commencé à mettre mon nez dedans !

    j'ai trouvé sur le net divers endroits (free3d.com,archive3d.net) pour récupérer des objets 3D libre de droits, cela dit tout ces "objets" n'ont pas forcément des fichiers "compatibles" Delphi
    seul les .obj, .ase et .dae sont utilisables avec le composant TModel3D.

    Toutefois, après quelques tâtonnements (caméra, taille, rotations etc..) j'arrive à afficher un requin blanc (https://free3d.com/3d-model/puo-3970-23212.html) relativement effrayant, presque correct et sans code

    Nom : Capture.PNG
Affichages : 786
Taille : 196,1 Ko

    problème : mon grand blanc fait plutôt requin taupe au niveau de la couleur
    J'ai donc des questions au sujet des couleurs (lightmaterials) le zip contient 4 fichiers tga (normal,diffuse,specular,mask)pour les textures seulement
    a) comment ouvrir un tga (pour mes besoins j'ai converti un de ceux-ci en png)
    b) comment utiliser/fusionner les 4 alors que, à la pose du composant TModel3D je n'ai qu'un seul TLightMaterialSource (j'ai essayé d'en poser un second, mais que son parent soit la forme ou le premier TLightMaterialSource cela ne change rien)
    Où est donc l'astuce ?

    dans le zip vous trouverez aussi d'autres extensions ( .max, .fbx, .mtl) une idée s'il y en a besoin ou non ?

  2. #2
    Membre Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 547
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 547
    Billets dans le blog
    10
    Par défaut Une solution
    Connectes toi sur Clara.IO tu "push" ta 3d et tu la récupère dans le format de ton choix.
    Je me suis fait un convertisseur pour traiter la problématique des couleurs.
    Envoie moi ton exemple et je te le renvoie en natif Delphi.

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    690
    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 : 690
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    c'est la faute à gbegreg
    désolé !

    Citation Envoyé par SergioMaster Voir le message
    ou plutôt de ses futures publications...
    Tu t'occupes de mettre un peu de vie dans la mer !


    Plus sérieusement, je n'ai pas encore approfondi le TModel3D. Dans la série de tutoriels à venir, je n'en utilise qu'un pour les arbres. Mais il me semble que le material créé automatiquement lorsqu'on charge un objet dans un TModel3D est un TLightMaterial. Il doit donc réagir à la lumière. Je pense qu'il te suffit de placer un TLight (et de bien le positionner sauf si c'est une lumière de type "directionnelle" => propriété LightType à directional) car dans ce cas, tous les rayons lumineux sont parallèles et se dirigent en fonction de l'orientation de la lumière) pour que le requin soit éclairé.
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 739
    Billets dans le blog
    65
    Par défaut
    @ALWEBER j'ai mis le lien pour obtenir le grand requin blanc dans mon premier message, zip trop lourd pour mettre en pièce jointe

    Citation Envoyé par gbegreg Voir le message
    désolé !
    j'en crois pas un mot

    Tu t'occupes de mettre un peu de vie dans la mer !
    oui, et celui-ci me rappelle un "incident" de plongée dans ma vie antérieure de scaphandrier, tu multiplies par 2 mais par contre ce n'est pas la bonne race je pense, sur le moment je n'avais pas demander leurs petits noms !

    Mais il me semble que le material créé automatiquement lorsqu'on charge un objet dans un TModel3D est un TLightMaterial. Il doit donc réagir à la lumière.
    c'est le cas, mais pas toujours j'ai un joli bouddha qui persiste à rester rouge, j'ai beau mettre avoir poser un TLightMaterial émeraude rien n'y fait ! cependant comme j'ai trituré fichier .gsm pour en obtenir un .obj via Spin 3D Mesh Converter il est pas dit qu'il n'y a pas là la cause !

    pour que le requin soit éclairé.
    j'ai testé la modification de quelques paramètres du LightMatérial : ambiance, diffuse, emisive et specular et effectivement la couleur de la bestiole change

    mais je pense qu'il y a une fusion des fichiers ( les 4 fichiers tga normal,diffuse,specular,mask << tiens donc, cela rappelle quelque chose non ? ) à faire quoique je sois incapable de voir quoi !

    Autrement dit, y'a encore du pain sur la planche ! surtout que j'ai d'autre objets (un arbre https://free3d.com/3d-model/tree-for...-v9-16618.html) où je me retrouve avec plein de textures

  5. #5
    Membre Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 547
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 547
    Billets dans le blog
    10
    Par défaut
    EN fait c'est ça que tu veux
    J'essaye de mettre les textures et je t'envoie le tout
    Images attachées Images attachées  

  6. #6
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    alors voici quelques éléments de réponses

    FBX (Autodesk), max (3DS) et obj (Poser) sont trois formats de fichier pour le même modèle, Delphi ne support que les obj si je ne m'abuse qui sont des fichiers textes que j'ai étudié en son temps
    http://tothpaul.free.fr/sources.php?opengl.3do

    le fichier mtl est associé à l'obj pour le matériel.

    reste les textures, c'est bien expliqué et en français ici, le problème c'est que Firemonkey se content des textures de bases et ne sais pas traiter ces textures qui nécessitent un Shader dédié...mais j'ai trouvé un article qui montre comment le faire http://edn.embarcadero.com/article/41874
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  7. #7
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    690
    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 : 690
    Billets dans le blog
    2
    Par défaut
    Bonsoir,

    En partant d'un projet vierge, j'ai placé un TViewport3D puis un TModel3D. J'ai chargé le fichier GreatWhite.obj dans la propriété MeshCollection du TModel3D. Je l'ai orienté d'une certaine façon.
    Ensuite, j'ai converti la texture GreatWhiteDiffuse.tga en GreatWhiteDiffuse.jpg, puis j'ai affecté cette image à la propriété Texture du Model3D1Mat01 (créé automatiquement lors du chargement du fichier .obj). J'ai ensuite placé un TLight de type directional et voici le rendu obtenu :

    Nom : capture.png
Affichages : 730
Taille : 57,5 Ko
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  8. #8
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    690
    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 : 690
    Billets dans le blog
    2
    Par défaut
    Merci Paul pour vos liens très utiles !

    J'avais déjà vu l'exemple du regretté Pawel mais je n'ai pas pris le temps de l'étudier et pourtant le rendu est magnifique ! Il faut que je termine la petite série de tutoriels en préparation avant de m'attaquer plus en détails aux shaders
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 739
    Billets dans le blog
    65
    Par défaut
    Bonjour,
    Merci à vous trois de m'avoir rendu ma tranquillité d'esprit !
    @gbegreg Diffuse la seule "texture" que je n'avais pas essayer ! pour ce qui est de la Lumière : est-elle vraiment utile ? sans il me semble avoir la même chose mais peut être encore des histoire de propriétés et appartenance ....
    Enfin, cela me permet de retourner à mes affaires plus courantes.

    En guise de P.S. pour le bouddha je comprends pas pourquoi je n'ai pas la construction automatique d'un Model3D1Mat01, l'ajout "à la main" d'un TLightmaterial ne fonctionne pas à mon avis il y a des subtilités supplémentaires je vais plonger dans les "écrits" de Pawel et les exemples du Singe de Feu

  10. #10
    Membre Expert
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 547
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 547
    Billets dans le blog
    10
    Par défaut Quel site utilise tu
    Citation Envoyé par gbegreg Voir le message
    ....
    Ensuite, j'ai converti la texture GreatWhiteDiffuse.tga en GreatWhiteDiffuse.jpg
    ...
    Quel site utilise tu pour la conversion ?

  11. #11
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 739
    Billets dans le blog
    65
    Par défaut
    @alain
    Pour la conversion d'un .tga en jpg ou png rien de plus simple, par exemple avec xnview mais il y en a d'autres
    pour la conversion d'un 3ds en obj j'ai utilisé http://www.nchsoftware.com/3dconverter/index.html

    @gregory
    ok, j'ai bien un beau grand blanc comme toi, que je fait évoluer dans une eau (TSphere j'ai retenu la leçon du "futur" tuto) plus vraie qu'une simple couleur, pour l'instant il ne fait que pivoter mais une animation plus sophistiquée devrait lui faire faire une grande ballade. Pour le TLight je bute, existant ou non je vois pas trop de différence, une histoire de propriétés certainement !

    @paul
    Pour les lumières, si je comprends la théorie, j'ai du mal avec l'application


    cela étant je suis aller fouiller dans les .obj et effectivement il y a une différence entre les obj que j'ai pu obtenir directement comme le grand blanc
    on a donc les coordonnée
    vertex (v) ,normal (vn),facets (f) mais au niveau des facets pour le grand blanc pour chaque f il y a un s associé contrairement aux obj que j'ai pu créé avec 3dconverter.

    Bon, l'avantage de fouiller dans ce "fatras" me fait voir la différence entre un TMesh et un TModel3D à défaut d'autre chose,
    pour la 3d j'ai encore un long parcours de lecture

  12. #12
    Membre Expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    690
    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 : 690
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par ALWEBER Voir le message
    Quel site utilise tu pour la conversion ?
    Bonjour,

    J'ai simplement utilisé IrfanView.

    Pour convertir ou faire ses propres objets 3D (pourquoi pas ), il est possible d'utiliser Blender : il sait importer/exporter dans les principaux formats 3D et il est gratuit.

    @SergioMaster
    Le TLight permet d'améliorer le rendu (attention à ce que le material associé à l'objet 3D doit bien un TLightMaterial) surtout au niveau des ombres sur l'objet lui même. Pour t'en rendre compte, sous Delphi en conception tu peux déplacer et orienter différemment le TLight pour voir en temps réel l'influence sur l'objet 3D. A l'exécution, si ton objet tourne (mais que le TLight reste immobile, ou inversement tu fais bouger le TLight et l'objet 3D reste fixe) tu verras l'ombrage sur l'objet.
    Avec le projet FMX Island (objet de la future série de tutoriels à venir sur DVP), on observe ce phénomène d'ombrage sur les montagnes au fil de la journée.

    J'ai eu un problème avec mon Delphi ces derniers jours : il ne démarrait plus depuis la dernière mise à jour de Windows 10. J'ai du le ré-installer. Je vais donc pouvoir me remettre à la rédaction des tutos.
    J'ai également un long parcours à lire aussi sur la 3D mais aussi sur les détections de collisions (c'est l'objet du 4ème épisode de la série de tutoriels et pour l'instant ce n'est pas fonctionnel...)

    @Paul Toth
    Votre exemple a un rendu impressionnant !
    Il y a 10-15 ans, j'avais trouvé le site de Jan Horn (http://www.sulaco.co.za/) qui proposait plein d'exemples (certains avec les sources) avec Delphi et OpenGL. Jan participait entre autre à des compétitions de demomaker. Jan est malheureusement décédé en 2006 mais son site est toujours en ligne. Aujourd'hui encore, je trouve que ses exemples ont un très bon rendu.
    Mon site - Mes tutoriels - GitHub - N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Règles d'utilisation des forums C
    Par Franck.H dans le forum C
    Réponses: 3
    Dernier message: 26/01/2008, 18h35
  2. [CR8.5] Utilisation des codes barre
    Par Robert dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 20/01/2005, 17h13
  3. utilisation des sockets sous windows
    Par Tupac dans le forum Réseau
    Réponses: 2
    Dernier message: 21/12/2002, 19h24
  4. [Crystal Report] Utilisation des vues de sql serveur
    Par Olivierakadev dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 15/11/2002, 18h44
  5. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 17h01

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