QRenderPass Class

class Qt3DRender::QRenderPass

Kapselt 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

Ö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)

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.

Verwandte Nicht-Mitglieder

[alias] ParameterList

Eine Liste von Qt3DRender::QParameter Parametern.

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