Qt 5.5 inclut une première préversion technologique du module Qt 3D, un framework de haut niveau qui facilite l’ajout de contenu 3D dans des applications Qt, écrites tant en QML qu’en C++. Son statut actuel montre que le module n’est pas encore mature : son API peut continuer à évoluer, plus de fonctionnalités seront ajoutées avant la première version stable.
Qt 3D fournit un grand nombre de fonctionnalités nécessaires pour le rendu 3D actuel, tout en profitant de la performance d’OpenGL sur toutes les plateformes (sauf iOS pour le moment, qui devrait être prochainement disponible). Ce module propose également de modifier l’apparence des objets affichés à l’écran, soit en utilisant des matériaux prédéfinis, soit en créant ses propres shaders. De plus, il donne un contrôle sur le rendu de la scène 3D à l’aide d’une description orientée données. Il est donc possible de créer rapidement des prototypes d’algorithmes de rendu. L’intégration à Qt Quick 2 se fait par le composant Scene3D.
Cette première préversion contient d’ores et déjà un grand nombre de fonctionnalités :
- un système à entités flexible et extensible, prévu pour le parallélisme ;
- le chargement de géométries, en utilisant le module d’import OBJ ou assimp s’il est disponible ;
- un système de passes de rendu pour les matériaux et les effets pour adapter l’apparence aux besoins ;
- une configuration par les données : il est possible de changer la manière dont le rendu est effectué sans toucher à une ligne de C++ ;
- un grand nombre de techniques de rendu déjà implémentées : rendu non différé, avec une profondeur, un affichage différé ou d’objets transparents, etc. ;
- une compatibilité avec tous les types de shaders (sauf les compute shaders) ;
- une compatibilité avec les UBO (uniform buffer objects) s’ils sont disponibles ;
- des fonctions simples pour les primitives géométriques de base et les matériaux ;
- un contrôle de la caméra par la souris ;
- une intégration aisée dans des interfaces Qt Quick 2.
Au-delà du rendu, Qt 3D fournit également un environnement propice à l’ajout de nouvelles fonctionnalités, comme les simulations physiques, l’animation de squelettes, l’audio 3D, le rendu stéréoscopique, l’intelligence artificielle ou d’autres mécanismes d’entrée.
L’article Aperçu de Qt 3D 2.0 donne plus de détails sur l’organisation et les possibilités de Qt 3D.
Source : Qt3D 2.0 Technology Preview.