Класс QTechnique
(Qt3DRender::QTechnique)Оборачивает технику. Подробнее...
| Заголовок: | #include <QTechnique> |
| qmake: | QT += 3drender |
| С момента: | Qt 5.7 |
| Инициализируется: | Technique |
| Наследуется от: | Qt3DCore::QNode |
Свойства
- graphicsApiFilter : Qt3DRender::QGraphicsApiFilter * const
- 3 свойства унаследованы от Qt3DCore::QNode
- 1 свойство унаследовано от QObject
Открытые функции
| QTechnique(Qt3DCore::QNode *parent = nullptr) | |
| void | addFilterKey(QFilterKey *filterKey) |
| void | addParameter(QParameter *parameter) |
| void | addRenderPass(QRenderPass *pass) |
| QVector<QFilterKey *> | filterKeys() const |
| QGraphicsApiFilter * | graphicsApiFilter() |
| QVector<QParameter *> | parameters() const |
| void | removeFilterKey(QFilterKey *filterKey) |
| void | removeParameter(QParameter *parameter) |
| void | removeRenderPass(QRenderPass *pass) |
| QVector<QRenderPass *> | renderPasses() const |
- 11 открытых функций унаследованы от Qt3DCore::QNode
- 32 открытых функции унаследованы от QObject
Защищенные функции
| QTechnique(QTechniquePrivate &dd, Qt3DCore::QNode *parent = nullptr) |
- 2 защищенных функции унаследованы от Qt3DCore::QNode
- 9 защищенных функций унаследованы от QObject
Дополнительные унаследованные члены
- 3 открытых слота унаследованы от Qt3DCore::QNode
- 1 открытый слот унаследован от QObject
- 4 сигналов унаследованы от Qt3DCore::QNode
- 2 сигнала унаследованы от QObject
- 11 статических открытых членов унаследованы от QObject
Подробное описание
Оборачивает технику.
Qt3DRender::QTechnique задает набор объектов Qt3DRender::QRenderPass, Qt3DRender::QFilterKey, Qt3DRender::QParameter и Qt3DRender::QGraphicsApiFilter, которые вместе определяют технику рендеринга, которую может выполнить данный графический API. Фильтры ключей используются Qt3DRender::QTechniqueFilter для выбора определенных техник в определенных частях FrameGraph. Если два объекта QParameter с одинаковым именем указаны в QTechnique и QRenderPass, то тот, что в QTechnique, имеет приоритет по отношению к используемому в 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 *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
Функции доступа:
| QGraphicsApiFilter * | graphicsApiFilter() |
Документация по членам-функциям
QTechnique::QTechnique(Qt3DCore::QNode *parent = nullptr)
Конструктор по умолчанию.
[protected] QTechnique::QTechnique(QTechniquePrivate &dd, Qt3DCore::QNode *parent = nullptr)
Копирующий конструктор.
void QTechnique::addFilterKey(QFilterKey *filterKey)
Добавляет filterKey к локальным фильтрам ключей Qt3DRender::QTechnique.
void QTechnique::addParameter(QParameter *parameter)
Добавляет parameter к параметрам техники.
void QTechnique::addRenderPass(QRenderPass *pass)
Добавляет проход pass в технику.
QVector<QFilterKey *> QTechnique::filterKeys() const
Возвращает список объектов Qt3DCore::QFilterKey, составляющих фильтры ключей Qt3DRender::QTechnique.
QVector<QParameter *> QTechnique::parameters() const
Возвращает вектор текущих параметров техники.
void QTechnique::removeFilterKey(QFilterKey *filterKey)
Удаляет filterKey из локальных фильтров ключей Qt3DRender::QTechnique.
void QTechnique::removeParameter(QParameter *parameter)
Удаляет parameter из параметров техники.
void QTechnique::removeRenderPass(QRenderPass *pass)
Удаляет проход pass из техники.
QVector<QRenderPass *> QTechnique::renderPasses() const
Возвращает список проходов рендеринга, содержащихся в технике.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qt3drender-qtechnique.html