QRenderPass Class
class Qt3DRender::QRenderPassKapselt einen Renderpass. Mehr...
Kopfzeile: | #include <QRenderPass> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
In QML: | RenderPass |
Vererbt: | Qt3DCore::QNode |
Status: | Veraltet |
Eigenschaften
- shaderProgram : Qt3DRender::QShaderProgram*
Öffentliche Funktionen
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 |
Öffentliche Slots
void | setShaderProgram(Qt3DRender::QShaderProgram *shaderProgram) |
Signale
void | shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram) |
Verwandte Nicht-Mitglieder
Detaillierte Beschreibung
Ein Qt3DRender::QRenderPass spezifiziert einen einzelnen Rendering-Pass - eine Instanz der Shader-Programmausführung - die von Qt3DRender::QTechnique verwendet wird. Ein Renderpass besteht aus einem Qt3DRender::QShaderProgram und einer Liste von Qt3DRender::QFilterKey Objekten, einer Liste von Qt3DRender::QRenderState Objekten und einer Liste von Qt3DRender::QParameter Objekten.
QRenderPass führt den QShaderProgram unter Verwendung der angegebenen QRenderState und QParameter Knoten aus, wenn mindestens einer der QFilterKey Knoten, auf die verwiesen wird, mit einem der QFilterKey Knoten in QRenderPassFilter übereinstimmt oder wenn keine QFilterKey Knoten angegeben sind und kein QRenderPassFilter im FrameGraph vorhanden ist.
Wenn der QRenderPass ein QParameter definiert, wird es durch ein QParameter mit dem gleichen Namen überschrieben, wenn es in einem der QTechnique, QEffect, QMaterial, QTechniqueFilter, QRenderPassFilter existiert, die mit dem Pass zur Laufzeit verbunden sind. Dies kann immer noch nützlich sein, um vernünftige Standardwerte zu definieren.
Zur Renderzeit wird für jeden Blattknoten des FrameGraphs ein Basis-Rendering-Zustand aufgezeichnet, indem die von allen QRenderStateSet -Knoten im FrameGraph-Zweig definierten Zustände akkumuliert werden. Jeder QRenderPass kann diesen Basis-Rendering-Status überladen, indem er seine eigenen QRenderState Knoten angibt.
// 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);
Siehe auch QRenderPassFilter, QFilterKey, QParameter, QRenderState, QEffect, und QTechnique.
Dokumentation der Eigenschaften
shaderProgram : Qt3DRender::QShaderProgram*
Gibt das Shaderprogramm an, das für diesen Renderpass verwendet werden soll.
Zugriffsfunktionen:
Qt3DRender::QShaderProgram * | shaderProgram() const |
void | setShaderProgram(Qt3DRender::QShaderProgram *shaderProgram) |
Benachrichtigungssignal:
void | shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram) |
Member Function Dokumentation
[explicit]
QRenderPass::QRenderPass(Qt3DCore::QNode *parent = nullptr)
Konstruiert einen neuen QRenderPass mit dem angegebenen parent.
void QRenderPass::addFilterKey(Qt3DRender::QFilterKey *filterKey)
Fügt filterKey zu den Qt3DRender::QRenderPass lokalen Filterschlüsseln hinzu.
void QRenderPass::addParameter(Qt3DRender::QParameter *parameter)
Fügen Sie parameter zu den Parametern des Renderpasses hinzu.
void QRenderPass::addRenderState(Qt3DRender::QRenderState *state)
Fügt dem Rendering-Pass ein Rendering state hinzu. Das bedeutet, dass bei der Ausführung des Passes zur Rendering-Zeit der global eingestellte Rendering-Zustand durch die lokal durch den Qt3DRender::QRenderPass definierten Zustände geändert wird.
Hinweis: Wird in einem Rendering-Pass kein Qt3DRender::QRenderState definiert, verwendet der Pass den global eingestellten Rendering-Zustand für einen bestimmten FrameGraph-Verzweigungsausführungspfad.
QList<Qt3DRender::QFilterKey *> QRenderPass::filterKeys() const
Gibt die Liste der Qt3DRender::QFilterKey Schlüsselobjekte zurück, die die Filterschlüssel der Qt3DRender::QRenderPass bilden.
QList<Qt3DRender::QParameter *> QRenderPass::parameters() const
Gibt einen Vektor der aktuellen Parameter des Renderpasses zurück
void QRenderPass::removeFilterKey(Qt3DRender::QFilterKey *filterKey)
Entfernt filterKey aus den lokalen Filterschlüsseln Qt3DRender::QRenderPass.
void QRenderPass::removeParameter(Qt3DRender::QParameter *parameter)
Entfernen Sie parameter aus den Parametern des Renderpasses.
void QRenderPass::removeRenderState(Qt3DRender::QRenderState *state)
Entfernt state aus dem lokalen Renderstatus Qt3DRender::QRenderPass.
QList<Qt3DRender::QRenderState *> QRenderPass::renderStates() const
Gibt die Liste der Qt3DRender::QRenderState state-Objekte zurück, aus denen sich der Rendering-Status der Qt3DRender::QRenderPass zusammensetzt.
© 2025 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.