Qt Quick 3D Xr

Einführung

Extended Reality (XR) ist ein Begriff, der Virtual Reality (VR), Augmented Reality (AR) und Mixed Reality (MR) umfasst. Diese Technologien schaffen immersive Erlebnisse, die die Wahrnehmung der Umwelt durch den Benutzer verändern können. Das Qt Quick 3D Xr-Modul bietet APIs für die Entwicklung von XR-Anwendungen mit Qt Quick 3D für eine Vielzahl von Geräten und Plattformen.

Unterschied zwischen Qt Quick 3D und Qt Quick 3D Xr-Anwendungen

Der Einstiegspunkt

Der Hauptunterschied zwischen einer Qt Quick 3D und einer Qt Quick 3D Xr-Anwendung ist aus der Sicht eines Entwicklers der Einstiegspunkt in die Szene, und die Kenntnis der realen Einheiten und Tracking-Daten ist entscheidend.

In Qt Quick 3D besteht eine minimale Anwendung aus einer Kamera, einem Licht und einem 3D-Modell. Die Positionierung und Größe dieser Elemente wird im Koordinatensystem der Szene definiert, das beliebig ist und vom Entwickler so definiert werden kann, dass es den Anforderungen der Anwendung entspricht.

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"
            }]
        }
    }
}

In einer XR-Anwendung sollten Sie bei der Definition der Szene reale Einheiten und Tracking-Daten berücksichtigen. Die Position und Ausrichtung der Kamera wird durch die Position und Ausrichtung des Geräts bzw. bei Head-Mounted-Displays (HMD) durch die Position und Ausrichtung des Kopfes des Benutzers bestimmt. Die Einheiten der Szene sollten mit den realen Einheiten übereinstimmen. Zum Beispiel sollte eine Tür oder ein Schreibtisch in der realen Welt die gleiche Größe haben wie in der virtuellen Welt.

Hinweis: Der Einstiegspunkt in einer Qt Quick 3D Xr-Anwendung ist nicht View3D, sondern XrView. Darüber hinaus definiert XrOrigin den Ursprung der Szene, auf den die verfolgten Elemente relativ zueinander platziert werden.

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 {}
            }
        }
    }
}

Zusätzliche CMake-Funktionen

Wie in der CmakeLists.txt Datei für alle Qt Quick 3D Xr Beispiele zu sehen ist, müssen Sie einige Funktionen zur CMakeLists Datei auf oberster Ebene Ihres Projekts hinzufügen.

Um eine benutzerdefinierte AndroidManifest.xml zu spezifizieren und sicherzustellen, dass sie verwendet wird, fügen Sie diese Zeile zur CMakeLists-Datei Ihres Projekts hinzu:

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

Weitere Details zum Einrichten Ihrer AndroidManifest.xml finden Sie im entsprechenden Abschnitt auf der Seite Erste Schritte mit Meta Quest 3.

Die Änderungen in CMakeLists.txt gelten auch für visionOS, wo wir die Datei MacOSXBundleInfo.plist.in einbinden:

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()

Wie geht es jetzt weiter?

Werfen Sie einen Blick auf Getting Started With Meta Quest 3 oder Getting Started With Apple Vision Pro, um weitere Informationen zu erhalten, wie Sie mit Ihrem spezifischen Gerät beginnen können. Auf der Seite Unterstützte Plattformen finden Sie weitere Informationen zu den unterstützten Plattformen und Geräten.

Wenn Sie nach einer bestimmten Qt Quick 3D Xr API suchen, werfen Sie einen Blick auf API Reference, oder probieren Sie eines der Qt Quick 3D Xr Beispiele aus, die zeigen, wie die Qt Quick 3D Xr APIs verwendet werden können.

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