Qt3DRender::QLevelOfDetail Class
class Qt3DRender::QLevelOfDetailLa classe `QLevelOfDetail` permet de contrôler la complexité des entités affichées en fonction de leur taille à l'écran. En savoir plus...
| En-tête : | #include <qlevelofdetail.h> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake : | QT += 3drender |
| En QML : | LevelOfDetail |
| Hérite de : | Qt3DCore::QComponent |
| Hérité par : | |
| Statut : | Obsolète |
Cette classe est obsolète. Nous déconseillons fortement de l'utiliser dans du nouveau code.
Types publics
| enum | ThresholdType { DistanceToCameraThreshold, ProjectedScreenPixelSizeThreshold } |
Propriétés
|
|
Fonctions publiques
| QLevelOfDetail(Qt3DCore::QNode *parent = nullptr) | |
| Qt3DRender::QCamera * | camera() const |
| int | currentIndex() const |
| Qt3DRender::QLevelOfDetail::ThresholdType | thresholdType() const |
| QList<qreal> | thresholds() const |
| Qt3DRender::QLevelOfDetailBoundingSphere | volumeOverride() const |
Emplacements publics
| void | setCamera(Qt3DRender::QCamera *camera) |
| void | setCurrentIndex(int currentIndex) |
| void | setThresholdType(Qt3DRender::QLevelOfDetail::ThresholdType thresholdType) |
| void | setThresholds(const QList<qreal> &thresholds) |
| void | setVolumeOverride(const Qt3DRender::QLevelOfDetailBoundingSphere &volumeOverride) |
Signaux
| void | cameraChanged(Qt3DRender::QCamera *camera) |
| void | currentIndexChanged(int currentIndex) |
| void | thresholdTypeChanged(Qt3DRender::QLevelOfDetail::ThresholdType thresholdType) |
| void | thresholdsChanged(const QList<qreal> &thresholds) |
| void | volumeOverrideChanged(const Qt3DRender::QLevelOfDetailBoundingSphere &volumeOverride) |
Description détaillée
QLevelOfDetail 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, changer de matériau, etc.
Le composant « LevelOfDetail » ne peut pas être partagé entre plusieurs instances d’ entities.
#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
...Documentation sur les types de membres
enum QLevelOfDetail::ThresholdType
Spécifie la manière dont les valeurs des seuils sont interprétées
| Constante | Valeur | Description |
|---|---|---|
Qt3DRender::QLevelOfDetail::DistanceToCameraThreshold | 0 | Distance entre l’entité et la caméra sélectionnée |
Qt3DRender::QLevelOfDetail::ProjectedScreenPixelSizeThreshold | 1 | 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 carré englobant dans l’espace de l’écran. |
Documentation de la propriété
camera : Qt3DRender::QCamera*
Contient l'identifiant de la caméra utilisée pour calculer la distance réelle ou la taille de l'écran.
Fonctions d'accès :
| Qt3DRender::QCamera * | camera() const |
| void | setCamera(Qt3DRender::QCamera *camera) |
Signal de notification :
| void | cameraChanged(Qt3DRender::QCamera *camera) |
currentIndex : int
L'index dans le tableau « range » qui correspond à la distance actuelle par rapport à la caméra ou à la taille de l'écran.
Fonctions d'accès :
| int | currentIndex() const |
| void | setCurrentIndex(int currentIndex) |
Signal de notification :
| void | currentIndexChanged(int currentIndex) |
thresholdType : ThresholdType
Définit la manière dont les valeurs de plage sont interprétées.
Fonctions d'accès :
| Qt3DRender::QLevelOfDetail::ThresholdType | thresholdType() const |
| void | setThresholdType(Qt3DRender::QLevelOfDetail::ThresholdType thresholdType) |
Signal de notification :
| void | thresholdTypeChanged(Qt3DRender::QLevelOfDetail::ThresholdType thresholdType) |
Voir aussi Qt3DRender::QLevelOfDetail::ThresholdType.
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 Qt3DRender::QLevelOfDetail::thresholdType est défini sur Qt3DRender::QLevelOfDetail::DistanceToCameraThreshold, les valeurs doivent être spécifiées par ordre croissant, en coordonnées de l'espace caméra
Si l'Qt3DRender::QLevelOfDetail::thresholdType est défini sur Qt3DRender::QLevelOfDetail::ProjectedScreenPixelSizeThreshold, les valeurs doivent être spécifiées par ordre décroissant, en pixels de l'espace écran.
Fonctions d'accès :
| QList<qreal> | thresholds() const |
| void | setThresholds(const QList<qreal> &thresholds) |
Signal de notification :
| void | thresholdsChanged(const QList<qreal> &thresholds) |
Voir également Qt3DRender::QLevelOfDetail::ThresholdType.
volumeOverride : Qt3DRender::QLevelOfDetailBoundingSphere
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 sert à calculer la distance par rapport à la caméra ou la taille de la projection à l'écran.
Si cette valeur est définie sur nullptr, c'est le volume englobant de l'entité qui est utilisé. Il faut veiller à ce que ce volume englobant ne devienne jamais invalide.
Fonctions d'accès :
| Qt3DRender::QLevelOfDetailBoundingSphere | volumeOverride() const |
| void | setVolumeOverride(const Qt3DRender::QLevelOfDetailBoundingSphere &volumeOverride) |
Signal de notification :
| void | volumeOverrideChanged(const Qt3DRender::QLevelOfDetailBoundingSphere &volumeOverride) |
Voir également Qt3DRender::QLevelOfDetailBoundingSphere.
Documentation des fonctions membres
[explicit] QLevelOfDetail::QLevelOfDetail(Qt3DCore::QNode *parent = nullptr)
Crée un nouvel objet `QLevelOfDetail` avec l'parent` spécifiée.
[slot] void QLevelOfDetail::setCamera(Qt3DRender::QCamera *camera)
Définit l'camera e par rapport à laquelle la distance et la taille sont calculées.
Remarque : fonctionde définition de la propriété camera.
Voir aussi camera().
[slot] void QLevelOfDetail::setCurrentIndex(int currentIndex)
Définit l'currentIndex.
Remarque : en règle générale,cette valeur ne doit pas être définie par l'utilisateur.
Toutefois, si le composant est désactivé, la modification de l’index actuel constitue un moyen simple de basculer entre plusieurs représentations.
Remarque : fonctionde définition pour la propriété ` currentIndex`.
Voir aussi currentIndex().
[slot] void QLevelOfDetail::setThresholdType(Qt3DRender::QLevelOfDetail::ThresholdType thresholdType)
Définit la manière dont les valeurs seuils sont interprétées à l'aide du paramètre thresholdType
Remarque : fonctionde définition de la propriété thresholdType.
Voir également thresholdType() et Qt3DRender::QLevelOfDetail::ThresholdType.
[slot] void QLevelOfDetail::setThresholds(const QList<qreal> &thresholds)
Définit les valeurs de la plage dans thresholds.
Remarque : fonctionde définition de la propriété thresholds.
Voir également thresholds() et Qt3DRender::QLevelOfDetail::thresholdType.
© 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.