Qt3DRender::QLevelOfDetail Class
class Qt3DRender::QLevelOfDetailLa clase QLevelOfDetail proporciona una forma de controlar la complejidad de las entidades renderizadas en función de su tamaño en la pantalla. Más...
| Cabecera: | #include <QLevelOfDetail> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender)target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| En QML: | LevelOfDetail |
| Hereda de: | Qt3DCore::QComponent |
| Heredado por: | |
| Status: | Deprecated |
Tipos públicos
| enum | ThresholdType { DistanceToCameraThreshold, ProjectedScreenPixelSizeThreshold } |
Propiedades
|
|
Funciones públicas
| 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 |
Ranuras públicas
| 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) |
Señales
| 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) |
Descripción Detallada
QLevelOfDetail se puede utilizar para controlar la representación de una entidad en función de la distancia desde el observador o el tamaño en la pantalla.
Para mejorar el rendimiento del renderizado, los objetos que son muy pequeños pueden renderizarse utilizando muchos menos detalles, en geometría o textura.
El componente se controla especificando umbrales de valores que se interpretan como distancias desde la cámara o tamaño en pantalla.
A medida que cambia el punto de vista, la propiedad currentIndex cambiará para reflejar el valor correspondiente en la matriz de rangos.
La propiedad currentIndex puede utilizarse, por ejemplo, para activar o desactivar entidades, cambiar el material, etc.
El componente LevelOfDetail no es compartible entre múltiples 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 ...
Documentación del tipo de miembro
enum QLevelOfDetail::ThresholdType
Especifica cómo se interpretan los valores de los umbrales
| Constante | Valor | Descripción |
|---|---|---|
Qt3DRender::QLevelOfDetail::DistanceToCameraThreshold | 0 | Distancia de la entidad a la cámara seleccionada |
Qt3DRender::QLevelOfDetail::ProjectedScreenPixelSizeThreshold | 1 | Tamaño de la entidad cuando se proyecta en la pantalla vista desde la cámara seleccionada, expresado en número de píxeles del lado del cuadrado delimitador en el espacio de la pantalla. |
Documentación de la propiedad
camera : Qt3DRender::QCamera*
Contiene el identificador de la cámara que se utiliza para calcular la distancia real o el tamaño de la pantalla.
Funciones de acceso:
| Qt3DRender::QCamera * | camera() const |
| void | setCamera(Qt3DRender::QCamera *camera) |
Señal del notificador:
| void | cameraChanged(Qt3DRender::QCamera *camera) |
currentIndex : int
El índice de la matriz de rangos que coincide con la distancia actual a la cámara o el tamaño de la pantalla.
Funciones de acceso:
| int | currentIndex() const |
| void | setCurrentIndex(int currentIndex) |
Señal del notificador:
| void | currentIndexChanged(int currentIndex) |
thresholdType : ThresholdType
Especifica cómo se interpretan los valores de rango.
Funciones de acceso:
| Qt3DRender::QLevelOfDetail::ThresholdType | thresholdType() const |
| void | setThresholdType(Qt3DRender::QLevelOfDetail::ThresholdType thresholdType) |
Señal notificadora:
| void | thresholdTypeChanged(Qt3DRender::QLevelOfDetail::ThresholdType thresholdType) |
Véase también Qt3DRender::QLevelOfDetail::ThresholdType.
thresholds : QList<qreal>
Matriz de valores de rango como números en coma flotante. Debe especificarse primero el valor de la representación más detallada.
Si Qt3DRender::QLevelOfDetail::thresholdType está configurado como Qt3DRender::QLevelOfDetail::DistanceToCameraThreshold, los valores deben especificarse en orden ascendente, en coordenadas del espacio de la cámara.
Si Qt3DRender::QLevelOfDetail::thresholdType está ajustado a Qt3DRender::QLevelOfDetail::ProjectedScreenPixelSizeThreshold, los valores deben especificarse en orden descendente, en píxeles de espacio de pantalla.
Funciones de acceso:
| QList<qreal> | thresholds() const |
| void | setThresholds(const QList<qreal> &thresholds) |
Señal notificadora:
| void | thresholdsChanged(const QList<qreal> &thresholds) |
Véase también Qt3DRender::QLevelOfDetail::ThresholdType.
volumeOverride : Qt3DRender::QLevelOfDetailBoundingSphere
Por defecto es una esfera de radio 1 y centrada en el origen local de la entidad. Este volumen proxy se utiliza para calcular la distancia a la cámara o el tamaño de la proyección en pantalla.
Si este valor es nullptr, se utiliza el volumen delimitador de la entidad. Hay que tener cuidado de que este volumen delimitador nunca deje de ser válido.
Funciones de acceso:
| Qt3DRender::QLevelOfDetailBoundingSphere | volumeOverride() const |
| void | setVolumeOverride(const Qt3DRender::QLevelOfDetailBoundingSphere &volumeOverride) |
Señal del notificador:
| void | volumeOverrideChanged(const Qt3DRender::QLevelOfDetailBoundingSphere &volumeOverride) |
Véase también Qt3DRender::QLevelOfDetailBoundingSphere.
Documentación de las funciones miembro
[explicit] QLevelOfDetail::QLevelOfDetail(Qt3DCore::QNode *parent = nullptr)
Construye un nuevo QLevelOfDetail con el parent especificado.
[slot] void QLevelOfDetail::setCamera(Qt3DRender::QCamera *camera)
Establece el camera relativo al que se calculan la distancia y el tamaño.
Nota: Función Setter para la propiedad camera.
Véase también camera().
[slot] void QLevelOfDetail::setCurrentIndex(int currentIndex)
Establece la dirección currentIndex.
Nota: Normalmente, el usuario no debería establecerlo.
Sin embargo, si el componente está desactivado, cambiar el índice actual es una forma sencilla de cambiar entre varias representaciones.
Nota: Función Setter para la propiedad currentIndex.
Véase también currentIndex().
[slot] void QLevelOfDetail::setThresholdType(Qt3DRender::QLevelOfDetail::ThresholdType thresholdType)
Establece la forma en que se interpretan los valores de los umbrales con el parámetro thresholdType
Nota: Función Setter para la propiedad thresholdType.
Véase también thresholdType() y Qt3DRender::QLevelOfDetail::ThresholdType.
[slot] void QLevelOfDetail::setThresholds(const QList<qreal> &thresholds)
Establece los valores de rango en thresholds.
Nota: Función Setter para la propiedad thresholds.
Véase también thresholds() y 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.