En esta página

Qt3DRender::QShaderProgramBuilder Class

class Qt3DRender::QShaderProgramBuilder

Genera el contenido de un programa de sombreado a partir de los gráficos cargados. Más...

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

Propiedades

Funciones públicas

QByteArray computeShaderCode() const
QUrl computeShaderGraph() const
QStringList enabledLayers() const
QByteArray fragmentShaderCode() const
QUrl fragmentShaderGraph() const
QByteArray geometryShaderCode() const
QUrl geometryShaderGraph() const
Qt3DRender::QShaderProgram *shaderProgram() const
QByteArray tessellationControlShaderCode() const
QUrl tessellationControlShaderGraph() const
QByteArray tessellationEvaluationShaderCode() const
QUrl tessellationEvaluationShaderGraph() const
QByteArray vertexShaderCode() const
QUrl vertexShaderGraph() const

Ranuras públicas

void setComputeShaderGraph(const QUrl &computeShaderGraph)
void setEnabledLayers(const QStringList &layers)
void setFragmentShaderGraph(const QUrl &fragmentShaderGraph)
void setGeometryShaderGraph(const QUrl &geometryShaderGraph)
void setShaderProgram(Qt3DRender::QShaderProgram *program)
void setTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph)
void setTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph)
void setVertexShaderGraph(const QUrl &vertexShaderGraph)

Señales

void computeShaderCodeChanged(const QByteArray &computeShaderCode)
void computeShaderGraphChanged(const QUrl &computeShaderGraph)
void enabledLayersChanged(const QStringList &layers)
void fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode)
void fragmentShaderGraphChanged(const QUrl &fragmentShaderGraph)
void geometryShaderCodeChanged(const QByteArray &geometryShaderCode)
void geometryShaderGraphChanged(const QUrl &geometryShaderGraph)
void shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram)
void tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode)
void tessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph)
void tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode)
void tessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph)
void vertexShaderCodeChanged(const QByteArray &vertexShaderCode)
void vertexShaderGraphChanged(const QUrl &vertexShaderGraph)

Descripción detallada

Un constructor de programas de sombreado consiste en varios gráficos de sombreado diferentes utilizados para generar código de sombreado.

Se mantiene una caché del código shader generado. Los shaders generados se guardan por defecto en QStandardPaths::writableLocation(QStandardPaths::TempLocation)). Esta ruta puede anularse estableciendo la variable de entorno QT3D_WRITABLE_CACHE_PATH en una ruta válida con permisos de escritura.

El uso de la caché puede desactivarse configurando la variable de entorno QT3D_DISABLE_SHADER_CACHE.

En la mayoría de los casos, los cambios realizados en un gráfico son detectados por Qt 3D y se generará una nueva entrada en la caché. Un caso en el que esto no ocurre es cuando se cambian fragmentos de código incluidos en un gráfico. Para evitarlo, se puede borrar el directorio de la caché o establecer la variable de entorno QT3D_REBUILD_SHADER_CACHE para forzar que el código del shader se genere de nuevo.

Documentación de propiedades

[read-only] computeShaderCode : QByteArray

Contiene el código de generación del sombreador.

Funciones de acceso:

QByteArray computeShaderCode() const

Señal notificadora:

void computeShaderCodeChanged(const QByteArray &computeShaderCode)

computeShaderGraph : QUrl

Contiene la URL del gráfico de sombreado de cálculo utilizado por este constructor de programas de sombreado.

Funciones de acceso:

QUrl computeShaderGraph() const
void setComputeShaderGraph(const QUrl &computeShaderGraph)

Señal de notificador:

void computeShaderGraphChanged(const QUrl &computeShaderGraph)

enabledLayers : QStringList

Contiene la lista de capas que este constructor activará en los gráficos de sombreado durante la generación de código.

Funciones de acceso:

QStringList enabledLayers() const
void setEnabledLayers(const QStringList &layers)

Señal de notificador:

void enabledLayersChanged(const QStringList &layers)

[read-only] fragmentShaderCode : QByteArray

Contiene el código de generación del fragment shader.

Funciones de acceso:

QByteArray fragmentShaderCode() const

Señal notificadora:

void fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode)

fragmentShaderGraph : QUrl

Contiene la URL del gráfico de sombreado de fragmentos utilizado por este constructor de programas de sombreado.

Funciones de acceso:

QUrl fragmentShaderGraph() const
void setFragmentShaderGraph(const QUrl &fragmentShaderGraph)

Señal de notificador:

void fragmentShaderGraphChanged(const QUrl &fragmentShaderGraph)

[read-only] geometryShaderCode : QByteArray

Contiene el código de generación del sombreador geométrico.

Funciones de acceso:

QByteArray geometryShaderCode() const

Señal notificadora:

void geometryShaderCodeChanged(const QByteArray &geometryShaderCode)

geometryShaderGraph : QUrl

Contiene la URL del gráfico de sombreado geométrico utilizado por este constructor de programas de sombreado.

Funciones de acceso:

QUrl geometryShaderGraph() const
void setGeometryShaderGraph(const QUrl &geometryShaderGraph)

Señal de notificador:

void geometryShaderGraphChanged(const QUrl &geometryShaderGraph)

shaderProgram : Qt3DRender::QShaderProgram*

Contiene el programa de sombreado en el que este constructor genera el código.

Funciones de acceso:

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

Señal del notificador:

void shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram)

[read-only] tessellationControlShaderCode : QByteArray

Contiene el código del shader de control de teselación.

Funciones de acceso:

QByteArray tessellationControlShaderCode() const

Señal notificadora:

void tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode)

tessellationControlShaderGraph : QUrl

Contiene la URL del gráfico del sombreador de control de teselación utilizado por este constructor de programas de sombreado.

Funciones de acceso:

QUrl tessellationControlShaderGraph() const
void setTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph)

Señal de notificador:

void tessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph)

[read-only] tessellationEvaluationShaderCode : QByteArray

Contiene el código del shader de evaluación de teselación.

Funciones de acceso:

QByteArray tessellationEvaluationShaderCode() const

Señal notificadora:

void tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode)

tessellationEvaluationShaderGraph : QUrl

Contiene la URL del gráfico del sombreador de evaluación de teselación utilizado por este constructor de programas de sombreado.

Funciones de acceso:

QUrl tessellationEvaluationShaderGraph() const
void setTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph)

Señal de notificador:

void tessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph)

[read-only] vertexShaderCode : QByteArray

Contiene el código de generación del sombreador de vértices.

Funciones de acceso:

QByteArray vertexShaderCode() const

Señal notificadora:

void vertexShaderCodeChanged(const QByteArray &vertexShaderCode)

vertexShaderGraph : QUrl

Contiene la URL del gráfico del sombreador de vértices utilizado por este constructor de programas de sombreado.

Funciones de acceso:

QUrl vertexShaderGraph() const
void setVertexShaderGraph(const QUrl &vertexShaderGraph)

Señal de notificador:

void vertexShaderGraphChanged(const QUrl &vertexShaderGraph)

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