Qt Quick 3D - XR Exemple simple

Démonstration de la mise en place d'une scène VR simple avec Qt Quick 3D XR.

Scène VR avec le texte Qt 6 en VR et trois cubes colorés

Cet exemple donne un aperçu introductif des fonctionnalités de base de Qt Quick 3D XR.

La principale différence lors de l'écriture d'une application XR est que l'élément racine de notre main.qml est un XrView au lieu d'une fenêtre avec un View3D:

import QtQuick3D
import QtQuick3D.Xr

XrView {
    id: xrView
    XrErrorDialog { id: err }
    onInitializeFailed: (errorString) => err.run("XRView", errorString)
    referenceSpace: XrView.ReferenceSpaceLocalFloor

Le XrView contient la scène 3D, tout comme le View3D. Dans cet exemple, nous ajoutons un XrErrorDialog qui affichera une boîte de dialogue d'erreur si nous rencontrons une erreur d'initialisation du casque VR lors de la diffusion en continu à partir d'un PC de bureau. Nous précisons également que le cadre de référence de cette application est mesuré à partir du sol de la pièce où se trouve l'utilisateur. En d'autres termes, le sol se trouve à l'adresse y = 0.

L'origine du cadre de référence est définie par le site XrOrigin:

    xrOrigin: theOrigin
    XrOrigin {
        id: theOrigin

        XrController {
            controller: XrController.LeftController
            poseSpace: XrController.AimPose
            CubeModel { color: "blue" }
        }

        XrController {
            controller: XrController.RightController
            poseSpace: XrController.AimPose
            CubeModel { color: "red" }
        }
    }

Dans cet exemple, nous ajoutons deux éléments XrController, un pour chaque main. Ils suivront la position et l'orientation des mains de l'utilisateur. Comme XrController est un Node, tout enfant suivra automatiquement les mouvements des mains. Dans ce cas, nous utilisons un modèle simple de cube pour visualiser la position du contrôleur.

Le reste du fichier main.qml est une scène 3D normale Qt Quick.

Exemple de projet @ code.qt.io

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.