Générer le module Qt3D pour Qt 6

Depuis Qt6, le module 3D n’est plus inclus directement dans Qt mais il est disponible sous forme de module, à générer soi même pour l’utiliser.

Un article de KDAB en parle ici : https://www.kdab.com/getting-your-3d-ready-for-qt-6/
et suggère d’utiliser conan, un gestionnaire de paquets installable depuis l’installeur de Qt.

Personnellement, conan m’a causé pas mal de soucis, j’ai donc trouvé un moyen alternatif de générer Qt3D, et nous allons voir comment procéder. Dans ce cas, le compilateur est MSVC 2019 64bits, mais cela doit pouvoir fonctionner de la même manière avec les autres options disponibles avec Qt Creator.

1 – obtenir les sources

Dans un premier temps, si vous ne les avez pas, téléchargez les sources du module Qt3D :

https://github.com/qt/qt3d/releases

Dézippez ensuite vers le dossier de votre choix.

2 – Ouvrir avec Qt Creator

Ouvrez Qt Creator, puis ouvrez le projet en sélectionnant le fichier CMakeLists.txt.

3 – Générer

Une fois le projet ouvert, configurez le projet. Personnellement, j’ai opté pour MSVC 2019 64bit.

Puis choisissez la configuration (Debug ou Release). Avant de générer, pensez à modifier le chemin d’installation du projet. Pour ce faire, aller sur l’onglet projets, et modifiez l’entrée CMAKE_INSTALL_PREFIX, puis refaites un CMake sur le projet.

Enfin, générez le projet. Attention, cela peut prendre un peu de temps.

4 – installation

Afin d’installer le module, lancer Powershell ou l’invite de commande dans le dossier build correspondant puis faites « ninja install »

5 – Copier les fichiers

Maintenant que le module est installé dans le répertoire que vous avez choisi lors de l’étape 3, vous pouvez copier les fichiers directement dans les dossiers de Qt pour pouvoir les utiliser dans Qt Creator. N’oubliez pas de répéter les étapes 3 à 5 pour générer aussi la version Release ou Debug selon celle choisie en premier.

Test

Pour tester le module, il est possible de prendre le code exemple disponible à cette adresse :

https://code.qt.io/cgit/qt/qt3d.git/tree/examples/qt3d/basicshapes-cpp?h=6.0

Voici le résultat