Sur cette page

Qt3DRender::QRenderPass Class

class Qt3DRender::QRenderPass

Représente une passe de rendu. En savoir plus...

En-tête : #include <qrenderpass.h>
CMake : find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake : QT += 3drender
En QML : RenderPass
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

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 un passage de rendu unique — une instance d’exécution d’un programme de shader — utilisé par la fonction ` Qt3DRender::QTechnique`. Un passage 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 l’ QShaderProgram à l’aide des nœuds QRenderState et QParameter fournis lorsque au moins l’un des nœuds QFilterKey référencés correspond à l’un des nœuds QFilterKey de 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, celui-ci sera remplacé par un QParameter portant le même nom s’il existe dans l’une des branches QTechnique, QEffect, QMaterial, QTechniqueFilter ou QRenderPassFilter associées au passage lors de l’exécution. Cela peut néanmoins s’avérer utile pour définir des valeurs par défaut raisonnables.

Au moment du rendu, pour chaque nœud feuille du FrameGraph, un état de rendu de base est enregistré en cumulant les états définis par tous les nœuds « QRenderStateSet » de la branche du 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 également QRenderPassFilter, QFilterKey, QParameter, QRenderState, QEffect et QTechnique.

Documentation relative aux biens immobiliers

shaderProgram : Qt3DRender::QShaderProgram*

Spécifie le programme de shader à utiliser pour ce passage de rendu.

Fonctions d’accès :

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

Signal de notification :

void shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram)

Documentation des fonctions membres

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

Crée un nouvel objet QRenderPass avec l'parent spécifié.

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

Ajoute « filterKey » aux clés de filtre local « Qt3DRender::QRenderPass ».

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

Ajoutez « parameter » aux paramètres du pass de rendu.

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

Ajoute un état de rendu ( state ) à la passe de rendu. Cela signifie 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 l'Qt3DRender::QRenderPass.

Remarque : si aucun Qt3DRender::QRenderStaten’est défini dans un passage, celui-ci utilisera l’état de rendu défini globalement pour un chemin d’exécution donné de la branche du FrameGraph.

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

Renvoie la liste des objets `Qt3DRender::QFilterKey` constituant les clés de filtre de l'Qt3DRender::QRenderPass.

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

Renvoie un vecteur contenant les paramètres actuels de la passe de rendu

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

Supprime « filterKey » des clés de filtre local « Qt3DRender::QRenderPass ».

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

Supprimez « parameter » des paramètres du passage de rendu.

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

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

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

Renvoie la liste des objets d'état Qt3DRender::QRenderState constituant l'état de rendu de l'Qt3DRender::QRenderPass.

Éléments non membres associés

[alias] ParameterList

Liste des paramètres de 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.