Qt3DRender::QLevelOfDetail Class
class Qt3DRender::QLevelOfDetailLa classe QLevelOfDetail permet de contrôler la complexité des entités rendues en fonction de leur taille à l'écran. Plus d'informations...
| En-tête : | #include <QLevelOfDetail> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS 3drender)target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake : | QT += 3drender |
| En QML : | LevelOfDetail |
| Hérite : | Qt3DCore::QComponent |
| Héritée par : | |
| Statut : | Déclassé |
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 peut être utilisé pour 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 en utilisant beaucoup moins de détails, dans la géométrie ou la texture.
Le composant est contrôlé en spécifiant des seuils de valeurs qui sont interprétés comme des distances par rapport à la caméra ou comme la taille de l'écran.
Lorsque le point de vue change, la propriété currentIndex est modifiée pour refléter la valeur correspondante dans le tableau des valeurs.
La propriété currentIndex peut ensuite ê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 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 comment les valeurs des seuils sont interprétées
| Constante | Valeur | Description de la constante |
|---|---|---|
Qt3DRender::QLevelOfDetail::DistanceToCameraThreshold | 0 | Distance entre l'entité et la caméra sélectionnée |
Qt3DRender::QLevelOfDetail::ProjectedScreenPixelSizeThreshold | 1 | Taille de l'entité projetée à l'écran, vue depuis la caméra sélectionnée, exprimée en nombre de pixels sur le côté du carré de délimitation dans l'espace de l'écran. |
Propriété Documentation
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'indice du tableau d'intervalles 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
Spécifie comment les valeurs de la 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 spécifiée en premier.
Si Qt3DRender::QLevelOfDetail::thresholdType est défini sur Qt3DRender::QLevelOfDetail::DistanceToCameraThreshold, les valeurs doivent être spécifiées dans l'ordre croissant, en coordonnées de l'espace de la caméra.
Si Qt3DRender::QLevelOfDetail::thresholdType est défini sur Qt3DRender::QLevelOfDetail::ProjectedScreenPixelSizeThreshold, les valeurs doivent être spécifiées dans l'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 aussi Qt3DRender::QLevelOfDetail::ThresholdType.
volumeOverride : Qt3DRender::QLevelOfDetailBoundingSphere
La valeur par défaut est une sphère de rayon 1 centrée sur l'origine locale de l'entité. Ce volume proxy est utilisé pour calculer la distance par rapport à la caméra ou la taille de la projection sur l'écran.
Si cette valeur est nullptr, c'est le volume de délimitation de l'entité qui est utilisé. Il faut veiller à ce que ce volume de délimitation 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 aussi Qt3DRender::QLevelOfDetailBoundingSphere.
Documentation des fonctions membres
[explicit] QLevelOfDetail::QLevelOfDetail(Qt3DCore::QNode *parent = nullptr)
Construit un nouveau QLevelOfDetail avec l'adresse parent spécifiée.
[slot] void QLevelOfDetail::setCamera(Qt3DRender::QCamera *camera)
Définit l'adresse camera par rapport à laquelle la distance et la taille sont calculées.
Remarque : fonction de définition de la propriété camera.
Voir également camera().
[slot] void QLevelOfDetail::setCurrentIndex(int currentIndex)
Définit l'adresse currentIndex.
Note : Normalement, l'utilisateur ne devrait pas définir cet indice.
Toutefois, si le composant est désactivé, la modification de l'indice actuel est un moyen simple de passer d'une représentation à l'autre.
Remarque : fonction de définition de la propriété currentIndex.
Voir également currentIndex().
[slot] void QLevelOfDetail::setThresholdType(Qt3DRender::QLevelOfDetail::ThresholdType thresholdType)
Définit la manière dont les valeurs des seuils sont interprétées avec le paramètre thresholdType
Note : Fonction de définition pour 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 : fonction de définition de la propriété thresholds.
Voir aussi 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.