细节级别 QML 类型

细节级别提供了一种基于实体在屏幕上的大小来控制渲染实体复杂度的方式。更多...

导入语句import Qt3D.Render 2.7
实例化 QLevelOfDetail
继承

Component3D

属性

详细说明

细节级别可以根据观察者与实体之间的距离或屏幕大小来控制实体的表示。

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

通过指定将其解释为距离摄像机或屏幕大小的值的阈值来控制该组件。

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

然后可以currentIndex 属性为例,启用或禁用实体,在 EntityLoader 中更改源或材质。

细节级别组件不能在多个实体之间共享。

import Qt3D.Core 2.0
import Qt3D.Render 2.0

Entity {
    id: root

    // Scene
    Camera { id: mainCamera }

    LevelOfDetail {
        id: lod
        camera: mainCamera
        thresholds: [20, 35, 50, 65]
        thresholdType: LevelOfDetail.DistanceToCameraThreshold
    }

    GeometryRenderer {
        id: mesh
        view: CylinderMesh {
            property var sliceValues: [20, 10, 6, 4]
            slices: sliceValues[lod.currentIndex]
        }
    }

    Entity {
        id: renderableEntity
        components: [ mesh, lod ]
    }
}

属性文档

ThresholdType : 枚举类型

指定如何解释阈值中的值

  • DistanceToCameraThreshold 实体到所选摄像机距离
  • ProjectedScreenPixelSizeThreshold 从所选摄像机看到实体投影到屏幕上的大小,以屏幕空间中边长为像素的数量表示。

另请参阅Qt3DRender::QLevelOfDetail::ThresholdType.


camera : Camera

包含用于计算实际距离或屏幕大小的摄像机的 ID。


currentIndex : int

范围数组中与当前距离摄像机或屏幕大小匹配的索引。


thresholdType : int

指定范围值如何被解释。


thresholds : QList<qreal>

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

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

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


volumeOverride : int

指定用于评估距离或屏幕大小的值。

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

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

另请参阅 Qt3DRender::QLevelOfDetailBoundingSphere.


© 2024 Qt公司。本文件中包含的文档贡献属于其各自的版权所有者。本文件提供的文档受 GNU 自由文档许可证版本 1.3 的条款许可,由自由软件基金会发布。Qt及其相应的商标是芬兰及其它国家和地区的 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。