QTechnique 类
class Qt3DRender::QTechnique封装一个技术。更多...
头文件 | #include <QTechnique> |
CMake | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake | QT += 3drender |
实例化 | 技术 |
继承自 | Qt3DCore::QNode |
属性
- graphicsApiFilter : Qt3DRender::QGraphicsApiFilter* const
公共函数
void | addFilterKey(Qt3DRender::QFilterKey *filterKey) |
void | addParameter(Qt3DRender::QParameter *parameter) |
void | addRenderPass(Qt3DRender::QRenderPass *pass) |
QList<Qt3DRender::QFilterKey *> | filterKeys() const |
Qt3DRender::QGraphicsApiFilter * | graphicsApiFilter() |
const Qt3DRender::QGraphicsApiFilter * | graphicsApiFilter() const |
QList<Qt3DRender::QParameter *> | parameters() const |
void | removeFilterKey(Qt3DRender::QFilterKey *filterKey) |
void | removeParameter(Qt3DRender::QParameter *parameter) |
void | removeRenderPass(Qt3DRender::QRenderPass *pass) |
QList<Qt3DRender::QRenderPass *> | renderPasses() const |
详细描述
Qt3DRender::QTechnique 指定了一组 Qt3DRender::QRenderPass 对象、Qt3DRender::QFilterKey 对象、Qt3DRender::QParameter 对象以及一个 Qt3DRender::QGraphicsApiFilter,共同定义了给定的图形 API 可以渲染的渲染技术。滤镜键由 Qt3DRender::QTechniqueFilter 在 FrameGraph 的特定部分选择特定的技术。在 QTechnique 上定义的 QParameter 覆盖了在 QRenderPass 中定义的同名参数(如果有的话),但它被 QRenderPassFilter、QTechniqueFilter、QMaterial 和 QEffect 中的参数覆盖。
当创建一个针对多个图形API版本的QEffect时,创建几个每个都具有graphicsApiFilter并设置为匹配目标GL版本之一的QTechnique节点是有用的。在运行时,Qt3D渲染器将根据支持的图形API版本选择最合适的QTechnique,以及(如果指定)满足帧图中给定QTechniqueFilter的QFilterKey节点。
注意:当使用OpenGL作为渲染的图形API时,Qt3D将依赖于运行时QSurfaceFormat返回的QSurfaceFormat::defaultFormat()来决定最合适的GL版本。如果您需要自定义QSurfaceFormat,请务必使用QSurfaceFormat::setDefaultFormat()应用它。在视图中设置QSurfaceFormat可能对与Qt3D相关的渲染没有影响。
注意:QTechnique节点不能被禁用。
QTechnique *gl3Technique = new QTechnique(); // Create the render passes QRenderPass *firstPass = new QRenderPass(); QRenderPass *secondPass = new QRenderPass(); // Add the passes to the technique gl3Technique->addRenderPass(firstPass); gl3Technique->addRenderPass(secondPass); // 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); // Create a FilterKey QFilterKey *filterKey = new QFilterKey(); filterKey->setName(QStringLiteral("name")); fitlerKey->setValue(QStringLiteral("zFillPass")); // Add the FilterKey to the Technique gl3Technique->addFilterKey(filterKey); // Create a QParameter QParameter *colorParameter = new QParameter(QStringLiteral("color"), QColor::fromRgbF(0.0f, 0.0f, 1.0f, 1.0f)); // Add parameter to technique gl3Technique->addParameter(colorParameter);
另请参阅:QEffect、QRenderPass和QTechniqueFilter。
属性文档
[只读]
graphicsApiFilter : Qt3DRender::QGraphicsApiFilter* const
指定正在使用的图形API过滤器
访问函数
Qt3DRender::QGraphicsApiFilter * | graphicsApiFilter() |
const Qt3DRender::QGraphicsApiFilter * | graphicsApiFilter() const |
成员函数文档
void QTechnique::addFilterKey(Qt3DRender::QFilterKey *filterKey)
将filterKey添加到Qt3DRender::QTechnique的本地过滤器键。
void QTechnique::addParameter(Qt3DRender::QParameter *parameter)
将parameter添加到技术的参数中。
void QTechnique::addRenderPass(Qt3DRender::QRenderPass *pass)
将pass附加到技术中。
QList<Qt3DRender::QFilterKey *> QTechnique::filterKeys() const
返回组成Qt3DRender::QTechnique过滤器键的Qt3DCore::QFilterKey键对象的列表。
QList<Qt3DRender::QParameter *> QTechnique::parameters() const
返回当前技术的参数向量。
void QTechnique::removeFilterKey(Qt3DRender::QFilterKey *filterKey)
从Qt3DRender::QTechnique的本地过滤器键中移除filterKey。
void QTechnique::removeParameter(Qt3DRender::QParameter *parameter)
从技术的参数中移除parameter。
void QTechnique::removeRenderPass(Qt3DRender::QRenderPass *pass)
从技术中移除一个pass。
QList<Qt3DRender::QRenderPass *> QTechnique::renderPasses() const
返回包含在技术中的渲染管道列表。
© 2024 Qt公司。本文件中的文档贡献包括各自的版权所有人。本文件提供的文档服从由自由软件基金会发布的GNU自由文档许可证版本1.3条款。Qt及其相应标志是芬兰以及全球其他地区的Qt公司标志。所有其他商标均为其各自所有者的财产。