Qt3DRender::QShaderProgramBuilder Class
class Qt3DRender::QShaderProgramBuilder根据加载的图形生成着色器程序内容。更多
头文件: | #include <QShaderProgramBuilder> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
在 QML 中: | ShaderProgramBuilder |
继承: | Qt3DCore::QNode |
状态: | 已废弃 |
属性
|
|
公共功能
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 |
公共插槽
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) |
信号
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) |
详细说明
着色器程序生成器由多个不同的着色器图形组成,用于生成着色器代码。
生成的着色器代码会被缓存起来。生成的着色器默认保存在QStandardPaths::writableLocation(QStandardPaths::TempLocation)) 中。可通过将环境变量 QT3D_WRITABLE_CACHE_PATH 设置为有效的可写路径来覆盖该路径。
可以通过设置环境变量 QT3D_DISABLE_SHADER_CACHE 来禁用缓存。
在大多数情况下,对图形所做的更改会被Qt 3D 检测到,并生成新的缓存条目。当图形中包含的代码片段发生更改时,这种情况就不会发生。要解决这个问题,可以通过清除缓存目录或设置环境变量 QT3D_REBUILD_SHADER_CACHE 来强制重新生成着色器代码。
属性文档
[read-only]
computeShaderCode : const QByteArray
保存生成计算着色器代码。
访问功能:
QByteArray | computeShaderCode() const |
通知信号:
void | computeShaderCodeChanged(const QByteArray &computeShaderCode) |
computeShaderGraph : QUrl
保存此着色器程序生成器使用的计算着色器图形的 URL。
访问功能:
QUrl | computeShaderGraph() const |
void | setComputeShaderGraph(const QUrl &computeShaderGraph) |
通知信号
void | computeShaderGraphChanged(const QUrl &computeShaderGraph) |
enabledLayers : QStringList
保存代码生成过程中将在着色器图形上激活的图层列表。
访问功能:
QStringList | enabledLayers() const |
void | setEnabledLayers(const QStringList &layers) |
通知信号:
void | enabledLayersChanged(const QStringList &layers) |
[read-only]
fragmentShaderCode : const QByteArray
保存生成片段着色器代码。
访问功能:
QByteArray | fragmentShaderCode() const |
通知信号:
void | fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode) |
fragmentShaderGraph : QUrl
保存此着色器程序生成器使用的片段着色器图形的 URL。
访问功能:
QUrl | fragmentShaderGraph() const |
void | setFragmentShaderGraph(const QUrl &fragmentShaderGraph) |
通知信号:
void | fragmentShaderGraphChanged(const QUrl &fragmentShaderGraph) |
[read-only]
geometryShaderCode : const QByteArray
保存生成几何着色器的代码。
访问功能:
QByteArray | geometryShaderCode() const |
通知信号:
void | geometryShaderCodeChanged(const QByteArray &geometryShaderCode) |
geometryShaderGraph : QUrl
保存此着色器程序生成器使用的几何着色器图形的 URL。
访问功能:
QUrl | geometryShaderGraph() const |
void | setGeometryShaderGraph(const QUrl &geometryShaderGraph) |
通知信号
void | geometryShaderGraphChanged(const QUrl &geometryShaderGraph) |
shaderProgram : Qt3DRender::QShaderProgram*
保存着色器程序,该生成器在此程序上生成代码。
访问功能:
Qt3DRender::QShaderProgram * | shaderProgram() const |
void | setShaderProgram(Qt3DRender::QShaderProgram *program) |
通知信号:
void | shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram) |
[read-only]
tessellationControlShaderCode : const QByteArray
保存生成细分控制着色器代码。
访问功能:
QByteArray | tessellationControlShaderCode() const |
通知信号:
void | tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode) |
tessellationControlShaderGraph : QUrl
保存此着色器程序生成器使用的细分控制着色器图形的 URL。
访问功能:
QUrl | tessellationControlShaderGraph() const |
void | setTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph) |
通知信号
void | tessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph) |
[read-only]
tessellationEvaluationShaderCode : const QByteArray
保存生成细分评估着色器代码。
访问功能:
QByteArray | tessellationEvaluationShaderCode() const |
通知信号:
void | tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode) |
tessellationEvaluationShaderGraph : QUrl
保存此着色器程序生成器使用的细分曲面评估着色器图形的 URL。
访问功能:
QUrl | tessellationEvaluationShaderGraph() const |
void | setTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph) |
通知信号
void | tessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph) |
[read-only]
vertexShaderCode : const QByteArray
保存生成顶点着色器的代码。
访问功能:
QByteArray | vertexShaderCode() const |
通知信号:
void | vertexShaderCodeChanged(const QByteArray &vertexShaderCode) |
vertexShaderGraph : QUrl
保存此着色器程序生成器使用的顶点着色器图形的 URL。
访问功能:
QUrl | vertexShaderGraph() const |
void | setVertexShaderGraph(const QUrl &vertexShaderGraph) |
通知信号:
void | vertexShaderGraphChanged(const QUrl &vertexShaderGraph) |
© 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.