QSSGRenderHelpers Class

类包含用于设置和呈现QtQuick3D 渲染器的辅助函数。更多

Header: #include <QSSGRenderHelpers>
Since: Qt 6.7

公共类型

enum class CreateFlag { None, Recurse, Steal }
flags CreateFlags

静态公共成员

QSSGPrepResultId commit(const QSSGFrameData &frameData, QSSGPrepContextId prepId, QSSGRenderablesId renderablesId, float lodThreshold = 1.0f)
QSSGRenderablesId createRenderables(const QSSGFrameData &frameData, QSSGPrepContextId prepId, const QSSGRenderHelpers::NodeList &nodes, QSSGRenderHelpers::CreateFlags flags = CreateFlag::None)
QSSGPrepContextId prepareForRender(const QSSGFrameData &frameData, const QSSGRenderExtension &ext, QSSGCameraId cameraId, quint32 slot = 0)
void prepareRenderables(const QSSGFrameData &frameData, QSSGPrepResultId prepId, QRhiRenderPassDescriptor *renderPassDescriptor, QSSGRhiGraphicsPipelineState &ps, QSSGRenderablesFilters filter = QSSGRenderablesFilter::All)
void renderRenderables(const QSSGFrameData &frameData, QSSGPrepResultId prepId)

详细说明

成员类型文档

枚举类 QSSGRenderHelpers::CreateFlag
flags QSSGRenderHelpers::CreateFlags

常量默认值。
QSSGRenderHelpers::CreateFlag::None0默认值。仅为指定的节点创建渲染对象。
QSSGRenderHelpers::CreateFlag::Recurse0x1为每个节点及其子节点创建可渲染文件。
QSSGRenderHelpers::CreateFlag::Steal0x2可渲染内容来自引擎,不会由QtQuick3D 渲染。

注意: 在未设置 {QSSGRenderHelpers::CreateFlag::Steal}{Steal} 标志的情况下调用QSSGRenderHelpers::createRenderables() 意味着节点会被复制,QtQuick3D 将正常渲染节点的副本。

CreateFlags 类型是QFlags<CreateFlag> 的类型定义。它存储 CreateFlag 值的 OR 组合。

成员函数文档

[static] QSSGPrepResultId QSSGRenderHelpers::commit(const QSSGFrameData &frameData, QSSGPrepContextId prepId, QSSGRenderablesId renderablesId, float lodThreshold = 1.0f)

一旦对呈现器进行了所需的更改,数据就可以标记为已准备好供呈现器使用。

返回准备结果的 id。

frameData,prepId,renderablesIdlodThreshold

另请参阅 prepareRenderables() 和renderRenderables()。

[static] QSSGRenderablesId QSSGRenderHelpers::createRenderables(const QSSGFrameData &frameData, QSSGPrepContextId prepId, const QSSGRenderHelpers::NodeList &nodes, QSSGRenderHelpers::CreateFlags flags = CreateFlag::None)

获取节点 id 列表,并创建可由呈现器进一步处理的呈现对象。如果列表中没有节点或没有可呈现的节点,返回的 id 将无效。

默认情况下,该函数不会向下递归,而是将nodes 的子节点包含在列表中。可以通过在flags 参数中传递Recurse 标志来启用递归功能。

返回已创建的可呈现元素的 id。

frameData,prepId

另请参阅 CreateFlagsprepareForRender()。

[static] QSSGPrepContextId QSSGRenderHelpers::prepareForRender(const QSSGFrameData &frameData, const QSSGRenderExtension &ext, QSSGCameraId cameraId, quint32 slot = 0)

prepareForRender() 创建了一个上下文,用于收集和存储与此渲染扩展相关的渲染数据信息。

如果同一个节点要渲染多次,但属性不同,例如使用不同的材质或相机,那么就需要创建一个新的上下文。要为一个扩展创建多个上下文,可以使用slot 参数。默认上下文创建在槽0 中。

返回预创建上下文的 ID。

frameData,extcameraId

另请参阅 commit().

[static] void QSSGRenderHelpers::prepareRenderables(const QSSGFrameData &frameData, QSSGPrepResultId prepId, QRhiRenderPassDescriptor *renderPassDescriptor, QSSGRhiGraphicsPipelineState &ps, QSSGRenderablesFilters filter = QSSGRenderablesFilter::All)

在调用renderRenderables 之前,为呈现器准备所需的绘制调用数据。

返回准备结果的 id。

frameData,renderPassDescriptor,ps,prepIdfilter

另请参阅 renderRenderables() 。

[static] void QSSGRenderHelpers::renderRenderables(const QSSGFrameData &frameData, QSSGPrepResultId prepId)

渲染可呈现物。

frameData,prepId

另请参见 prepareRenderables().

© 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.