Spec-Zone.ru › Qt

Класс 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 не указаны, а QRenderPassFilter отсутствует в FrameGraph.

Если 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.2/qt3drender-qrenderpass.html

Spec-Zone.ru

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