Spec-Zone.ru › Qt 5.9

Класс QRenderPass

(Qt3DRender::QRenderPass)

Оборачивает проход рендеринга. Подробнее...

Заголовок: #include <QRenderPass>
qmake: QT += 3drender
С момента: Qt 5.7
Инициализируется: RenderPass
Наследуется от: Qt3DCore::QNode
  • Список всех членов, включая унаследованные

Свойства

  • shaderProgram : Qt3DRender::QShaderProgram *
  • 3 свойства унаследованы от Qt3DCore::QNode
  • 1 свойство унаследовано от QObject

Открытые функции

QRenderPass(Qt3DCore::QNode *parent = nullptr)
void addFilterKey(QFilterKey *filterKey)
void addParameter(QParameter *parameter)
void addRenderState(QRenderState *state)
QVector<QFilterKey *> filterKeys() const
QVector<QParameter *> parameters() const
void removeFilterKey(QFilterKey *filterKey)
void removeParameter(QParameter *parameter)
void removeRenderState(QRenderState *state)
QVector<QRenderState *> renderStates() const
QShaderProgram * shaderProgram() const
  • 11 открытых функций унаследованы от Qt3DCore::QNode
  • 32 открытых функции унаследованы от QObject

Открытые слоты

void setShaderProgram(QShaderProgram *shaderProgram)
  • 3 открытых слота унаследованы от Qt3DCore::QNode
  • 1 открытый слот унаследован от QObject

Сигналы

void shaderProgramChanged(QShaderProgram *shaderProgram)
  • 4 сигнала унаследованы от Qt3DCore::QNode
  • 2 сигнала унаследованы от QObject

Защищённые функции

QRenderPass(QRenderPassPrivate &dd, Qt3DCore::QNode *parent = nullptr)
  • 2 защищённые функции унаследованы от Qt3DCore::QNode
  • 9 защищённые функции унаследованы от QObject

Связанные нечлены

typedef ParameterList

Дополнительные унаследованные члены

  • 11 статических открытых членов унаследованы от QObject

Подробное описание

Оборачивает проход рендеринга.

Класс Qt3DRender::QRenderPass определяет один проход рендеринга — экземпляр выполнения программы шейдера — используемый классом Qt3DRender::QTechnique. Проход рендеринга состоит из программы шейдера Qt3DRender::QShaderProgram и списка объектов Qt3DRender::QFilterKey, списка объектов Qt3DRender::QRenderState и списка объектов Qt3DRender::QParameter.

QRenderPass выполняет QShaderProgram с использованием указанных QRenderState и QParameter узлов, когда хотя бы один из узлов QFilterKey , на который есть ссылка, соответствует любому из узлов QFilterKey в QRenderPassFilter, или когда узлы QFilterKey не указаны и в FrameGraph нет QRenderPassFilter.

Если QRenderPass определяет QParameter, он будет переопределен QParameter с тем же именем, если он существует в QTechnique, QEffect, QMaterial, QTechniqueFilter, QRenderPassFilter, связанных с проходом во время выполнения. Это все еще может быть полезно для определения разумных значений по умолчанию.

Во время рендеринга для каждого листового узла FrameGraph записывается базовый состояние рендеринга, накапливая состояния, определенные всеми узлами QRenderStateSet в ветви FrameGraph. Каждый QRenderPass может переопределить это базовое состояние рендеринга, указав свои собственные узлы QRenderState.

// Create the render passes
QRenderPass *pass = new QRenderPass();

// Create shader program
QShaderProgram *glShader = new QShaderProgram();

// Set the shader on the render pass
pass->setShaderProgram(glShader);

// Create a FilterKey
QFilterKey *filterKey = new QFilterKey();
filterKey->setName(QStringLiteral("name"));
fitlerKey->setValue(QStringLiteral("zFillPass"));

// Add the FilterKey to the pass
pass->addFilterKey(filterKey);

// Create a QParameter
QParameter *colorParameter = new QParameter(QStringLiteral("color"), QColor::fromRgbF(0.0f, 0.0f, 1.0f, 1.0f));

// Add parameter to pass
pass->addParameter(colorParameter);

// Create a QRenderState
QDepthTest *depthTest = new QDepthTest();

// Add the render state to the pass
pass->addRenderState(depthTest);

См. также QRenderPassFilter, QFilterKey, QParameter, QRenderState, QEffect и QTechnique.

Документация по свойствам

shaderProgram : Qt3DRender::QShaderProgram *

Указывает программу шейдера, используемую для этого прохода рендеринга.

Функции доступа:

QShaderProgram * shaderProgram() const
void setShaderProgram(QShaderProgram *shaderProgram)

Сигнал уведомления:

void shaderProgramChanged(QShaderProgram *shaderProgram)

Документация по членам-функциям

QRenderPass::QRenderPass(Qt3DCore::QNode *parent = nullptr)

Создает новый QRenderPass с указанным parent.

[protected] QRenderPass::QRenderPass(QRenderPassPrivate &dd, Qt3DCore::QNode *parent = nullptr)

Конструктор копирования.

void QRenderPass::addFilterKey(QFilterKey *filterKey)

Добавляет filterKey в локальные ключи фильтра Qt3DRender::QRenderPass.

void QRenderPass::addParameter(QParameter *parameter)

Добавляет parameter в параметры прохода рендеринга.

void QRenderPass::addRenderState(QRenderState *state)

Добавляет состояние рендеринга state к проходу рендеринга. Это означает, что при выполнении прохода во время рендеринга глобальное состояние рендеринга будет модифицировано состояниями, определенными локально классом Qt3DRender::QRenderPass.

Примечание: если в проходе не определено ни одного состояния Qt3DRender::QRenderState, для данного пути выполнения ветви FrameGraph будет использоваться глобально заданное состояние рендеринга.

QVector<QFilterKey *> QRenderPass::filterKeys() const

Возвращает список объектов Qt3DRender::QFilterKey, составляющих ключевые объекты фильтра Qt3DRender::QRenderPass.

QVector<QParameter *> QRenderPass::parameters() const

Возвращает вектор текущих параметров прохода рендеринга.

void QRenderPass::removeFilterKey(QFilterKey *filterKey)

Удаляет filterKey из локальных ключевых объектов фильтра Qt3DRender::QRenderPass.

void QRenderPass::removeParameter(QParameter *parameter)

Удаляет parameter из параметров прохода рендеринга.

void QRenderPass::removeRenderState(QRenderState *state)

Удаляет state из локального состояния рендеринга Qt3DRender::QRenderPass.

QVector<QRenderState *> QRenderPass::renderStates() const

Возвращает список объектов состояния Qt3DRender::QRenderState, составляющих состояние рендеринга Qt3DRender::QRenderPass.

Связанные нечлены

typedef Qt3DRender::ParameterList

Список параметров Qt3DRender::QParameter.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qt3drender-qrenderpass.html

Spec-Zone.ru

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