Spec-Zone.ru › Qt 6.0

Класс QRenderPass

класс Qt3DRender::QRenderPass

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

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

Свойства

  • shaderProgram : Qt3DRender::QShaderProgram*

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

QRenderPass(Qt3DCore::QNode *parent = nullptr)
void addFilterKey(Qt3DRender::QFilterKey *filterKey)
void addParameter(Qt3DRender::QParameter *parameter)
void addRenderState(Qt3DRender::QRenderState *state)
QList<Qt3DRender::QFilterKey *> filterKeys() const
QList<Qt3DRender::QParameter *> parameters() const
void removeFilterKey(Qt3DRender::QFilterKey *filterKey)
void removeParameter(Qt3DRender::QParameter *parameter)
void removeRenderState(Qt3DRender::QRenderState *state)
QList<Qt3DRender::QRenderState *> renderStates() const
Qt3DRender::QShaderProgram * shaderProgram() const

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

void setShaderProgram(Qt3DRender::QShaderProgram *shaderProgram)

Сигналы

void shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram)

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

ParameterList

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

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

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

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

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

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

void shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram)

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

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

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

void QRenderPass::addFilterKey(Qt3DRender::QFilterKey *filterKey)

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

void QRenderPass::addParameter(Qt3DRender::QParameter *parameter)

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

void QRenderPass::addRenderState(Qt3DRender::QRenderState *state)

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

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

QList<Qt3DRender::QFilterKey *> QRenderPass::filterKeys() const

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

QList<Qt3DRender::QParameter *> QRenderPass::parameters() const

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

void QRenderPass::removeFilterKey(Qt3DRender::QFilterKey *filterKey)

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

void QRenderPass::removeParameter(Qt3DRender::QParameter *parameter)

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

void QRenderPass::removeRenderState(Qt3DRender::QRenderState *state)

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

QList<Qt3DRender::QRenderState *> QRenderPass::renderStates() const

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

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

[alias] ParameterList

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

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

Spec-Zone.ru

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