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...
Partager