En esta página

Qt3DRender::QRenderPass Class

class Qt3DRender::QRenderPass

Encapsula un Pase de Renderizado. Más...

Cabecera: #include <QRenderPass>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
En QML: RenderPass
Hereda: Qt3DCore::QNode
Status: Obsoleto

Propiedades

Funciones públicas

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

Ranuras públicas

void setShaderProgram(Qt3DRender::QShaderProgram *shaderProgram)

Señales

void shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram)

Descripción detallada

Un Qt3DRender::QRenderPass especifica un único pase de renderizado - una instancia de ejecución del programa de sombreado - utilizado por Qt3DRender::QTechnique. El pase de renderizado consiste en un Qt3DRender::QShaderProgram y una lista de objetos Qt3DRender::QFilterKey, una lista de objetos Qt3DRender::QRenderState y una lista de objetos Qt3DRender::QParameter.

QRenderPass ejecuta el QShaderProgram utilizando los nodos QRenderState y QParameter dados cuando al menos uno de los nodos QFilterKey referenciados coincide con cualquiera de los nodos QFilterKey en QRenderPassFilter o cuando no se especifican nodos QFilterKey y no hay ningún QRenderPassFilter presente en el FrameGraph.

Si el QRenderPass define un QParameter, será reemplazado por un QParameter con el mismo nombre si existe en cualquiera de los QTechnique, QEffect, QMaterial, QTechniqueFilter, QRenderPassFilter asociados con el pase en tiempo de ejecución. Esto todavía puede ser útil para definir valores por defecto sanos.

En tiempo de renderizado, para cada nodo hoja del FrameGraph se registra un estado de renderizado base acumulando los estados definidos por todos los nodos QRenderStateSet de la rama FrameGraph. Cada QRenderPass puede sobrecargar este estado de renderizado base especificando sus propios nodos 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);

Ver también QRenderPassFilter, QFilterKey, QParameter, QRenderState, QEffect, y QTechnique.

Documentación de propiedades

shaderProgram : Qt3DRender::QShaderProgram*

Especifica el programa de sombreado que se utilizará para este pase de render.

Funciones de acceso:

Qt3DRender::QShaderProgram *shaderProgram() const
void setShaderProgram(Qt3DRender::QShaderProgram *shaderProgram)

Señal notificadora:

void shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram)

Documentación de la función miembro

[explicit] QRenderPass::QRenderPass(Qt3DCore::QNode *parent = nullptr)

Construye un nuevo QRenderPass con el parent especificado.

void QRenderPass::addFilterKey(Qt3DRender::QFilterKey *filterKey)

Añade filterKey a las claves de filtro locales de Qt3DRender::QRenderPass.

void QRenderPass::addParameter(Qt3DRender::QParameter *parameter)

Añade parameter a los parámetros del pase de renderizado.

void QRenderPass::addRenderState(Qt3DRender::QRenderState *state)

Añade un render state al pase de renderizado. Esto implica que cuando el pase se ejecuta en tiempo de render, el estado de render globalmente establecido será modificado por los estados definidos localmente por el Qt3DRender::QRenderPass.

Nota: si no se define ningún Qt3DRender::QRenderState en un pase, el pase utilizará el estado de render globalmente establecido para una determinada ruta de ejecución de la rama FrameGraph.

QList<Qt3DRender::QFilterKey *> QRenderPass::filterKeys() const

Devuelve la lista de objetos clave de Qt3DRender::QFilterKey que componen las claves de filtro de Qt3DRender::QRenderPass.

QList<Qt3DRender::QParameter *> QRenderPass::parameters() const

Devuelve un vector de los parámetros actuales del pase de renderizado

void QRenderPass::removeFilterKey(Qt3DRender::QFilterKey *filterKey)

Elimina filterKey de las claves del filtro local Qt3DRender::QRenderPass.

void QRenderPass::removeParameter(Qt3DRender::QParameter *parameter)

Elimina parameter de los parámetros del pase de renderizado.

void QRenderPass::removeRenderState(Qt3DRender::QRenderState *state)

Elimina state del estado de renderizado local de Qt3DRender::QRenderPass.

QList<Qt3DRender::QRenderState *> QRenderPass::renderStates() const

Devuelve la lista de objetos de estado de Qt3DRender::QRenderState que componen el estado de renderizado de Qt3DRender::QRenderPass.

No miembros relacionados

[alias] ParameterList

Una lista de parámetros 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.