En esta página

Qt3DRender::QTechnique Class

class Qt3DRender::QTechnique

Encapsula una técnica. Más...

Cabecera: #include <QTechnique>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
En QML: Technique
Hereda: Qt3DCore::QNode
Status: Obsoleto

Propiedades

Funciones públicas

void addFilterKey(Qt3DRender::QFilterKey *filterKey)
void addParameter(Qt3DRender::QParameter *parameter)
void addRenderPass(Qt3DRender::QRenderPass *pass)
QList<Qt3DRender::QFilterKey *> filterKeys() const
Qt3DRender::QGraphicsApiFilter *graphicsApiFilter()
const Qt3DRender::QGraphicsApiFilter *graphicsApiFilter() const
QList<Qt3DRender::QParameter *> parameters() const
void removeFilterKey(Qt3DRender::QFilterKey *filterKey)
void removeParameter(Qt3DRender::QParameter *parameter)
void removeRenderPass(Qt3DRender::QRenderPass *pass)
QList<Qt3DRender::QRenderPass *> renderPasses() const

Descripción detallada

Un Qt3DRender::QTechnique especifica un conjunto de objetos Qt3DRender::QRenderPass, objetos Qt3DRender::QFilterKey, objetos Qt3DRender::QParameter y un Qt3DRender::QGraphicsApiFilter, que juntos definen una técnica de renderizado que la API gráfica dada puede renderizar. Las claves de filtro son utilizadas por Qt3DRender::QTechniqueFilter para seleccionar técnicas específicas en partes concretas del FrameGraph. Un QParameter definido en un QTechnique anula los parámetros (del mismo nombre) definidos en QRenderPass, pero son anulados por parámetros en QRenderPassFilter, QTechniqueFilter, QMaterial y QEffect.

Cuando se crea un QEffect que apunta a varias versiones de una API de gráficos, es útil crear varios nodos QTechnique cada uno con un graphicsApiFilter configurado para que coincida con una de las versiones GL objetivo. En tiempo de ejecución, el renderizador Qt3D seleccionará la QTechnique más apropiada basándose en qué versiones de la API gráfica están soportadas y (si se especifica) los nodos QFilterKey que satisfacen un QTechniqueFilter dado en el FrameGraph.

Nota: Cuando se utiliza OpenGL como API gráfica para el renderizado, Qt3D se basa en el QSurfaceFormat devuelto por QSurfaceFormat::defaultFormat() en tiempo de ejecución para decidir cuál es la versión GL más apropiada disponible. Si necesitas personalizar el QSurfaceFormat, no olvides aplicarlo con QSurfaceFormat::setDefaultFormat(). Establecer el QSurfaceFormat en la vista probablemente no tendrá ningún efecto en el renderizado relacionado con Qt3D.

Nota: El nodo QTechnique no puede ser desactivado.

QTechnique *gl3Technique = new QTechnique();

// Create the render passes
QRenderPass *firstPass = new QRenderPass();
QRenderPass *secondPass = new QRenderPass();

// Add the passes to the technique
gl3Technique->addRenderPass(firstPass);
gl3Technique->addRenderPass(secondPass);

// Set the targeted GL version for the technique
gl3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL);
gl3Technique->graphicsApiFilter()->setMajorVersion(3);
gl3Technique->graphicsApiFilter()->setMinorVersion(1);
gl3Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::CoreProfile);

// Create a FilterKey
QFilterKey *filterKey = new QFilterKey();
filterKey->setName(QStringLiteral("name"));
fitlerKey->setValue(QStringLiteral("zFillPass"));

// Add the FilterKey to the Technique
gl3Technique->addFilterKey(filterKey);

// Create a QParameter
QParameter *colorParameter = new QParameter(QStringLiteral("color"), QColor::fromRgbF(0.0f, 0.0f, 1.0f, 1.0f));

// Add parameter to technique
gl3Technique->addParameter(colorParameter);

Ver también QEffect, QRenderPass, y QTechniqueFilter.

Documentación de Propiedades

[read-only] graphicsApiFilter : Qt3DRender::QGraphicsApiFilter* const

Especifica el filtro de la API gráfica que se está utilizando

Funciones de acceso:

Qt3DRender::QGraphicsApiFilter *graphicsApiFilter()
const Qt3DRender::QGraphicsApiFilter *graphicsApiFilter() const

Documentación de funciones miembro

void QTechnique::addFilterKey(Qt3DRender::QFilterKey *filterKey)

Añada filterKey a las claves del filtro local Qt3DRender::QTechnique.

void QTechnique::addParameter(Qt3DRender::QParameter *parameter)

Añade parameter a los parámetros de la técnica.

void QTechnique::addRenderPass(Qt3DRender::QRenderPass *pass)

Añade un pass a la técnica.

QList<Qt3DRender::QFilterKey *> QTechnique::filterKeys() const

Devuelve la lista de objetos clave Qt3DCore::QFilterKey que componen las claves de filtro de Qt3DRender::QTechnique.

QList<Qt3DRender::QParameter *> QTechnique::parameters() const

Devuelve un vector de los parámetros actuales de las técnicas

void QTechnique::removeFilterKey(Qt3DRender::QFilterKey *filterKey)

Elimina filterKey de las claves del filtro local Qt3DRender::QTechnique.

void QTechnique::removeParameter(Qt3DRender::QParameter *parameter)

Elimine parameter de los parámetros de la técnica.

void QTechnique::removeRenderPass(Qt3DRender::QRenderPass *pass)

Elimina un pass de la técnica.

QList<Qt3DRender::QRenderPass *> QTechnique::renderPasses() const

Devuelve la lista de pases de render contenidos en la técnica.

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