Newsletter Developpez.com

Inscrivez-vous gratuitement au Club pour recevoir
la newsletter hebdomadaire des développeurs et IT pro

Qt Quick et la 3D
Une vidéo démontre ses époustouflantes capacités en 3D, la réalité est-elle aussi rose ?

Le , par yan, Rédacteur
Avec la sortie imminente de QML et de Qt 4.7, il serait peut-être temps de dévoiler les dernières avancées de nos travaux pour le support de ce nouveau paradigme de conception dans Qt dans la contrée si spéciale du graphisme.

En novembre 2009 était présenté Qt/3D, un set d'outils pour faciliter le développement de graphismes 3D dans des applications Qt. La plupart de ses fonctionnalités sont déjà intégrées dans Qt, de nouvelles sont prévues au vu de l'engouement général pour ce framework. À cette époque, QML/3D était déjà vu comme la prochaine étape logique du développement d'applications 3D. Depuis lors, un prototype avancé et fonctionnel est disponible.

Il faut remarquer que ce framework est loin d'être un framework de développement applicatif bien huilé, même s'il prouve que du contenu 3D peut être facilement intégré à des applications et que même le plus novice des développeurs peut intégrer la 3D dans son application, toute la partie plus technique est gérée par Qt/3D.

[ame]http://www.youtube.com/watch?v=OXcxFZbKUNI[/ame]

Un peu plus d'info : http://labs.trolltech.com/blogs/2010/08/10/qml3d-demo/

Extrait de la discussion Qt Quick : le futur du développement d'IHM (anciennement Declarative UI).


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de yan yan - Rédacteur https://www.developpez.com
le 11/08/2010 à 9:38
Citation Envoyé par kwent78  Voir le message
Punaise, ils font vraiment fort là ...

Je trouve que cela montre la maturité précoce de QML. Ça donne envie!!
En tous cas ils ont du bien tripper pour faire cette vidéo
Avatar de yan yan - Rédacteur https://www.developpez.com
le 11/08/2010 à 9:45
Citation Envoyé par TanEk  Voir le message
est-ce que c'est assez rapide pour faire tourner de complexes applications?

qml est juste un pseudo language qui permet d'instancier les classe Qt + du script à base de javascript(normalement optimisé par le moteur du webkit). Rien n'empêche de ne faire que la partie IHM en QML(qui est le but en faite) avec du code métier. Donc je dirais oui on peut faire des appli complexe. Si tu regardes les diverses vidéos, il y a quelques exemples assez intéressants.

