PySide6.Qt3DRender.Qt3DRender.QLevelOfDetail¶
- 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。
- Access functions:
- property currentIndexᅟ: int¶
范围数组中与当前距离到相机或屏幕大小匹配的索引。
- Access functions:
- property thresholdTypeᅟ: Qt3DRender.QLevelOfDetail.ThresholdType¶
指定如何解释范围值。
另请参阅
ThresholdType- Access functions:
- property thresholdsᅟ: list of qreal¶
范围值的数组,作为浮点数。最详细的表示值应首先指定。
如果
thresholdType设置为DistanceToCameraThreshold,则值应按升序指定,以相机空间坐标为单位如果
thresholdType设置为ProjectedScreenPixelSizeThreshold,则值应按降序指定,单位为屏幕空间像素。另请参阅
ThresholdType- Access functions:
- property volumeOverrideᅟ: QLevelOfDetailBoundingSphere¶
默认情况下,它是一个半径为1的球体,位于实体的局部原点。此代理体积用于计算到摄像机的距离或屏幕投影的大小。
如果此值为nullptr,则使用实体的边界体积。必须注意确保此边界体积永远不会失效。
另请参阅
QLevelOfDetailBoundingSphere- Access functions:
- __init__([parent=None])¶
- Parameters:
parent –
QNode
使用指定的
parent构造一个新的QLevelOfDetail。- camera()¶
- Return type:
QCamera
另请参阅
setCamera()
属性
cameraᅟ的获取器。- cameraChanged(camera)¶
- Parameters:
相机 –
QCamera
属性
cameraᅟ的通知信号。- createBoundingSphere(center, radius)¶
- Parameters:
center –
QVector3Dradius – 浮点数
- Return type:
QLevelOfDetailBoundingSphere
- currentIndex()¶
- Return type:
整数
另请参阅
setCurrentIndex()
属性
currentIndexᅟ的获取器。- currentIndexChanged(currentIndex)¶
- Parameters:
currentIndex – int
属性
currentIndexᅟ的通知信号。- setCamera(camera)¶
- Parameters:
相机 –
QCamera
设置
camera,相对于它计算距离和大小。另请参阅
camera()属性
cameraᅟ的设置器。- setCurrentIndex(currentIndex)¶
- Parameters:
currentIndex – int
设置
currentIndex。注意
这通常不应由用户设置。
然而,如果组件被禁用,那么更改当前索引是在多个表示之间切换的简单方法。
另请参阅
currentIndex()属性
currentIndexᅟ的设置器。- setThresholdType(thresholdType)¶
- Parameters:
thresholdType –
ThresholdType
设置阈值值的解释方式,使用参数
thresholdType另请参阅
thresholdType()ThresholdType属性
thresholdTypeᅟ的设置器。- setThresholds(thresholds)¶
- Parameters:
thresholds – qreal 的列表
设置
thresholds中的范围值。另请参阅
thresholds()thresholdType属性
thresholdsᅟ的设置器。- setVolumeOverride(volumeOverride)¶
- Parameters:
volumeOverride –
QLevelOfDetailBoundingSphere
另请参阅
volumeOverride()
属性
volumeOverrideᅟ的设置器。- thresholdType()¶
- Return type:
ThresholdType
另请参阅
setThresholdType()
属性
thresholdTypeᅟ的获取器。- thresholdTypeChanged(thresholdType)¶
- Parameters:
thresholdType –
ThresholdType
属性
thresholdTypeᅟ的通知信号。- thresholds()¶
- Return type:
.qreal列表
另请参阅
setThresholds()
属性
thresholdsᅟ的获取器。- thresholdsChanged(thresholds)¶
- Parameters:
thresholds – qreal 的列表
属性
thresholdsᅟ的通知信号。- volumeOverride()¶
- Return type:
QLevelOfDetailBoundingSphere
另请参阅
setVolumeOverride()
属性
volumeOverrideᅟ的获取器。- volumeOverrideChanged(volumeOverride)¶
- Parameters:
volumeOverride –
QLevelOfDetailBoundingSphere
属性
volumeOverrideᅟ的通知信号。