Класс 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.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qt3drender-qrenderpass.html