Sur cette page

Qt Quick 3D XR

Rendu d'un casque de réalité virtuelle

Introduction

La réalité étendue (XR) est un terme qui englobe la réalité virtuelle (VR), la réalité augmentée (AR) et la réalité mixte (MR). Ces technologies créent des expériences immersives capables de modifier la perception qu’a l’utilisateur du monde qui l’entoure. Le module 3D XR d'Qt Quick fournit des API permettant de développer des applications XR avec la 3D d'Qt Quick sur divers appareils et plateformes.

Différence entre les applications 3D d’ Qt Quick et les applications 3D XR d’ Qt Quick

Le point d’entrée

Du point de vue du développeur, la principale différence entre une application Qt Quick 3D et une application Qt Quick 3D XR réside dans le point d’entrée de la scène ; il est essentiel de prendre en compte les unités du monde réel et les données de suivi.

Dans une application 3D « Qt Quick », une application minimale se composerait d’une caméra, d’une source lumineuse et d’un modèle 3D. Le positionnement et la taille de ces éléments sont définis dans le système de coordonnées de la scène, qui est arbitraire et peut être défini par le développeur en fonction des besoins de l’application.

View3D {
    width: 1280
    height: 720

    PerspectiveCamera {
        position: Qt.vector3d(0, 200, 300)
    }

    DirectionalLight {
    }

    Node {
        id: sceneRoot
        Model {
            id: model
            position: Qt.vector3d(0, -200, 0)
            source: "#Cylinder"
            materials: [ PrincipledMaterial {
                    baseColor: "red"
            }]
        }
    }
}

Dans une application XR, tenez compte des unités du monde réel et des données de suivi lors de la définition de la scène. La position et l’orientation de la caméra sont déterminées par celles de l’appareil ou, dans le cas des casques de réalité virtuelle (HMD), par la position et l’orientation de la tête de l’utilisateur. Les unités de la scène doivent correspondre aux unités du monde réel. Par exemple, vous souhaiterez qu’une porte ou un bureau ait la même taille dans le monde réel que dans le monde virtuel.

Remarque : le point d’entrée d’une application 3D XR d’ Qt Quick n’est pas un ` View3D `, mais le ` XrView`. De plus, un ` XrOrigin ` définit l’origine de la scène, par rapport à laquelle les éléments suivis sont placés.

XrView {
    DirectionalLight {
    }

    xrOrigin: XrOrigin {
        XrController {
            id: rightController
            controller: XrController.ControllerRight
        }
        XrController {
            id: leftController
            controller: XrController.ControllerLeft
        }
    }

    Node {
        id: sceneRoot
        Model {
            id: floor
            source: ":meshes/floor.mesh"
            materials: [ PrincipledMaterial {
                    baseColor: "green"
                }]
        }

        Model {
            id: table
            property real height: 0.7
            position: Qt.vector3d(0, height - 2.5, 0)
            source: ":meshes/table.mesh"
            materials: PrincipledMaterial {
                baseColor: "white"
            }
        }

        Model {
            id: monitor
            source: ":meshes/monitor.mesh"
            y: table.height
            XrItem {
                id: theScreen
                y: monitor.yOffset + height
                x: -width / 2
                width: monitor.width
                height: monitor.height
                contentItem: ScreenContent {}
            }
        }
    }
}

Fonctions CMake supplémentaires

Comme on peut le voir dans le fichier CmakeLists.txt de tous les exemplesQt Quick 3D Xr, vous devez ajouter certaines fonctions au fichier CMakeLists de niveau supérieur de votre projet.

Pour spécifier un fichier « AndroidManifest.xml » personnalisé et vous assurer qu’il soit bien utilisé, ajoutez cette ligne au fichier CMakeLists de votre projet :

if(ANDROID)
    set_property(TARGET xr_simple APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android)
endif()

Pour plus de détails sur la configuration de votre AndroidManifest.xml, consultez la section correspondante de la page « Premiers pas avec Meta Quest 3 ».

Les modifications apportées au fichier CMakeLists.txt s'appliquent également à visionOS, où nous incluons le fichier d'MacOSXBundleInfo.plist.in:

if (APPLE AND CMAKE_SYSTEM_NAME STREQUAL "visionOS")
    set_target_properties(xr_simple PROPERTIES
        MACOSX_BUNDLE_GUI_IDENTIFIER io.qt.xr_simple
        MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/visionos/MacOSXBundleInfo.plist.in
    )
endif()

Et maintenant ?

Consultez les pages « Premiers pas avec Meta Quest 3 » ou « Premiers pas avec Apple Vision Pro » pour plus d’informations sur la manière de démarrer avec votre appareil spécifique. Consultez la page « Plateformes prises en charge » pour plus d’informations sur les plateformes et les appareils pris en charge.

Si vous recherchez une API 3D XR spécifique d’ Qt Quick, consultez la page « API Reference » ou essayez l’un des exemples 3D XR disponibles surQt Quick , qui illustrent comment utiliser les API 3D XR d’ Qt Quick.

© 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.