本页内容

Qt3DRender::QRenderStateSet Class

class Qt3DRender::QRenderStateSet

QRenderStateSetFrameGraph 节点提供了一种方法,用于指定在帧图分支执行期间要应用的一组QRenderState 对象。更多内容...

标题: #include <qrenderstateset.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
在 QML 中: RenderStateSet
继承自: Qt3DRender::QFrameGraphNode
状态: 已弃用

该类已弃用。我们强烈建议不要在新代码中使用它。

公共函数

void addRenderState(Qt3DRender::QRenderState *state)
void removeRenderState(Qt3DRender::QRenderState *state)
QList<Qt3DRender::QRenderState *> renderStates() const

详细说明

与可在QRenderPass 上设置的按材质状态不同,在QRenderStateSet上设置的状态是全局性的。默认情况下,空的QRenderStateSet在执行时会导致所有渲染状态被禁用。显式添加QRenderState 状态将在运行时启用该渲染状态。

将RenderStateSet 添加到活动帧图中时,它即被启用:

// using namespace Qt3DRender;

Qt3DCore::QEntity *rootEntity = new Qt3DCore::QEntity();

QRenderSettings *renderSettings = new QRenderSettings();

QViewport *viewport = new QViewport();
QCameraSelector *cameraSelector = new QCameraSelector(viewport);

QClearBuffers *clearBuffers = new QClearBuffers(cameraSelector);
clearBuffers->setBuffers(QClearBuffers::ColorDepthBuffer);

QRenderStateSet *renderStateSet = new QRenderStateSet(cameraSelector);
QCullFace *cullFace = new QCullFace(renderStateSet);
cullFace->setMode(QCullFace::Front);
renderStateSet->addRenderState(cullFace);

renderSettings->setActiveFrameGraph(viewport);

rootEntity->addComponent(renderSettings);

另请参阅 QRenderState 和QRenderPass 。

成员函数文档

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

向QRenderStateSet 实例添加一个新的QRenderState“state ”。

注意:若未在 QRenderStateSet 实例上设置任何 QRenderState 状态,则意味着在渲染时所有渲染状态都将被禁用。

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

从QRenderStateSet 实例中移除QRenderStatestate 。

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

返回构成QRenderStateSet 实例的QRenderState对象列表。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.