本页内容

Qt3DRender::QGeometryRenderer Class

class Qt3DRender::QGeometryRenderer

封装了几何体渲染功能。更多内容...

标题: #include <qgeometryrenderer.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
在 QML 中: GeometryRenderer
继承自: Qt3DCore::QBoundingVolume
被继承者:

Qt3DExtras::QConeMesh、Qt3DExtras::QCuboidMesh 、Qt3DExtras::QCylinderMesh 、Qt3DExtras::QExtrudedTextMesh 、Qt3DExtras::QPlaneMesh 、Qt3DExtras::QSphereMesh 、Qt3DExtras::QTorusMesh 以及Qt3DRender::QMesh

状态: 已弃用

该类已弃用。我们强烈建议不要在新代码中使用它。

公共类型

enum PrimitiveType { Points, Lines, LineLoop, LineStrip, Triangles, …, Patches }

属性

公共函数

QGeometryRenderer(Qt3DCore::QNode *parent = nullptr)
int firstInstance() const
int firstVertex() const
Qt3DCore::QGeometry *geometry() const
int indexBufferByteOffset() const
int indexOffset() const
int instanceCount() const
bool primitiveRestartEnabled() const
Qt3DRender::QGeometryRenderer::PrimitiveType primitiveType() const
int restartIndexValue() const
float sortIndex() const
int vertexCount() const
int verticesPerPatch() const

公共槽位

void setFirstInstance(int firstInstance)
void setFirstVertex(int firstVertex)
void setGeometry(Qt3DCore::QGeometry *geometry)
void setIndexBufferByteOffset(int offset)
void setIndexOffset(int indexOffset)
void setInstanceCount(int instanceCount)
void setPrimitiveRestartEnabled(bool enabled)
void setPrimitiveType(Qt3DRender::QGeometryRenderer::PrimitiveType primitiveType)
void setRestartIndexValue(int index)
void setSortIndex(float sortIndex)
void setVertexCount(int vertexCount)
void setVerticesPerPatch(int verticesPerPatch)

信号

void firstInstanceChanged(int firstInstance)
void firstVertexChanged(int firstVertex)
void geometryChanged(Qt3DCore::QGeometry *geometry)
void indexBufferByteOffsetChanged(int offset)
void indexOffsetChanged(int indexOffset)
void instanceCountChanged(int instanceCount)
void primitiveRestartEnabledChanged(bool primitiveRestartEnabled)
void primitiveTypeChanged(Qt3DRender::QGeometryRenderer::PrimitiveType primitiveType)
void restartIndexValueChanged(int restartIndexValue)
void sortIndexChanged(float sortIndex)
void vertexCountChanged(int vertexCount)
void verticesPerPatchChanged(int verticesPerPatch)

详细说明

Qt3DRender::QGeometryRenderer 包含绘制Qt3DCore::QGeometry 所需的所有信息。QGeometry 包含几何数据的坐标,而 QGeometryRenderer 则指定了如何解释这些数据。

成员类型文档

enum QGeometryRenderer::PrimitiveType

该基本类型的类型。

常量值描述
Qt3DRender::QGeometryRenderer::Points0x0000点列表
Qt3DRender::QGeometryRenderer::Lines0x0001线段列表
Qt3DRender::QGeometryRenderer::LineLoop0x0002两端相连、形成闭合环的连通线段组
Qt3DRender::QGeometryRenderer::LineStrip0x0003相连的线段组
Qt3DRender::QGeometryRenderer::Triangles0x0004三角形列表
Qt3DRender::QGeometryRenderer::TriangleStrip0x0005连通三角形列表
Qt3DRender::QGeometryRenderer::TriangleFan0x0006所有三角形均共享第一个顶点的连通三角形列表
Qt3DRender::QGeometryRenderer::LinesAdjacency0x000A允许几何着色器访问线列表中的相邻线段
Qt3DRender::QGeometryRenderer::TrianglesAdjacency0x000C允许几何着色器访问线列表中的相邻线段
Qt3DRender::QGeometryRenderer::LineStripAdjacency0x000B允许几何着色器访问线带中的相邻线段
Qt3DRender::QGeometryRenderer::TriangleStripAdjacency0x000D允许几何着色器访问线段带中的相邻三角形
Qt3DRender::QGeometryRenderer::Patches0x000E仅限镶嵌着色器接受的原始类型,其中每个补丁由任意数量的顶点组成

