- class QLevelOfDetail#
QLevelOfDetail
类提供了一种基于屏幕上实体大小控制渲染实体复杂性方法。 更多…继承自:
QLevelOfDetailSwitch
摘要#
属性#
方法#
def
__init__()
def
camera()
def
currentIndex()
def
thresholdType()
def
thresholds()
def
volumeOverride()
槽#
def
setCamera()
def
setThresholds()
信号#
注意
此文档可能包含从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
使用时,可以直接使用属性,否则通过存取函数进行。包含用于计算实际距离或屏幕尺寸的相机的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])#
- 参数:
parent –
QNode
使用指定的
parent
构造一个新的QLevelOfDetail
。- camera()#
- 返回类型:
QCamera
另请参阅
setCamera()
属性
camera
的获取器。- cameraChanged(camera)#
- 参数:
camera –
QCamera
属性
camera
的通知信号。- createBoundingSphere(center, radius)#
- 参数:
center -
QVector3D
radius - float
- 返回类型:
QLevelOfDetailBoundingSphere
- currentIndex()#
- 返回类型:
int
另请参阅
setCurrentIndex()
属性
currentIndex
的获取器。- currentIndexChanged(currentIndex)#
- 参数:
currentIndex - int
属性
currentIndex
的通知信号。- setCamera(camera)#
- 参数:
camera –
QCamera
设置与距离和大小相关的
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)#
- 参数:
volumeOverride –
QLevelOfDetailBoundingSphere
另请参阅
volumeOverride()
属性
volumeOverrideᅟ
的设置器。- thresholdType()#
- 返回类型:
ThresholdType
另请参阅
setThresholdType()
属性
thresholdTypeᅟ
的获取器。- thresholdTypeChanged(thresholdType)#
- 参数:
thresholdType -
ThresholdType
属性
thresholdTypeᅟ
的通知信号。- thresholds()#
- 返回类型:
.桂实列表
另请参阅
setThresholds()
属性
thresholdsᅟ
的获取器。- thresholdsChanged(thresholds)#
- 参数:
thresholds - .实数列表
属性
thresholdsᅟ
的通知信号。- volumeOverride()#
- 返回类型:
QLevelOfDetailBoundingSphere
另请参阅
setVolumeOverride()
属性
volumeOverrideᅟ
的获取器。- volumeOverrideChanged(volumeOverride)#
- 参数:
volumeOverride –
QLevelOfDetailBoundingSphere
属性
volumeOverrideᅟ
的通知信号。