QRenderStateSet 类

class Qt3DRender::QRenderStateSet

QRenderStateSet FrameGraph 节点提供了一种指定要在帧图分支执行期间应用的一组 QRenderState 对象的方法。更多信息...

头文件 #include <QRenderStateSet>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmakeQT += 3drender
RenderStateSet 实例化 RenderStateSet
继承自 Qt3DRender::QFrameGraphNode

公共函数

voidaddRenderState(Qt3DRender::QRenderState *state)
voidremoveRenderState(Qt3DRender::QRenderState *state)
QList<Qt3DRender::QRenderState *>renderStates() const

详细说明

QRenderStateSet 上设置的状态是全局的,与可在 QRenderPass 上设置的单个材料状态不同。默认情况下,空的 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);

另请参阅QRenderStateQRenderPass

成员函数说明

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

将一个新的 QRenderState 状态 添加到 QRenderStateSet 实例。

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

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

QRenderStateSet 实例中删除 QRenderState 状态

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

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

© 2024 The Qt Company Ltd. 本文档中包含的贡献内容均为各自所有者的版权。提供的文档受免费软件开发基金会发布的GNU自由文档许可协议版本1.3的条款约束。Qt及其相关标志是芬兰及/或其他国家的The Qt Company Ltd.的商标。所有其他商标均为各自所有者的财产。