En esta página

Qt Quick Requisitos gráficos 3D

API de gráficos, versiones y lenguajes de sombreado compatibles

Qt Quick 3D admite el funcionamiento con todas las API de gráficos y lenguajes de sombreado compatibles con Qt Quick en Qt 6.0. En algunos casos, con OpenGL y OpenGL ES en particular, el requisito de versión puede ser mayor para Qt Quick 3D que para Qt Quick.

  • OpenGL 3.0 o superior; se recomienda encarecidamente OpenGL 3.3 o superior.
  • OpenGLES 2.0 o superior; se recomienda encarecidamente OpenGL ES 3.0 o superior.
  • Direct3D 11.1
  • Direct3D 12
  • Vulkan 1.0 o superior
  • Metal 1.2 o superior

El canal de sombreado se basa en el enfoque estándar de Qt 6: el código de sombreado GLSL compatible con Vulkan se compila en SPIR-V, que luego se traduce a código fuente GLSL, HLSL y MSL. Para más detalles, consulte la documentación del módulo Qt Shader Tools.

Qt Quick 3D no trabaja directamente con ninguna de las APIs gráficas mencionadas anteriormente. En su lugar, utiliza las abstracciones de Qt Rendering Hardware Interface, de forma similar a Qt Quick.

Elección de la API gráfica

Dado que Qt Quick 3D no inicializa el renderizado o una ventana por sí mismo, sino que depende de QQuickWindow o QQuickView o del tipo QML Window, todo lo relacionado con la selección de la API gráfica que se aplica a Qt Quick Scene Graph se aplica también a Qt Quick 3D. Es posible controlar el comportamiento del gráfico de escena configurando variables de entorno específicas, como se indica a continuación:

Variable de entornoValores posiblesDescripción
QSG_RHI_BACKENDvulkan, metal, opengl, d3d11, d3d12Solicita el backend RHI específico. Por defecto, la API de gráficos elegida se basa en la plataforma, a menos que sea reemplazada por esta variable o las APIs C++ equivalentes. Los valores por defecto son actualmente Direct3D 11 para Windows, Metal para macOS, OpenGL en otros lugares.
QSG_RHI_DEBUG_LAYER1En su caso (Vulkan, Direct3D), habilita las capas de depuración y/o validación de la implementación de la API gráfica, si están disponibles.
QSG_INFO1Al igual que con la ruta de renderizado basada en OpenGL, esta opción permite imprimir información del sistema al inicializar el gráfico de escena Qt Quick. Esto puede ser muy útil para la resolución de problemas.

Las aplicaciones que deseen ejecutarse siempre con una única API gráfica determinada pueden solicitarlo a través de la variable de enivronment QSG_RHI_BACKEND, así como con C++. Por ejemplo, la siguiente llamada realizada al principio de main(), antes de construir cualquier QQuickWindow, fuerza el uso de Vulkan (y fallará en caso contrario).

QQuickWindow::setGraphicsApi(QSGRendererInterface::Vulkan);

Nota: La adaptación por software de Qt Quick no es compatible con contenidos 3D.

Particularidades de OpenGL

Se espera que las aplicaciones 3D Qt Quick bien escritas llamen a QQuick3D::idealSurfaceFormat() en su función main(), y utilicen la devuelta QSurfaceFormat como predeterminada:

QSurfaceFormat::setDefaultFormat(QQuick3D::idealSurfaceFormat());

Esta llamada no tiene ningún efecto cuando se utiliza una API de gráficos distinta de OpenGL, pero es muy beneficiosa cuando la API es OpenGL, ya que permitirá crear un contexto OpenGL que se adapte mejor a las necesidades de Qt Quick 3D.

Compatibilidad con OpenGL ES 2.0

Qt Quick 3D admite la ejecución en OpenGL ES 2.0, pero con un conjunto de características significativamente limitado. La siguiente lista contiene algunas de las características que no estarán disponibles o no funcionarán:

  • Iluminación basada en imágenes, sondas de luz, skybox
  • Mapeado de sombras
  • Oclusión ambiental en el espacio de la pantalla
  • Muestreo múltiple
  • Algunos efectos de postprocesado
  • Materiales personalizados que utilizan shaders basados en características de GLSL no presentes en GLSL ES 100
  • Transparencia independiente del orden

Nota: Qt Quick 3D requiere OpenGL ES 3.0 / WebGL 2 en la plataforma WebAssembly. OpenGL ES 2.0 / WebGL 1 no es compatible.

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