est-ce que ça scale (genre y'a pas un algo non lineaire qui traine la-dedans)?

C'est à dire? tu parles du module 3D ?

ou sont les outils de profiling and debugging?

Profiling, propre à qml je ne sais pas. Sinon c'est du profiling C++.
Debugging : C'est proposé avec QtCreator
Avatar de _skip _skip - Expert éminent https://www.developpez.com
le 11/08/2010 à 11:41
Je vois totalement l'intérêt de l'UI declarative, en revanche il serait bien qu'il soit possible de faire la partie métier (event et autre) côté C++. A priori c'est le but mais je n'ai pas encore vu d'exemple concret de comment la *glue* se fait.

Une bonne approche serait de pouvoir designer une fenêtre, puis de pouvoir récupérer des pointeurs sur les widgets déclarés par leur nom ou leur ID. De là on pourrait leur associer leur slot et le code métier.
Ca donnerait une superbe ouverture pour adapter les écrans au client final sans avoir à recompiler. Et même en standard, avoir différents jeux d'UI pour une fonctionnalité, par exemple la version simplifiée et la version exhaustive d'un même écran.

Ca ce serait fantastique, mais je ne suis pas encore sûr que quick aille réellement dans ce sens.
Avatar de gbdivers gbdivers - Inactif https://www.developpez.com
le 11/08/2010 à 12:50
Les développeurs de Qt ont bien fait les choses ; il est possible de choisir l'approche que l'on souhaite :
- une application entièrement en QML (le QML est relativement complet et intèrgre par exemple la communication réseau et l'accès aux bases de données)
- une application en C++ qui utilise une interface QML, par exemple en affichant l'UI QML dans une QDeclarativeView (voir http://qt.developpez.com/doc/4.7-snapshot/qtbinding/l)
- une application QML qui utilise des objets C++, par exemple des objets métier (voir http://qt.developpez.com/doc/4.7-sna...tutorial-index)

Et comme la communication entre le C++ et le QML est complète, on peut faire ce que l'on veut en terme d'UI (les possibilités du QML ne sont limités que par Qt et le C++... donc pas très limitées )
Avatar de _skip _skip - Expert éminent https://www.developpez.com
le 11/08/2010 à 14:13
J'ai jeté un oeil aux exemples, je dois dire que je suis moyennement convaincu. Certains me donnent vraiment l'impression d'être des méli-mélos script/C++ assez moches.
Le genre qui pourrait vite devenir du code spaghetti totalement intestable, avec l'UI qui s'adapte après notification à des changements induits par le code c++ et vice versa.

A mon avis, ce framework QML devra être utilisé avec beaucoup de prudence si on veut une séparation claire entre l'affichage et le code métier.
Wait and see...
Avatar de yan yan - Rédacteur https://www.developpez.com
le 11/08/2010 à 16:09
QML est un langage de script. Il est interprété et non compilé. Il n'a rien à voir avec les spécificités du C++.

Comme je le comprends, QML est développé pour la création d'ihm nouvelle génération. Le fait de pouvoir faire du code métier sous forme de javascript est plus une démonstration de ses capacités ou pour la création de plugin.

Tu peux voir QML comme un langage de script qui va interfacer ton code métier. C'est une forme plus aboutie de l'utilisation de Html/css/javascript pour créé une ihm et manipulant du code métier par introspection au travers du JS.

Le gros intérêt que je vois est la possibilité
  • de laisser le développement d'un ihm à des graphistes pendant le développement du coeur par les développeur. Et donc d'avoir une séparation forte.
  • de la modifier(ou patcher) rapidement pendant une réunion (exemple de la dernière démo). Ça peut donner une base de discussions très interactive.
  • de maquetter très rapidement 'une ihm avec des proposition d'ergonomie.


Je dis pas que QML est magique , mais que je trouve l'idée très prometteur.
Avatar de betsprite betsprite - Membre averti https://www.developpez.com
le 11/08/2010 à 16:46
Les démos proposées sont assez impressionnantes !

Je me pose cependant une petite question :

Tu peux voir QML comme un langage de script qui va interfacer ton code métier

* Il sera donc envisageable d'utiliser QML avec des interfaces Qt déjà conçu grâce notamment au module QtGui ou la flexibilité offerte de ces interfaces du futur implique-t-elle un changement important des interfaces préconçues ?
Avatar de yan yan - Rédacteur https://www.developpez.com
le 11/08/2010 à 17:17
Citation Envoyé par betsprite  Voir le message
* Il sera donc envisageable d'utiliser QML avec des interfaces Qt déjà conçu grâce notamment au module QtGui

Oui. C'est une nouvelle méthode complémentaire. Donc rien n'empêchera de les mixer.

Citation Envoyé par betsprite  Voir le message
ou la flexibilité offerte de ces interfaces du futur implique-t-elle un changement important des interfaces préconçues ?

Je dirais oui et non. tous dépend de ce que tu veux faire. Je remets deux vidéo qui pourraient t'intéresser :
Avatar de chriseveinthow chriseveinthow - Membre à l'essai https://www.developpez.com
le 12/08/2010 à 9:24
Pour info, ça va faire 6 mois que je fais de la R&D sur Qml et je dois dire que c'est assez impressionnant au niveau de la rapidité de développement et aussi de la fluidité du rendu final.
Il y a encore beaucoup de défauts mais globalement ça va dans le bon sens.
Les extensions en C++ sont relativement simple à réaliser, même si ce n'est pas encore parfait...
La 3D apporte une nouvelle couche non négligeable.

Ceci dit, de là à dire que les graphistes pourront eux-même développer.... je n'en doute pas, mais d'un point vue architecture.... je préfère les laisser à leurs Photoshop...

Maintenant je me demande parfois si une QWebView avec un bon support HTML5 n'irait pas plus dans le sens actuel de l'évolution de l'IHM, à savoir un monde entièrement connecté ou l'on va vers un langage d'interface unique le HTML5... Donc oui le QML c'est super mais est-ce qu'a terme il ne deviendra pas inutile... ou alors devra-t-on voir un jour l'apparition d'un QMLPlayer dans les navigateurs (on pourrait même déjà le faire...)

Il y a un autre avantage, c'est que pour tout ceux qui comme moi détestent le powerpoint, et qui faisait leur présentation avec un peu de flash, il peuvent les faire en QML, et quand on a l'habitude c'est vraiment rapide et les effets sont plus fluides et sympas....
Avatar de yan yan - Rédacteur https://www.developpez.com
le 12/08/2010 à 10:25
Citation Envoyé par chriseveinthow  Voir le message
Ceci dit, de là à dire que les graphistes pourront eux-même développer.... je n'en doute pas, mais d'un point vue architecture.... je préfère les laisser à leurs Photoshop...

Il faut des graphistes un peu developpeur

Maintenant je me demande parfois si une QWebView avec un bon support HTML5 n'irai pas plus dans le sens actuel de l'évolution de l'IHM, à savoir un monde entièrement connecté ou l'on va vers un langage d'interface unique le HTML5...

C'est pas faux. Sur mobile on voit de plus en plus de frameworks qui proposent de faire ton appli en html/css/JS et qui embarquent le tout dans une application. Même en Qt on en entend parler par-ci par-là.

Donc oui le QML c'est super mais est-ce qu'a terme il ne deviendra pas inutile... ou alors devra-t-on voir un jour l'apparition d'un QMLPlayer dans les navigateurs(on pourrai même déjà le faire...)

Je pense que c'est un avenir similaire à xaml et co. Difficile à dire, mais pour moi je dirais que oui. La solution html oblige d'utiliser un moteur comme webkit et donc d'ajouter encore un module d'utiliser plus de ressources,.... Alors que qml utilisera les modules de base. Pour un téléphone c'est pas forcement négligeable.
Sans compter que le jour ou tous les moteur de rendu seront full html5 et compatible est plutôt dans un futur incertain, non?

Il y a un autre avantage, c'est que pour tout ceux qui comme moi détestent le powerpoint, et qui faisait leur présentation avec un peu de flash, il peuvent les faire en QML, et quand on a l'habitude c'est vraiment rapide et les effets sont plus fluides et sympas....

Tu aurais une petite démo de ça pour montrer ce que cela donne?
Avatar de chriseveinthow chriseveinthow - Membre à l'essai https://www.developpez.com
le 12/08/2010 à 14:35
Dslé, je n'ai rien que je puisse te publier.

Mais en projet de publication d'ici quelques temps, une table tactile full QML... mais je rencontre encore quelques limites au niveau du QML pour aboutir le projet, mais globalement, c'est un genre de bureau QML qui gère d'autres appli QML. Rien d'extraordinaire... juste des soucis pour la gestion multitouch..

J'ai également un jeu simple ou j'ai recréé l'interface de "tout le monde veut prendre sa place" pour une soirée. Pour cette dernière j'ai passé une aprem pour faire l'appli et 1 semaine pour faire marcher le son dans QML... quand on dit que c'est pas au point... enfin bon ça marchait tellement pas que j'ai fait un plugin qui lance un player en ligne de commande....sisi on peut faire vraiment des truc debiles avec QML

Dans mon cas je n'utilise pas QML comme un simple langage d'interface mais pour réaliser l'ensemble de l'application. Je créé juste un lanceur en C++ et c'est tout.
Offres d'emploi IT
Ingénieur H/F
Safran - Ile de France - Moissy-Cramayel (77550)
Ingénieur développement fpga (traitement vidéo) H/F
Safran - Ile de France - 100 rue de Paris 91300 MASSY
Architecte et intégrateur scade/simulink H/F
Safran - Ile de France - Vélizy-Villacoublay (78140)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique Qt : Thibaut Cuvelier -