En esta página

Qt Quick 3D Xr

Render del casco de realidad virtual

Introducción

Realidad Extendida (RX) es un término que incluye la Realidad Virtual (RV), la Realidad Aumentada (RA) y la Realidad Mixta (RM). Estas tecnologías crean experiencias inmersivas que pueden alterar la percepción que el usuario tiene del mundo que le rodea. El módulo Qt Quick 3D Xr proporciona APIs para desarrollar aplicaciones XR con Qt Quick 3D a través de una variedad de dispositivos y plataformas.

Diferencia entre las aplicaciones Qt Quick 3D y Qt Quick 3D Xr

El punto de entrada

La principal diferencia entre una aplicación Qt Quick 3D y una Qt Quick 3D Xr, desde la perspectiva de un desarrollador, es el punto de entrada de la escena, por lo que es esencial conocer las unidades del mundo real y los datos de seguimiento.

En Qt Quick 3D, una aplicación mínima constaría de una cámara, una luz y un modelo 3D. La posición y el tamaño de estos elementos se definen en el sistema de coordenadas de la escena, que es arbitrario y puede ser definido por el desarrollador para ajustarse a las necesidades de la aplicación.

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

En una aplicación XR, hay que tener en cuenta las unidades del mundo real y los datos de seguimiento a la hora de definir la escena. La posición y orientación de la cámara vienen definidas por la posición y orientación de la cabeza del usuario en el dispositivo o, en el caso de las pantallas montadas en la cabeza (HMD). Las unidades de la escena deben coincidir con las del mundo real. Por ejemplo, una puerta o un escritorio deben tener el mismo tamaño en el mundo real que en el virtual.

Nota: El punto de entrada en una aplicación Qt Quick 3D Xr no es un View3D sino el XrView. Además, un XrOrigin define el origen de la escena, con respecto al cual se colocan los elementos rastreados.

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

Funciones adicionales de CMake

Como puede verse en el archivo CmakeLists.txt para todos los EjemplosQt Quick 3D Xr, necesita añadir algunas funciones al archivo CMakeLists de nivel superior de su proyecto.

Para especificar un AndroidManifest.xml personalizado y asegurarse de que se utiliza añadiendo esta línea al archivo CMakeLists de tu proyecto:

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

Para más detalles sobre la configuración de su AndroidManifest.xml, consulte la sección correspondiente de la página de Introducción a Meta Quest 3.

Los cambios en CMakeLists.txt también se aplican a visionOS, donde incluimos el archivo 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()

¿Qué hacer a partir de ahora?

Echa un vistazo a Introducción a Meta Quest 3 o Introducción a Apple Vision Pro para obtener más información sobre cómo empezar con tu dispositivo específico. Consulta la página de Plataformas So portadas para más información sobre plataformas y dispositivos soportados.

Qt Quick Si está buscando una API 3D Xr específica, eche un vistazo a API Reference, o pruebe uno de los Qt Quick 3D Xr Examples, que demuestran cómo se pueden utilizar las APIs Qt Quick 3D Xr.

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