Qt3DRender::QRenderStateSet Class
class Qt3DRender::QRenderStateSetQRenderStateSetFrameGraph 节点提供了一种指定QRenderState 对象集的方法,这些对象集将在执行帧图分支时应用。更多
头文件: | #include <QRenderStateSet> |
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 |
详细说明
在 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);
另请参见 QRenderState 和QRenderPass 。
成员函数文档
void QRenderStateSet::addRenderState(Qt3DRender::QRenderState *state)
向QRenderStateSet 实例添加新的QRenderState state 。
注意: 不在QRenderStateSet 实例上设置任何QRenderState 状态,意味着在呈现时将禁用所有呈现状态。
void QRenderStateSet::removeRenderState(Qt3DRender::QRenderState *state)
从QRenderStateSet 实例中删除QRenderState state 。
QList<Qt3DRender::QRenderState *> QRenderStateSet::renderStates() const
返回构成QRenderStateSet 实例的QRenderState 对象列表。
© 2025 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.