Класс QTechnique
класс Qt3DRender::QTechniqueИнкапсулирует технику. Подробнее...
| Заголовок: | #include <QTechnique> |
| CMake: | find_package(Qt6 COMPONENTS 3drender REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| С момента: | Qt 5.7 |
| Инициализируется: | Technique |
| Наследует: | 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 |
Подробное описание
QTechnique определяет набор объектов Qt3DRender::QRenderPass, объектов Qt3DRender::QFilterKey, объектов Qt3DRender::QParameter и Qt3DRender::QGraphicsApiFilter, которые вместе определяют технику рендеринга, которую данный графический API может выполнить. Фильтр ключей используется Qt3DRender::QTechniqueFilter для выбора определенных техник в определённых частях FrameGraph. Если в QTechnique и QRenderPass указаны два QParameter с одинаковым именем, QParameter в Technique перекрывает QParameter, используемый в QRenderPass.
При создании QEffect, нацеленного на несколько версий графического API, полезно создать несколько узлов QTechnique, каждый с установленным graphicsApiFilter, соответствующим одной из целевых версий GL. Во время выполнения рендерер Qt3D выберет наиболее подходящий QTechnique на основе поддерживаемых версий графического API и (если указано) узлов QFilterKey, удовлетворяющих заданному QTechniqueFilter в FrameGraph.
Примечание: При использовании 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.
Документация по свойствам
[read-only] 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
Возвращает список объектов Qt3DCore::QFilterKey, составляющих ключи фильтра Qt3DRender::QTechnique.
QList<Qt3DRender::QParameter *> QTechnique::parameters() const
Возвращает список текущих параметров техники.
void QTechnique::removeFilterKey(Qt3DRender::QFilterKey *filterKey)
Удаляет filterKey из локальных ключей фильтра Qt3DRender::QTechnique.
void QTechnique::removeParameter(Qt3DRender::QParameter *parameter)
Удаляет parameter из параметров техники.
void QTechnique::removeRenderPass(Qt3DRender::QRenderPass *pass)
Удаляет pass из техники.
QList<Qt3DRender::QRenderPass *> QTechnique::renderPasses() const
Возвращает список проходов рендеринга, содержащихся в технике.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qt3drender-qtechnique.html