Qt Quick 3D - XR Ejemplo simple

Demuestra la configuración de una simple escena VR con Qt Quick 3D XR.

Escena VR con texto Qt 6 en VR y tres cubos de colores

Este ejemplo da una visión introductoria de las características básicas de Qt Quick 3D Xr.

La principal diferencia al escribir una aplicación XR es que el elemento raíz de nuestro main.qml es un XrView en lugar de una Ventana con un View3D:

import QtQuick3D
import QtQuick3D.Xr

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

El XrView contiene la escena 3D, igual que un View3D. En este ejemplo añadimos un XrErrorDialog que mostrará un diálogo de error si obtenemos un error inicializando el casco de RV cuando se transmite desde un PC de sobremesa. También especificamos que el marco de referencia para esta aplicación se mide desde el suelo de la habitación donde se encuentra el usuario. Es decir, el suelo estará en y = 0.

El origen del marco de referencia se define en XrOrigin:

    xrOrigin: theOrigin
    XrOrigin {
        id: theOrigin

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

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

En este ejemplo añadimos dos elementos XrController, uno para cada mano. Seguirán la posición y orientación de las manos del usuario. Dado que XrController es un Node, cualquier hijo seguirá automáticamente los movimientos de las manos. En este caso, utilizamos un modelo simple de un cubo para visualizar la posición del controlador.

El resto de main.qml es una escena 3D normal de Qt Quick.

Proyecto de ejemplo @ code.qt.io

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