Класс 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 выполняет Qt3DRender::QShaderProgram с заданными Qt3DRender::QRenderState и Qt3DRender::QParameter узлами, когда хотя бы один из узлов Qt3DRender::QFilterKey, на которые ссылаются, совпадает с любым из узлов Qt3DRender::QFilterKey в Qt3DRender::QRenderPassFilter, или когда не заданы узлы Qt3DRender::QFilterKey и в FrameGraph отсутствует Qt3DRender::QRenderPassFilter.
Если QRenderPass определяет Qt3DRender::QParameter, он будет перезаписан Qt3DRender::QParameter с тем же именем, если он существует в любом из Qt3DRender::QTechnique, Qt3DRender::QEffect, Qt3DRender::QMaterial, Qt3DRender::QTechniqueFilter, Qt3DRender::QRenderPassFilter, связанных с проходом во время выполнения. Это все еще может быть полезно для определения разумных значений по умолчанию.
Во время рендеринга для каждого листового узла FrameGraph записывается базовый рендеринговый статус путем накопления статусов, определенных всеми узлами Qt3DRender::QRenderStateSet в ветви FrameGraph. Каждый QRenderPass может переопределять этот базовый статус рендеринга, указав свои собственные узлы Qt3DRender::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); См. также Qt3DRender::QRenderPassFilter, Qt3DRender::QFilterKey, Qt3DRender::QParameter, Qt3DRender::QRenderState, Qt3DRender::QEffect и Qt3DRender::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.1/qt3drender-qrenderpass.html