Qt3DRender::QRenderPass Class
class Qt3DRender::QRenderPassEncapsule 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
- shaderProgram : Qt3DRender::QShaderProgram*
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) |
Non-membres apparentés
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.
© 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.