Qt3DRender::QRenderPass Class
class Qt3DRender::QRenderPassKapseln einen Render-Pass. Mehr...
| Header: | #include <qrenderpass.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| In QML: | RenderPass |
| Erbt von: | Qt3DCore::QNode |
| Status: | Veraltet |
Diese Klasse ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.
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 “ (Render-Pass-Objekt) spezifiziert einen einzelnen Render-Pass – eine Instanz der Ausführung eines Shader-Programms –, der von „ Qt3DRender::QTechnique “ verwendet wird. Ein Render-Pass besteht aus einem „ Qt3DRender::QShaderProgram “ sowie 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 referenzierten „ QFilterKey “-Knoten 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 einen „ QParameter “ definiert, wird dieser durch einen „ QParameter “ mit demselben Namen überschrieben, sofern dieser in einem der mit dem Pass zur Laufzeit verknüpften „ QTechnique “, „ QEffect “, „ QMaterial “, „ QTechniqueFilter “ oder „ QRenderPassFilter “ vorhanden ist. Dies kann dennoch nützlich sein, um sinnvolle Standardwerte festzulegen.
Zum Zeitpunkt der Darstellung wird für jeden Blattknoten des FrameGraphs ein Basis-Darstellungszustand aufgezeichnet, indem die Zustände aller „ QRenderStateSet “-Knoten im FrameGraph-Zweig akkumuliert werden. Jeder QRenderPass kann diesen Basis-Darstellungszustand überschreiben, 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 zu Eigenschaften
shaderProgram : Qt3DRender::QShaderProgram*
Legt das Shader-Programm fest, das für diesen Render-Durchlauf verwendet werden soll.
Zugriffsfunktionen:
| Qt3DRender::QShaderProgram * | shaderProgram() const |
| void | setShaderProgram(Qt3DRender::QShaderProgram *shaderProgram) |
Notifier-Signal:
| void | shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram) |
Dokumentation der Mitgliedsfunktionen
[explicit] QRenderPass::QRenderPass(Qt3DCore::QNode *parent = nullptr)
Erstellt einen neuen `QRenderPass` mit dem angegebenen ` parent`.
void QRenderPass::addFilterKey(Qt3DRender::QFilterKey *filterKey)
Fügt „ filterKey “ zu den lokalen Filterschlüsseln „ Qt3DRender::QRenderPass “ hinzu.
void QRenderPass::addParameter(Qt3DRender::QParameter *parameter)
Fügen Sie „ parameter “ zu den Parametern des Render-Passes hinzu.
void QRenderPass::addRenderState(Qt3DRender::QRenderState *state)
Fügt dem Rendering-Pass einen Render- state hinzu. Das bedeutet, dass bei der Ausführung des Passes zur Renderzeit der global festgelegte Render-State durch die lokal von „ Qt3DRender::QRenderPass “ definierten Zustände modifiziert wird.
Hinweis: Wird in einem Passkein Qt3DRender::QRenderState definiert, verwendet der Pass den global festgelegten Render-Status für einen bestimmten Ausführungspfad des FrameGraph-Zweigs.
QList<Qt3DRender::QFilterKey *> QRenderPass::filterKeys() const
Gibt die Liste der Schlüsselobjekte vom Typ `Qt3DRender::QFilterKey` zurück, aus denen sich die Filterschlüssel des ` Qt3DRender::QRenderPass` zusammensetzen.
QList<Qt3DRender::QParameter *> QRenderPass::parameters() const
Gibt einen Vektor mit den aktuellen Parametern des Render-Passes zurück
void QRenderPass::removeFilterKey(Qt3DRender::QFilterKey *filterKey)
Entfernt „ filterKey “ aus den lokalen Filterschlüsseln unter „ Qt3DRender::QRenderPass “.
void QRenderPass::removeParameter(Qt3DRender::QParameter *parameter)
Entfernen Sie „ parameter “ aus den Parametern des Render-Durchgangs.
void QRenderPass::removeRenderState(Qt3DRender::QRenderState *state)
Entfernt „ state “ aus dem lokalen Render-Status von „ Qt3DRender::QRenderPass “.
QList<Qt3DRender::QRenderState *> QRenderPass::renderStates() const
Gibt die Liste der Qt3DRender::QRenderState-Zustandsobjekte zurück, aus denen sich der Render-Zustand des „ Qt3DRender::QRenderPass “ zusammensetzt.
© 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.