属性文档

firstInstance : int

保存基础实例。

访问函数:

int firstInstance() const
void setFirstInstance(int firstInstance)

通知器信号:

void firstInstanceChanged(int firstInstance)

firstVertex : int

存储基点顶点。

访问函数:

int firstVertex() const
void setFirstVertex(int firstVertex)

通知信号:

void firstVertexChanged(int firstVertex)

geometry : Qt3DCore::QGeometry*

存储几何信息。

访问函数:

Qt3DCore::QGeometry *geometry() const
void setGeometry(Qt3DCore::QGeometry *geometry)

通知信号:

void geometryChanged(Qt3DCore::QGeometry *geometry)

indexBufferByteOffset : int

存储索引缓冲区中的字节偏移量。

访问函数:

int indexBufferByteOffset() const
void setIndexBufferByteOffset(int offset)

通知器信号:

void indexBufferByteOffsetChanged(int offset)

indexOffset : int

存储基点。

访问函数:

int indexOffset() const
void setIndexOffset(int indexOffset)

通知信号:

void indexOffsetChanged(int indexOffset)

instanceCount : int

存储实例计数。

访问函数:

int instanceCount() const
void setInstanceCount(int instanceCount)

通知器信号:

void instanceCountChanged(int instanceCount)

primitiveRestartEnabled : bool

保存原始重启标志。

访问函数:

bool primitiveRestartEnabled() const
void setPrimitiveRestartEnabled(bool enabled)

通知器信号:

void primitiveRestartEnabledChanged(bool primitiveRestartEnabled)

primitiveType : PrimitiveType

存储基本类型。

访问函数:

Qt3DRender::QGeometryRenderer::PrimitiveType primitiveType() const
void setPrimitiveType(Qt3DRender::QGeometryRenderer::PrimitiveType primitiveType)

通知器信号:

void primitiveTypeChanged(Qt3DRender::QGeometryRenderer::PrimitiveType primitiveType)

restartIndexValue : int

存储重启索引。

访问函数:

int restartIndexValue() const
void setRestartIndexValue(int index)

通知信号:

void restartIndexValueChanged(int restartIndexValue)

[since 6.0] sortIndex : float

在启用深度排序时,覆盖排序索引。

如果在帧图上启用了深度排序,渲染器将根据边界体积的中心与摄像机的距离对对象进行排序,并按从远到近的顺序渲染对象。

此属性可用于覆盖深度索引,并精确控制对象的渲染顺序。当所有对象与摄像机的物理距离相同时,此功能非常有用。

具体数值本身并不重要,关键在于它们定义了对象的排序顺序。排序时,数值最小的对象首先被绘制,其次是数值次小的对象,依此类推。

注意:将 此属性设置为 -1.f 将禁用该实体的显式排序,并恢复使用与包围体中心的距离进行排序。

该枚举类型在 Qt 6.0 中引入。

访问函数:

float sortIndex() const
void setSortIndex(float sortIndex)

通知器信号:

void sortIndexChanged(float sortIndex)

另请参阅 Qt3DRender::QSortPolicy 。

vertexCount : int

存储原始计数。

访问函数:

int vertexCount() const
void setVertexCount(int vertexCount)

通知器信号:

void vertexCountChanged(int vertexCount)

verticesPerPatch : int

每个补丁包含的顶点数。

访问函数:

int verticesPerPatch() const
void setVerticesPerPatch(int verticesPerPatch)

通知器信号:

void verticesPerPatchChanged(int verticesPerPatch)

成员函数文档

[explicit] QGeometryRenderer::QGeometryRenderer(Qt3DCore::QNode *parent = nullptr)

使用parent 创建一个新的QGeometryRenderer。

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