class QLevelOfDetail#

QLevelOfDetail 类提供了一种基于屏幕上实体大小控制渲染实体复杂性方法。 更多

Inheritance diagram of PySide6.Qt3DRender.Qt3DRender.QLevelOfDetail

继承自: QLevelOfDetailSwitch

摘要#

属性#

方法#

#

信号#

注意

此文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译存在问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述#

QLevelOfDetail 可用于根据观察者距离或屏幕尺寸控制实体的表示。

为了提高渲染性能,非常小的对象可以使用较少的细节进行渲染,包括几何或纹理。

该组件通过指定作为距离或屏幕尺寸的解释的阈值来控制。

随着视点的变化,currentIndex 属性将更改,以反映范围数组中的匹配值。

然后可以使用currentIndex 属性,例如启用或禁用实体,更改材质等。

LevelOfDetail 组件不能在多个 实体 之间共享。

 #include <Qt3DCore/QEntity>
 #include <Qt3DRender/QGeometryRenderer>
 #include <Qt3DRender/QLevelOfDetail>

// Scene
Qt3DCore::QEntity *rootEntity = new Qt3DCore::Qt3DCore::QEntity;

Qt3DCore::QEntity *renderableEntity = new Qt3DCore::QEntity(rootEntity);
Qt3DRender::QGeometryRenderer *geometryRenderer = new Qt3DCore::QGeometryRenderer(renderableEntity);
renderableEntity->addComponent(geometryRenderer);
Qt3DRender::QLevelOfDetail* lod = new Qt3Render::QLevelOfDetail(renderableEntity);
QList<qreal> thresholds = {20, 35, 50, 65};
lod->setThresholds(thresholds);
lod->setCamera(mainCamera);
renderableEntity->addComponent(lod);

// connect to QLevelOfDetail::currentIndexChanged to toggle rendering
...
class ThresholdType#

指定如何解释阈值中的值。

常量

描述

Qt3DRender.QLevelOfDetail.DistanceToCameraThreshold

实体到选择相机的距离

Qt3DRender.QLevelOfDetail.ProjectedScreenPixelSizeThreshold

从所选相机看,当实体投影到屏幕上时的大小,以屏幕空间中边界矩形的边的像素数表示。

注意

当使用from __feature__ import true_property 使用时,可以直接使用属性,否则通过存取函数进行。

property cameraᅟ: QCamera#

包含用于计算实际距离或屏幕尺寸的相机的id。

存取函数
property currentIndexᅟ: int#

在范围数组中与当前距离相机或屏幕尺寸匹配的索引。

存取函数
property thresholdTypeᅟ: Qt3DRender.QLevelOfDetail.ThresholdType#

指定范围值如何解释。

另请参阅

ThresholdType

存取函数
属性thresholds: qreal 列表#

范围值的数组,以浮点数形式表示。最详细表示的值应首先指定。

如果 thresholdType 设置为 DistanceToCameraThreshold ,则应按顺序在相机空间坐标中指定值

如果 thresholdType 设置为 ProjectedScreenPixelSizeThreshold ,则应按降序在屏幕空间像素中指定值

另请参阅

ThresholdType

存取函数
属性volumeOverride: QLevelOfDetailBoundingSphere#

默认情况下是一个半径为1、以实体局部原点为中心的球体。此代理体积用于计算到相机的距离或屏幕投影的大小。

如果此值设置为nullptr,则使用实体的边界体积。必须注意,此边界体积永远不会变为无效。

另请参阅

QLevelOfDetailBoundingSphere

存取函数
__init__([parent=None])#
参数:

parentQNode

使用指定的 parent 构造一个新的 QLevelOfDetail

camera()#
返回类型:

QCamera

另请参阅

setCamera()

属性 camera 的获取器。

cameraChanged(camera)#
参数:

cameraQCamera

属性 camera 的通知信号。

createBoundingSphere(center, radius)#
参数:
返回类型:

QLevelOfDetailBoundingSphere

currentIndex()#
返回类型:

int

另请参阅

setCurrentIndex()

属性 currentIndex 的获取器。

currentIndexChanged(currentIndex)#
参数:

currentIndex - int

属性 currentIndex 的通知信号。

setCamera(camera)#
参数:

cameraQCamera

设置与距离和大小相关的 camera

另请参阅

camera()

属性 camera 的设置器。

setCurrentIndex(currentIndex)#
参数:

currentIndex - int

设置 currentIndex

注意

通常情况下,用户不应该设置此项。

然而,如果组件被禁用,则更改当前索引是切换多个表示的简单方法。

另请参阅

currentIndex()

属性 currentIndex 的设置器。

setThresholdType(thresholdType)#
参数:

thresholdType - ThresholdType

使用参数 thresholdType 设置阈值值解释的方法。

另请参阅

thresholdType() ThresholdType

属性 thresholdType 的设置器。

setThresholds(thresholds)#
参数:

thresholds - .实数列表

thresholds 中设置范围值。

另请参阅

thresholds() thresholdType

属性 thresholdsᅟ 的设置器。

setVolumeOverride(volumeOverride)#
参数:

volumeOverrideQLevelOfDetailBoundingSphere

另请参阅

volumeOverride()

属性 volumeOverrideᅟ 的设置器。

thresholdType()#
返回类型:

ThresholdType

另请参阅

setThresholdType()

属性 thresholdTypeᅟ 的获取器。

thresholdTypeChanged(thresholdType)#
参数:

thresholdType - ThresholdType

属性 thresholdTypeᅟ 的通知信号。

thresholds()#
返回类型:

.桂实列表

另请参阅

setThresholds()

属性 thresholdsᅟ 的获取器。

thresholdsChanged(thresholds)#
参数:

thresholds - .实数列表

属性 thresholdsᅟ 的通知信号。

volumeOverride()#
返回类型:

QLevelOfDetailBoundingSphere

另请参阅

setVolumeOverride()

属性 volumeOverrideᅟ 的获取器。

volumeOverrideChanged(volumeOverride)#
参数:

volumeOverrideQLevelOfDetailBoundingSphere

属性 volumeOverrideᅟ 的通知信号。