Sur cette page

Qt3DRender::QTechnique Class

class Qt3DRender::QTechnique

Encapsule une technique. En savoir plus...

En-tête : #include <qtechnique.h>
CMake : find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake : QT += 3drender
En QML : Technique
Hérite de : Qt3DCore::QNode
Statut : Obsolète

Cette classe est obsolète. Nous déconseillons fortement de l'utiliser dans du nouveau code.

Propriétés

Fonctions publiques

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

Description détaillée

Un objet « Qt3DRender::QTechnique » spécifie un ensemble d’objets « Qt3DRender::QRenderPass », « Qt3DRender::QFilterKey », « Qt3DRender::QParameter » et un « Qt3DRender::QGraphicsApiFilter », qui, ensemble, définissent une technique de rendu que l’API graphique donnée est capable de mettre en œuvre. Les clés de filtre sont utilisées par Qt3DRender::QTechniqueFilter pour sélectionner des techniques spécifiques à des parties spécifiques du FrameGraph. Un QParameter défini sur un nœud QTechnique remplace le paramètre (du même nom) défini dans QRenderPass, mais est lui-même remplacé par le paramètre défini dans QRenderPassFilter, QTechniqueFilter, QMaterial et QEffect.

Lors de la création d’une technique de rendu ( QEffect ) ciblant plusieurs versions d’une API graphique, il est utile de créer plusieurs nœuds QTechnique, chacun avec un paramètre « graphicsApiFilter » défini pour correspondre à l’une des versions GL ciblées. Au moment de l’exécution, le moteur de rendu Qt3D sélectionnera la QTechnique la plus appropriée en fonction des versions d’API graphiques prises en charge et (si spécifié) des nœuds « QFilterKey » qui satisfont une QTechniqueFilter donnée dans le FrameGraph.

Remarque : lorsque OpenGL est utilisé comme API graphique pour le rendu, Qt3D s’appuie sur la QSurfaceFormat renvoyée par QSurfaceFormat::defaultFormat() lors de l’exécution pour déterminer quelle est la version GL disponible la plus appropriée. Si vous devez personnaliser l’ QSurfaceFormat, n’oubliez pas de l’appliquer via QSurfaceFormat::setDefaultFormat(). La définition de l’ QSurfaceFormat sur la vue n’aura probablement aucun effet sur le rendu lié à Qt3D.

Remarque : le nœud `QTechnique ` ne peut pas être désactivé.

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

Voir également QEffect, QRenderPass et QTechniqueFilter.

Documentation sur les propriétés

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

Spécifie le filtre de l'API graphique utilisé

Fonctions d'accès :

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

Documentation sur les fonctions membres

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

Ajoutez « filterKey » aux clés de filtre locales « Qt3DRender::QTechnique ».

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

Ajoutez « parameter » aux paramètres de la technique.

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

Ajoute une « pass » à la technique.

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

Renvoie la liste des objets clé de type Qt3DCore::QFilterKey constituant les clés de filtre de l'Qt3DRender::QTechnique.

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

Renvoie un vecteur contenant les paramètres actuels de la technique

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

Supprime « filterKey » des clés de filtre locales « Qt3DRender::QTechnique ».

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

Supprimez « parameter » des paramètres de la technique.

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

Supprime une « pass » de la technique.

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

Renvoie la liste des passes de rendu contenues dans la technique.

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