Класс 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 |
Подробное описание
Qt3DRender::QTechnique задаёт набор объектов Qt3DRender::QRenderPass, Qt3DRender::QFilterKey, Qt3DRender::QParameter и Qt3DRender::QGraphicsApiFilter, которые вместе определяют технику рендеринга, которую может выполнить данный графический API. Фильтр ключей используется Qt3DRender::QTechniqueFilter для выбора определённых техник в определённых частях FrameGraph. QParameter, определённый в QTechnique, переопределяет параметр (с тем же именем), определённый в QRenderPass, но переопределяется параметром в QRenderPassFilter, QTechniqueFilter, QMaterial и QEffect.
При создании 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.1/qt3drender-qtechnique.html