Sur cette page

Qt3DRender::QTechnique Class

class Qt3DRender::QTechnique

Encapsule une technique. Plus...

En-tête : #include <QTechnique>
CMake : find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake : QT += 3drender
En QML : Technique
Hérite : Qt3DCore::QNode
Statut : Déclassé

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 site Qt3DRender::QTechnique spécifie un ensemble d'objets Qt3DRender::QRenderPass, d'objets Qt3DRender::QFilterKey, d'objets Qt3DRender::QParameter et d'objets Qt3DRender::QGraphicsApiFilter qui, ensemble, définissent une technique de rendu que l'API graphique donnée peut effectuer. Les clés de filtrage sont utilisées par Qt3DRender::QTechniqueFilter pour sélectionner des techniques spécifiques dans des parties spécifiques du FrameGraph. Un QParameter défini sur une QTechnique remplace les paramètres (du même nom) définis dans QRenderPass, mais ils sont remplacés par des paramètres dans QRenderPassFilter, QTechniqueFilter, QMaterial et QEffect.

Lors de la création d'un site QEffect qui cible plusieurs versions d'une API graphique, il est utile de créer plusieurs nœuds QTechnique, chacun ayant un 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 se basant sur les versions de l'API graphique qui sont supportées et (si spécifié) les nœuds QFilterKey qui satisfont une QTechniqueFilter donnée dans le FrameGraph.

Note : Lors de l'utilisation d'OpenGL comme API graphique pour le rendu, Qt3D s'appuie sur QSurfaceFormat retourné par QSurfaceFormat::defaultFormat() à l'exécution pour décider quelle est la version GL disponible la plus appropriée. Si vous avez besoin de personnaliser le QSurfaceFormat, n'oubliez pas de l'appliquer avec QSurfaceFormat::setDefaultFormat(). Définir 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 des fonctions membres

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

Ajouter filterKey aux clés de filtrage local Qt3DRender::QTechnique.

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

Ajouter parameter aux paramètres de la technique.

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

Ajoute une adresse pass à la technique.

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

Retourne la liste des objets clés Qt3DCore::QFilterKey constituant les clés de filtrage de Qt3DRender::QTechnique.

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

Renvoie un vecteur des paramètres actuels des techniques

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

Supprime filterKey des clés de filtrage local Qt3DRender::QTechnique.

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

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