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

Qt Discussion :

[Qt 3D] Questions générales [2D/3D]


Sujet :

Qt

  1. #1
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Points : 662
    Points
    662
    Par défaut [Qt 3D] Questions générales
    Bonjour,

    alors voilà... j'ai une application à refaire complètement comportant une fenêtre principale avec différents onglets et fonctionnant dans un environnement "tactile". L'idée serait de passer cette application à Qt5.x (dont j'ai une expérience de bidouille de quelques années pour mes petits projets).

    Pour ce qui est de faire une fenêtre (QMainWindow) avec des onglets, contenant des boutons, des champs etc... pas de soucis je sais très bien que Qt fonctionnera à merveille... Pour ce qui est du "Touch Screen" (multi-touch certainement), je ne sais pas trop encore comment cela fonctionne... à priori faut déclarer pour chaque Widgets qu'ils doivent accepter les événements "tactile" et après gérer soit-même les événements en redéfinissant la méthode QWidget::event() ou quelque chose dans ce goût... si vous avez même si c'est pas vraiment le cœur de ma question, des choses à dire sur ça... cela m'intéresse

    Ma vraie question :

    Dans deux de mes onglets, j'aurais besoin de créer un contexte OpenGL pour afficher des modèles à partir de fichier STL, éventuellement du picking, un éclairage classique (en gros un truc de visualisation style CAO) ; dans un premier temps je me suis tourné vers QOpenGLWidget (avec le florilège de classe autour => QOpenGLBuffer, QOpenGLShader, QOpenGLShaderProgram, QOpenGLVertexArrayObject, etc.

    Mais je suis tombé très récemment sur ce fameux module Qt3D (que je trouve encore très mal documenté) avec qui je vois qu'il est possible d'avoir un tas de choses très intéressantes comme des types de caméra, d'éclairage, du picking, quelques modèles comme tores, cube, plan, etc. et apparemment Assimp d'intégré mais franchement j'ai pas compris si c'était vraiment le cas (https://doc.qt.io/qt-5/qt3drender-assimpio.html)...

    Mes interrogations sont :
    • est-ce qu'il est judicieux de passer à Qt3D plutôt que de tout se palucher à l'aide de l'OpenGL pur pour un besoin de visualisation de modèle 3D (avec une animation parfois du modèle complet comme une simulation d'une machine en train de fabriquer un objet) ?!
    • est-ce pas trop anticipé d'utiliser ce module encore assez jeune pour un soft professionnel ?!
    • est-ce facilement intégrable proprement dans un contexte de Widget ? (j'ai entrevue qu'il fallait passer par un QWidget::createWindowContainer(...) car si je dis pas de bêtise le rendu de Qt3D se fait dans un Qt3DExtras::Qt3DWindow d'ailleurs pourquoi cela est un Qt3DExtras comme si cela n'était pas important... où alors il y a un autre moyen d'avoir un contexte OpenGL à l'aide de Qt3D) ?!


    Voilà pour mes questions, merci d'avance

    Si vous avez des ressources, comme des projets sur Github de personne qui utilise de manière plus poussé ce module que les exemples => chargement de modèle, création de ses propres Entities, du picking sur les différents modèles etc.. je serais extrêmement preneur car je trouve les exemples vraiment peu nombreux et la documentation vraiment light par rapport au reste de l'API que je connais correctement.

    PS : je fais uniquement en C++, je ne veux pas vraiment utiliser la partie Qml (QtQuick qui permet aussi de faire du Qt3D) car je ne comprends vraiment le concept et il faut en plus se mettre au javascript...

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 902
    Points : 219 982
    Points
    219 982
    Billets dans le blog
    126
    Par défaut
    Bonjour,

    En tant qu'amateur et intéressé, c'est le manque de documentation qui m'a rebuté.
    Dans un projet pro, je serai craintif d'utiliser Qt3D. C'est trop jeune, ça bouge encore beaucoup et il me semble que ce n'est pas encore "stable" (c'est la raison que l'on trouve des composants dans extras ?).
    Après, il me semble que vous n'ayez besoin que de trucs basiques, du coup, Qt3D c'est un peu trop avancé, non ?

  3. #3
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 676
    Points : 188 686
    Points
    188 686
    Par défaut


    Effectivement, Qt 3D est très jeune. Le pire, c'est que tu peux facilement tomber sur des exemples qui ne fonctionnent tout simplement pas sur le Web (des composants qui n'existent plus et ont changé de nom). Et la doc Qt Quick est exécrable (juste des liens vers des classes C++), celle en C++ a au moins le mérite d'exister.

    Pour l'intégration dans une application C++ existante, tu peux utiliser Qt 3D directement en C++, pas besoin de QML.

    Qt3DWindow n'est pas nécessaire : ça correspond à une fenêtre Qt 3D, ça définit directement une série de choses (comme la source des événements), mais on peut s'en passer (on doit pour s'intégrer dans une application existante).

    De mon côté, il m'a fallu quelques jours de recherche avant d'arriver à faire quelque chose avec Qt 3D (uniquement avec Qt Quick, je n'ai pas pigé grand-chose en C++), mais il y a moyen…

    Sinon, Qt 3D est arrivé en version finale, donc les développements existants continueront à fonctionner — avec évidemment de nouvelles fonctionnalités.

  4. #4
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Points : 662
    Points
    662
    Par défaut
    D'accord !!!

    Du coup, j'aimerais quand même trouver un truc (moteur 3D ?) qui me permet de faire de l'OpenGL récent mais sans passer mon temps à coder correctement une caméra, des lights etc.
    Peut être me tourner sur un libQGLViewer ?! si cela est viable dans un produit industriel avec un écran tactile -- au moins je sais que cette librairie s'intègre parfaitement dans Qt

    Parce que je pense que le choix de passer à Qt pour l'application (pour remplacer du WxWidget et Fox Toolkit -> http://www.fox-toolkit.org/, on m'a dit que c'était mort mais j'ai pas l'impression que c'est abandonné finalement) est un excellent choix mais pour la partie 3D, je reste encore en suspend -> vous avez vue que j'ai finalement pas forcement besoin de beaucoup (OrbitalCamera, Picking, Eclairage simple, certainement besoin de la détection de collision... et de la performance des versions récentes d'OpenGL (VAO, VBO, etc...) et voilà...).

    Si vous avez un avis sur votre expérience par rapport à mes besoins, ça serait avec plaisir

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 902
    Points : 219 982
    Points
    219 982
    Billets dans le blog
    126
    Par défaut
    Pour les fonctionnalités que vous souhaitez, passer par du OpenGL brut ne me semble pas non plus incongru. Après, il y a les classiques Ogre, OpenSceneGraph, Irrlicht, mais ces réponses datent... (il y a peut être un peu mieux depuis).

  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 676
    Points : 188 686
    Points
    188 686
    Par défaut
    Citation Envoyé par AuraHxC Voir le message
    vous avez vue que j'ai finalement pas forcement besoin de beaucoup (OrbitalCamera, Picking, Eclairage simple, certainement besoin de la détection de collision... et de la performance des versions récentes d'OpenGL (VAO, VBO, etc...) et voilà...).
    Vu tes besoins, ça doit être possible d'atteindre ce niveau de compétence avec Qt 3D en deux-trois jours. Par contre, effectivement, si tu connais déjà OpenGL, Qt 3D représente un risque non négligeable pour le moment.

  7. #7
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Points : 662
    Points
    662
    Par défaut
    Effectivement j'ai des notions en OpenGL, je suis capable d'utiliser "simplement" de l'OpenGL Moderne. Après, il faudrait que je regarde des projets OpenSource (si vous avez des pistes, ça peut m'intéresser) pour avoir des fonctionnalités "stables" de caméra type Orbital, Eclairage simple et Picking car je pourrais le faire mais je préfère toujours prendre une implémentation éprouvée que de refaire de A à Z avec potentiellement faire des bêtises...

    Pour ce qui est de Qt3D, je préfère ne pas encore me lancer dedans même si j'ai déjà produit un code qui marchouille pas trop mal mais je pense que c'est encore trop récent, on ne sait jamais

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

Discussions similaires

  1. [LDAP] Questions générales sur LDAP
    Par guiguisi dans le forum Autres SGBD
    Réponses: 5
    Dernier message: 25/05/2005, 10h05
  2. VUES : questions générales
    Par Equus dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 01/10/2004, 10h37
  3. question générale sur les conteneurs
    Par tut dans le forum C++
    Réponses: 6
    Dernier message: 01/09/2004, 10h11
  4. Question générale sur les affectations ?
    Par Clemaster dans le forum C++
    Réponses: 5
    Dernier message: 09/08/2004, 17h03
  5. [SGBD]Questions générales.
    Par Mobaladje dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 21/05/2004, 19h19

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