Qt3DRender::QEffect Class
class Qt3DRender::QEffectQt 3D 场景中特效的基类。更多
头文件: | #include <QEffect> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
在 QML 中: | Effect |
继承: | Qt3DCore::QNode |
状态: | 已废弃 |
公共函数
void | addParameter(Qt3DRender::QParameter *parameter) |
void | addTechnique(Qt3DRender::QTechnique *t) |
QList<Qt3DRender::QParameter *> | parameters() const |
void | removeParameter(Qt3DRender::QParameter *parameter) |
void | removeTechnique(Qt3DRender::QTechnique *t) |
QList<Qt3DRender::QTechnique *> | techniques() const |
详细说明
QEffect 类结合了一组技术和这些技术使用的参数,可为材质生成渲染效果。
一个 QEffect 实例应尽可能由多个QMaterial 实例共享。
注: QEffect 节点不能禁用。
QEffect *effect = new QEffect(); // Create technique, render pass and shader QTechnique *gl3Technique = new QTechnique(); QRenderPass *gl3Pass = new QRenderPass(); QShaderProgram *glShader = new QShaderProgram(); // Set the shader on the render pass gl3Pass->setShaderProgram(glShader); // Add the pass to the technique gl3Technique->addRenderPass(gl3Pass); // Set the targeted GL version for the technique gl3Technique->graphicsApiFilter()->setApi(QGraphicsApiFilter::OpenGL); gl3Technique->graphicsApiFilter()->setMajorVersion(3); gl3Technique->graphicsApiFilter()->setMinorVersion(1); gl3Technique->graphicsApiFilter()->setProfile(QGraphicsApiFilter::CoreProfile); // Add the technique to the effect effect->addTechnique(gl3Technique);
在 QEffect 上定义的QParameter 会覆盖在QTechnique 和QRenderPass 中定义的参数(同名),但会被QRenderPassFilter 、QTechniqueFilter 和QMaterial 中的参数覆盖。
另请参阅 QMaterial,QTechnique, 和QParameter 。
成员函数文档
void QEffect::addParameter(Qt3DRender::QParameter *parameter)
为效果添加parameter 。它会向后台发送更新。parameter 将用于在此特效使用的着色器中设置相应的统一值。
void QEffect::addTechnique(Qt3DRender::QTechnique *t)
为效果添加新技术t 。它会向后台发送更新。
QList<Qt3DRender::QParameter *> QEffect::parameters() const
返回效果使用的参数列表。
void QEffect::removeParameter(Qt3DRender::QParameter *parameter)
从效果中删除参数parameter 。
void QEffect::removeTechnique(Qt3DRender::QTechnique *t)
从效果中移除技术t 。
QList<Qt3DRender::QTechnique *> QEffect::techniques() const
返回效果使用的技术列表。
© 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.