Sur cette page

Qt3DRender::QRenderPass Class

class Qt3DRender::QRenderPass

Encapsule une passe de rendu. Plus...

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

Propriétés

Fonctions publiques

QRenderPass(Qt3DCore::QNode *parent = nullptr)
void addFilterKey(Qt3DRender::QFilterKey *filterKey)
void addParameter(Qt3DRender::QParameter *parameter)
void addRenderState(Qt3DRender::QRenderState *state)
QList<Qt3DRender::QFilterKey *> filterKeys() const
QList<Qt3DRender::QParameter *> parameters() const
void removeFilterKey(Qt3DRender::QFilterKey *filterKey)
void removeParameter(Qt3DRender::QParameter *parameter)
void removeRenderState(Qt3DRender::QRenderState *state)
QList<Qt3DRender::QRenderState *> renderStates() const
Qt3DRender::QShaderProgram *shaderProgram() const

Emplacements publics

void setShaderProgram(Qt3DRender::QShaderProgram *shaderProgram)

Signaux

void shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram)

Description détaillée

Un Qt3DRender::QRenderPass spécifie une seule passe de rendu - une instance d'exécution du programme de shaders - utilisée par Qt3DRender::QTechnique. La passe de rendu se compose d'un Qt3DRender::QShaderProgram et d'une liste d'objets Qt3DRender::QFilterKey, d'une liste d'objets Qt3DRender::QRenderState et d'une liste d'objets Qt3DRender::QParameter.

QRenderPass exécute QShaderProgram à l'aide des nœuds QRenderState et QParameter donnés lorsqu'au moins un des nœuds QFilterKey référencés correspond à l'un des nœuds QFilterKey dans QRenderPassFilter ou lorsqu'aucun nœud QFilterKey n'est spécifié et qu'aucun QRenderPassFilter n'est présent dans le FrameGraph.

Si le QRenderPass définit un QParameter, il sera remplacé par un QParameter portant le même nom s'il existe dans l'un des QTechnique, QEffect, QMaterial, QTechniqueFilter, QRenderPassFilter associés au pass au moment de l'exécution. Cela peut encore être utile pour définir des valeurs par défaut saines.

Au moment du rendu, pour chaque nœud feuille du FrameGraph, un état de rendu de base est enregistré en accumulant les états définis par tous les nœuds QRenderStateSet dans la branche FrameGraph. Chaque QRenderPass peut surcharger cet état de rendu de base en spécifiant ses propres nœuds QRenderState.

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

// Create shader program
QShaderProgram *glShader = new QShaderProgram();

// Set the shader on the render pass
pass->setShaderProgram(glShader);

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

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

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

// Add parameter to pass
pass->addParameter(colorParameter);

// Create a QRenderState
QDepthTest *depthTest = new QDepthTest();

// Add the render state to the pass
pass->addRenderState(depthTest);

Voir aussi QRenderPassFilter, QFilterKey, QParameter, QRenderState, QEffect, et QTechnique.

Documentation sur les propriétés

shaderProgram : Qt3DRender::QShaderProgram*

Spécifie le programme d'ombrage à utiliser pour cette passe de rendu.

Fonctions d'accès :

Qt3DRender::QShaderProgram *shaderProgram() const
void setShaderProgram(Qt3DRender::QShaderProgram *shaderProgram)

Signal du notificateur :

void shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram)

Fonction membre Documentation

[explicit] QRenderPass::QRenderPass(Qt3DCore::QNode *parent = nullptr)

Construit un nouveau QRenderPass avec l'adresse parent spécifiée.

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

Ajoute filterKey aux clés de filtrage local Qt3DRender::QRenderPass.

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

Ajouter parameter aux paramètres de la passe de rendu.

void QRenderPass::addRenderState(Qt3DRender::QRenderState *state)

Ajoute une page de rendu state à la passe de rendu. Cela implique que lorsque la passe est exécutée au moment du rendu, l'état de rendu défini globalement sera modifié par les états définis localement par Qt3DRender::QRenderPass.

Note : ne pas définir de Qt3DRender::QRenderState dans une passe aura pour conséquence que la passe utilisera l'état de rendu défini globalement pour un chemin d'exécution de branche FrameGraph donné.

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

Renvoie la liste des objets clés de Qt3DRender::QFilterKey qui constituent les clés de filtrage de Qt3DRender::QRenderPass.

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

Renvoie un vecteur des paramètres actuels de la passe de rendu

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

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

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

Supprimer parameter des paramètres de la passe de rendu.

void QRenderPass::removeRenderState(Qt3DRender::QRenderState *state)

Supprime state de l'état de rendu local Qt3DRender::QRenderPass.

QList<Qt3DRender::QRenderState *> QRenderPass::renderStates() const

Renvoie la liste des objets d'état Qt3DRender::QRenderState qui constituent l'état de rendu du site Qt3DRender::QRenderPass.

Non-membres apparentés

[alias] ParameterList

Une liste de paramètres Qt3DRender::QParameter.

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