Sur cette page

LevelOfDetail QML Type

LevelOfDetail permet de contrôler la complexité des entités affichées en fonction de leur taille à l'écran. En savoir plus...

Import Statement: import Qt3D.Render 2.12
In C++: QLevelOfDetail
Inherits:

Component3D

Status: Deprecated

Ce type est obsolète. Nous vous déconseillons fortement de l'utiliser dans du nouveau code.

Propriétés

Description détaillée

Le paramètre LevelOfDetail permet de contrôler la représentation d'une entité en fonction de sa distance par rapport à l'observateur ou de sa taille à l'écran.

Afin d'améliorer les performances de rendu, les objets très petits peuvent être rendus avec beaucoup moins de détails, tant au niveau de la géométrie que de la texture.

Le composant est contrôlé en spécifiant des seuils de valeurs qui sont interprétés soit comme des distances par rapport à la caméra, soit comme la taille de l'écran.

À mesure que le point de vue change, la propriété « currentIndex » s'adapte pour refléter la valeur correspondante dans le tableau de plages.

La propriété « currentIndex » peut alors être utilisée, par exemple, pour activer ou désactiver des entités, modifier la source d’un « EntityLoader » ou changer de matériau.

Le composant LevelOfDetail n’est pas partageable entre plusieurs entités.

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 ]
    }
}

Documentation sur les propriétés

ThresholdType : enumeration

Définit la manière dont les valeurs des seuils sont interprétées

  • DistanceToCameraThreshold : distance entre l'entité et la caméra sélectionnée
  • ProjectedScreenPixelSizeThreshold Taille de l'entité lorsqu'elle est projetée à l'écran telle qu'elle est vue depuis la caméra sélectionnée, exprimée en nombre de pixels sur le côté du rectangle englobant dans l'espace de l'écran.

Voir également Qt3DRender::QLevelOfDetail::ThresholdType.

camera : Camera

Contient l'identifiant de la caméra utilisée pour calculer la distance réelle ou la taille de l'écran.

currentIndex : int

L'indice du tableau « range » qui correspond à la distance actuelle par rapport à la caméra ou à la taille de l'écran.

thresholdType : int

Précise comment les valeurs de la plage sont interprétées.

thresholds : QList<qreal>

Tableau de valeurs de plage sous forme de nombres à virgule flottante. La valeur correspondant à la représentation la plus détaillée doit être indiquée en premier.

Si LevelOfDetail::thresholdType est défini sur LevelOfDetail.DistanceToCameraThreshold, les valeurs doivent être spécifiées par ordre croissant, en coordonnées de l'espace caméra

Si l'LevelOfDetail::thresholdType est défini sur LevelOfDetail.DistanceToCameraThreshold, les valeurs doivent être spécifiées par ordre croissant, en coordonnées de l'espace caméra.

volumeOverride : int

Spécifie ce qui est utilisé pour évaluer la distance ou la taille de l'écran.

Par défaut, il s'agit d'une sphère de rayon 1 centrée sur l'origine locale de l'entité. Ce volume de référence est utilisé pour calculer la distance par rapport à la caméra ou la taille de la projection à l'écran.

Si cette valeur est nulle, c'est le volume englobant de l'entité qui est utilisé. Il faut veiller à ce que ce volume englobant ne devienne jamais invalide.

Voir également Qt3DRender::QLevelOfDetailBoundingSphere.

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