本页内容

QSSGRenderHelpers Class

包含用于设置和渲染QtQuick3D 可渲染对象的辅助函数的类。更多...

Header: #include <qssgrenderhelpers.h>
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 QSSGNodeIdList &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)

详细说明

成员类型文档

enum class 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> 的 typedef。它存储 CreateFlag 值的按“或”运算组合。

成员函数文档

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

对可渲染对象完成必要的修改后,即可将数据标记为已准备就绪,供渲染器使用。

返回一个标识符,表示准备结果。

frameData,prepId,renderablesId,lodThreshold

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

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

接受一个节点 ID 列表,并创建可供渲染器进一步处理的可渲染对象。如果列表中没有节点,或者没有可渲染的节点,则返回的 ID 将无效。

默认情况下,该函数不会递归遍历nodes ,也不会将其中包含的子节点加入列表。若要启用递归,可在flags 参数中传入Recurse 标志。

返回所创建的可渲染对象的 ID。

frameData,prepId

另请参阅 CreateFlags 和prepareForRender()。

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

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

如果需要对同一组节点进行多次渲染,但每次渲染的属性不同(例如材质或摄像机不同),则需要创建一个新的上下文。若要为一个扩展创建多个上下文,可以使用 `slot ` 参数。默认上下文将创建在槽位0 中。

返回预处理上下文的 ID。

frameData,ext,cameraId

另请参阅 commit()。

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

在调用renderRenderables 之前,请为可渲染对象准备所需的绘制调用数据。

返回一个表示准备结果的 ID。

frameData,renderPassDescriptor,ps,prepId,filter

另请参阅 renderRenderables()。

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

渲染可渲染对象。

frameData,prepId

另请参阅 prepareRenderables()。

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