Qt3DRender::QEffect Class

class Qt3DRender::QEffect

Qt 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 会覆盖在QTechniqueQRenderPass 中定义的参数(同名),但会被QRenderPassFilterQTechniqueFilterQMaterial 中的参数覆盖。

另请参阅 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.