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