Auf dieser Seite

Qt3DRender::QRenderPass Class

class Qt3DRender::QRenderPass

Kapseln 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

Ö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 “ (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.

Verwandte Nicht-Mitglieder

[alias] ParameterList

Eine Liste der Parameter von 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.