Qt Quick 3D - XR Einfaches Beispiel

Demonstriert das Einrichten einer einfachen VR-Szene mit Qt Quick 3D XR.

Dieses Beispiel gibt einen einführenden Überblick über die grundlegenden Qt Quick 3D XR-Funktionen.

Der Hauptunterschied beim Schreiben einer XR-Anwendung ist, dass das Root-Element unserer main.qml ein XrView anstelle eines Fensters mit einem View3D ist:

import QtQuick3D
import QtQuick3D.Xr

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

Das XrView enthält die 3D-Szene, genau wie ein View3D. In diesem Beispiel fügen wir ein XrErrorDialog hinzu, das einen Fehlerdialog anzeigt, wenn beim Streaming von einem Desktop-PC ein Fehler beim Initialisieren des VR-Headsets auftritt. Wir legen auch fest, dass der Referenzrahmen für diese Anwendung vom Boden des Raumes aus gemessen wird, in dem sich der Benutzer befindet. Das heißt, der Boden befindet sich auf y = 0.

Der Ursprung des Bezugssystems wird durch XrOrigin definiert:

    xrOrigin: theOrigin
    XrOrigin {
        id: theOrigin

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

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

In diesem Beispiel fügen wir zwei XrController Elemente hinzu, eines für jede Hand. Sie verfolgen die Position und Ausrichtung der Hände des Benutzers. Da XrController ein Node ist, folgen alle Kinder automatisch den Handbewegungen. In diesem Fall verwenden wir ein einfaches Modell eines Würfels, um die Position des Controllers zu visualisieren.

Der Rest von main.qml ist eine normale Qt Quick 3D Szene.

Beispielprojekt @ code.qt.io

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