QNoDraw 类

class Qt3DRender::QNoDraw

当一个 Qt3DRender::QNoDraw 节点存在于 FrameGraph 分支中时,这将阻止渲染器渲染任何原始图形。 更多...

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

公共函数

QNoDraw(Qt3DCore::QNode *parent = nullptr)

详细描述

Qt3DRender::QNoDraw 应在 FrameGraph 需要设置一些渲染状态或清除一些缓冲区,而不需要绘制任何网格时使用。它具有与拥有不匹配场景中任何可用 Qt3DRender::QRenderPass 实例的 Qt3DRender::QRenderPassFilter 相同的效果,但实际上进行过滤的开销很低。

当禁用时,一个 Qt3DRender::QNoDraw 节点不会阻止场景渲染。因此,切换启用属性是一个使 Qt3DRender::QNoDraw 激活或不活跃的方法。

通常将 Qt3DRender::QNoDraw 作为 Qt3DRendeR::QClearBuffers 节点的子节点使用,以防止在存在多个渲染通道时绘制场景。

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

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

Qt3DRender::QNoDraw *noDraw = new Qt3DRender::QNoDraw(clearBuffers);

Qt3DRender::QRenderPassFilter *mainPass = new Qt3DRender::QRenderPassFilter(cameraSelector);
....
Qt3DRender::QRenderPassFilter *previewPass = new Qt3DRender::QRenderPassFilter(cameraSelector);
....

成员函数文档

[显式] QNoDraw::QNoDraw(Qt3DCore::QNode *parent = nullptr)

构造函数创建具有指定 parent 的实例。

© 2024 The Qt Company Ltd. 本文档中的文档贡献是各自所有者的版权。本提供的文档由自由软件基金会根据 GNU 自由文档许可协议版本 1.3 许可。Qt 及其相关标志是 The Qt Company Ltd. 在芬兰和/或世界其他地区的商标。所有其他商标均为其各自所有者的财产。