Spec-Zone.ru › Qt 6.1

Класс 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API