QEffect 类

Qt3DRender::QEffect

Qt 3D 场景中效果的基类。 更多信息...

头文件 #include <QEffect>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmakeQT += 3drender
由以下实例化 Effect
继承自 Qt3DCore::QNode

公共函数

voidaddParameter(Qt3DRender::QParameter *parameter)
voidaddTechnique(Qt3DRender::QTechnique *t)
QList<Qt3DRender::QParameter *>parameters() const
voidremoveParameter(Qt3DRender::QParameter *parameter)
voidremoveTechnique(Qt3DRender::QTechnique *t)
QList<Qt3DRender::QTechnique *>techniques() const

详细描述

QEffect 类结合了一组技术和参数,这些技术和参数被用来为材质生成渲染效果。

当可能时,应该在几个 QMaterial 实例之间共享 QEffect 实例。

注意: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 中的参数覆盖。

另请参阅:QMaterialQTechniqueQParameter

成员函数文档

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

parameter 添加到效果中。它向后端发送更新。该 parameter 将用于在由该效果使用的着色器中设置相应的 uniform 值。

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

返回由效果使用的技术的列表。

© 2024 Qt公司。此处包含的文档贡献的版权属于各自的所有者。提供的文档是根据自由软件基金会发布的 GNU自由文档许可协议第1.3版 许可的。Qt及其相应标志是芬兰和/或其他国家/地区的Qt公司的商标。所有其他商标均为其各自所有者的财产。