Класс 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.
При создании 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.2/qt3drender-qtechnique.html