Retour sur une nouveauté de Qt 3D avec Qt 5.10 :
les animations à base d'atlas de textures

Qt 3D continue à faire des progrès avec Qt 5.10. Notamment, le moteur 3D pour Qt peut maintenant charger des atlas de textures (sprite sheets), avec les classes QSpriteGrid et QSpriteSheet (et les composants QML correspondants, SpriteGrid et SpriteSheet). Ces atlas peuvent être utilisés pour générer des animations assez simples, sur le principe des folioscopes : on passe différentes images d’un même objet. Si ces images défilent assez vite, l’animation semble fluide.


En 3D, les objets affichés utilisent des textures, qui ne sont que des images. Pour afficher des animations sur ces objets, on peut donc utiliser le même principe. Cependant, pour éviter de surcharger le processeur graphique (changer un objet de texture est très coûteux), on rassemble toutes les images en une même “texture” chargée en mémoire, dont on n’affiche que certaines portions.


Pour Qt 3D, un atlas de textures est constitué d’une très grande texture, d’une liste de zones dans cette image, d’un index pour l’image courante et d’une matrice de transformation mise à jour chaque fois que l’index change.

https://www.kdab.com/wp-content/uplo...dexplosion.mp4

Source : New in Qt 5.10: Texture Based Animations in Qt 3D.